AXForum  
Вернуться   AXForum > Рынок > Другие системы на рынке
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 26.12.2006, 12:56   #1  
Morpheus is offline
Morpheus
Участник
Аватар для Morpheus
Соотечественники
 
602 / 167 (7) ++++++
Регистрация: 30.03.2005
Адрес: Київ-København-Düsseldorf
Платформа «1С:Предприятие» как средство разработки бизнес-приложений
http://pcmag.ru/?ID=620525

Особенности «1С:Предприятия» как предметно-ориентированного средства разработки

По оценке экспертов, сейчас рынок средств разработки смещается от конкретных программ, обеспечивающих разработку (компиляторов, IDE, профилировщиков и т. д.), к системам, поддерживающим весь жизненный цикл разработки (например, см. статью Андрея Колесова «Чья IDE всех милее?», PC Week/RE, 14/2006, с. 28, www.pcweek.ru/?ID=606344). Если говорить об этой тенденции проще, то поставщики стремятся вложить в свои комплексы все инструменты, необходимые для коллектива разработчиков, или обеспечить удобное подключение других доступных средств. Разумеется, это сложная задача, и в полном объеме она практически не решаема.

«1С:Предприятие» как предметно-ориентированная среда разработки имеет определенные преимущества. Поскольку круг задач более точно очерчен, то и набор средств и технологий можно подобрать с большей определенностью. В задачу платформы входит предоставление разработчику интегрированного набора инструментов, необходимых для быстрой разработки, распространения и поддержки прикладного решения для автоматизации бизнеса. При этом отдельные «детали» могут уступать по функциональности универсальным средствам разработки и специализированным средствам управления жизненным циклом, используемым разработчиками. Однако эффект достигается благодаря общему набору средств и их тесной интеграции.

Платформа «1С:Предприятие» содержит такие инструменты для выполнения поставленных задач, как визуальное описание структур данных, написание программного кода, визуальное описание запросов, визуальное описание интерфейса, описание отчетов, отладка программного кода, профилирование. В ее составе: развитая справочная система, механизм ролевой настройки прав, инструменты создания дистрибутивов, удаленного обновления приложений, сравнения и объединения приложений, ведения журналов и диагностики работы приложения, создания Web-приложений и приложений для КПК, а также поддержка коллективной разработки, версионирования и пр. Разумеется, список инструментов, необходимых для поддержки жизненного цикла, не является исчерпывающим, и нам есть куда развиваться. Например, в ближайшем будущем мы планируем поставлять средства управления тестированием (функциональным и нагрузочным). Кстати, они создаются на платформе «1С:Предприятие».


Разработка в «1С:Предприятии» строится на основе общей модели работы приложения, предлагаемой платформой «в обязательном порядке», т. е. основные и наиболее сложные архитектурно-технологические решения (такие, как механизм трехуровневой архитектуры, вопросы взаимодействия компонентов, аутентификация пользователей и т. д.) предлагаются разработчикам в готовом виде.

В «1С:Предприятии» процесс написания программного кода — не центральный элемент разработки ПО. Приложение разрабатывается прежде всего как структура метаданных. Код пишется в определенных узлах приложения «по необходимости», чтобы переопределить, если это нужно, стандартное поведение или написать ту часть бизнес-логики, которая требует именно алгоритмической формулировки, например расчет себестоимости. То есть имеется framework, задающий общий облик приложения, а приложение определяется как набор различных артефактов, которые функционируют в данном framework-е. Идея разработки на основе метаданных (metadata-driven) начинает активно использоваться и в универсальных системах, но в предметно-ориентированной среде разработки она дает существенно больший эффект, так как структура метаданных четко ориентирована на круг решаемых системой задач.

Один из моментов, обычно вызывающих споры, — принятое в «1С:Предприятии» построение основной части приложения на основе стандартных прототипов (patterns) прикладных объектов. Действительно, эта модель отличается от классического подхода (объектно-ориентированного программирования и работы с таблицами базы данных или отображаемыми в базу данных произвольными сущностями). Фактически система предоставляет не один базовый класс для построения прикладных объектов приложения, а несколько, каждый из которых имеет специализированную функциональность и предназначен для отображения в приложении объектов предметной области, обладающих схожими свойствами и ролью в бизнес-логике. Разработчик использует эти прототипы для создания объектов приложения, которые уже являются финальными (описывающими конкретные бизнес-сущности).

Прототипы применяются с некоторой параметризацией, определяющей необходимые в конкретном случае свойства и особенности поведения. Например, справочник может быть «плоским» или иерархическим. Такой подход фактически обеспечивает построение приложения на основе определенной прикладной модели, в которой каждый объект играет определенную роль, и система хорошо знает эту роль, что позволяет ей автоматически выполнять существенную часть операций. Выше мы говорили о предоставляемой технологической модели приложения. Заметим, что эти две модели (технологическая и прикладная), с одной стороны, идеологически связаны, но с другой — имеют достаточно высокий уровень независимости в части реализации. Такой подход позволяет использовать в платформе новые архитектурные и технологические решения без смены прикладной модели и без изменения приложения.

Еще одна особенность «1С:Предприятия» как предметно-ориентированной среды разработки — особое отношение к подбору технологических возможностей, предоставляемых разработчику. Разумеется, в «1С:Предприятии» есть возможность подключать другие (внешние) программные модули. Но платформа ориентирована на то, чтобы актуальные для задач автоматизации бизнеса технологии предоставить разработчику в готовом виде. Причем высокая степень «готовности» включает и простоту освоения, и «гладкость» интеграции с общей функциональностью и другими технологическими возможностями системы. Фактически платформа позволяет разработчику прикладных решений задействовать необходимые и современные технологии своевременно, максимально просто и без радикальных изменений в своем приложении.


Примеров этому можно привести много. Одно из сильных конкурентных преимуществ платформы «1С:Предприятия» (по общей оценке разработчиков приложений) — система обмена данными, позволяющая достаточно просто реализовать синхронизацию данных на основе XML как для создания территориально распределенных приложений, так и для целей интеграции (с другими приложениями «1С:Предприятия» и с другими системами). Можно привести и другие примеры. Механизм бизнес-процессов дает возможность организовать совместную работу пользователей. Реализация data-mining позволяет решать сложные задачи бизнес-анализа. Реализация отображения географических карт — решать задачи представления анализа бизнеса по регионам и задачи визуального представления транспортной логистики. И т. д.

Если проанализировать изменения, вошедшие в версию 8.1, то можно выделить такие новые технологии, как элементы SOA (Web-сервисы, XDTO) и система полнотекстового поиска. И та и другая технология сейчас на слуху и вызывают большой интерес у разработчиков. Но при разработке в универсальных системах включение их в проект обычно требует весьма существенных затрат, тогда как в «1С:Предприятии» затраты минимальны. Например, для предоставления пользователям возможности работы с полнотекстовым поиском нужно только, как говориться, поставить галочку. Такой подход позволяет разработчикам решений задействовать наиболее современные технологии прямо сейчас.

Здесь мы плавно подошли к тому, чтобы выделить одно из основных преимуществ предметно-ориентированной среды разработки. Построение системы на основе технологической модели работы приложения, метаданных и прикладной модели работы приложения позволяет существенно упросить и ускорить разработку. Во-первых, опираясь на метаданные и единую модель, все компоненты системы взаимодействуют между собой без существенных усилий со стороны разработчика. Фактически они знают, «что нужно делать» с теми или иными объектами бизнес-логики и типами данных. Например, система отчетности (в версии 8.1 система компоновки данных) позволяет строить сложнейшие отчеты, управляемые пользователем только на основе сформулированного разработчиком запроса, так как она «знает» модель приложения. Во-вторых, существенная часть технологических сложностей реализации решается платформой и не «наваливается» на разработчика решения.

Здесь хочется сделать небольшое историческое отступление. В предыдущем поколении платформы «1С:Предприятие» (версиях 7.x) использовался другой подход, касающийся применения технологий. Система была в основном замкнута. Подход предполагал использование строго ограниченного набора средств и технологий. Разумеется, это в свою очередь существенно ограничивало и спектр применения системы — как по масштабированию решений, так и по широте областей применения.

При разработке и развитии платформы «1С:Предприятие 8.0» подход был изменен. Система не ограничивается в использовании современных технологий, но ориентируется на их максимально удобное и простое включение в общую инфраструктуру разработки приложения. Реализацию этого подхода можно наблюдать в постепенном включении в платформу целого спектра технологических решений. К уже упомянутым выше можно добавить такие примеры, как права доступа к данным на уровне записей, широкие возможности интернационализации, работа с различными Интернет-протоколами, кластер серверов, управление блокировками данных, мощная поддержка XML и т. д.

Из перечисленного списка нетрудно понять, что в платформе появились более сложные предметы, требующие хорошего понимания, и само количество предметов стало больше. Как минимум, это видно по объему документации. Однако эта сложность не захлестывает разработчика приложения. Все механизмы можно использовать опционально и вводить по мере надобности. Ну и, разумеется, разработчику, переходящему с предыдущей платформы, нужно понимать, что это вполне разумная (и, по нашему мнению, в реализации «1С:Предприятия 8.0» — минимальная) плата за возможность использовать при быстрой разработке современные технологии и решать задачи, которые в версии 7.x не могли решаться в принципе.

Разумеется, у всех преимуществ предметно-ориентированной среды есть и обратная сторона. В отличие от универсальных средств, здесь имеются ограничения в выборе технологических решений и возможностях их «тонкой» настройки. Многие технологические решения определены в самой модели и не могут быть изменены разработчиком приложения. Например, в «1С:Предприятии» он не имеет прямого доступа к базе данных, ему нужно действовать теми средствами, которые использует модель «1С:Предприятие». В универсальных средствах можно все и можно произвольно выбирать любое сочетание технологических решений.


Возможности применения


Проанализируем особенности платформы «1С:Предприятие» с точки зрения критериев выбора средства разработки. Прежде всего, ее использование стоит рассматривать для решения тех задач, для которых оно предназначено, — автоматизации управления и учета. Конечно, есть и весьма успешные случаи нестандартного применения системы для других областей, но не будем на них отвлекаться. Далее, важный критерий выбора между «1С:Предприятием» и универсальными средствами разработки — по нашему мнению, оценка затрат на разработку и сопровождение системы. При этом затраты вполне можно оценить количественно. Скорость разработки в «1С:Предприятии» обычно выше в 2—10 раз и стоимость соответственно в разы ниже.

Но можно оценить и качественно. При разработке на универсальных средствах нужно вырабатывать целый спектр технологических и архитектурных решений. Как минимум, чтобы выбрать необходимые шаблоны проектирования и технологии и увязать их между собой. А это соответственно, кроме затрат времени, потребует наличия специалистов с соответствующими профессиональными навыками. При разработке приложения на «1С:Предприятии», разумеется, тоже нужны квалифицированные специалисты в предметной области и прикладной разработке, но такие специалисты, разумеется, понадобятся и при разработке на универсальных средствах.

Особо стоит отметить преимущества предметно-ориентированной среды на этапе поддержки системы. Наличие стандартизованной модели позволяет с существенно меньшими затратами развивать функциональность и включать в работу новых специалистов. Если представить себе стек технологий (от работы с базой данных, коммуникаций с сервером, управлением интерфейсом), то разработчик в среде «1С:Предприятие» будет существенно лучше понимать устройство конкретного приложения при первом знакомстве с ним, так как он знает общую технологическую и прикладную модель его построения.

Попробуем привести еще одно объяснение подхода платформы «1С:Предприятие». У Фреда Брукса в легендарной книге «Мифический человеко-месяц» изложен подход, согласно которому в любом процессе существуют сложности первого порядка (сущностные) и второго порядка (акцидентальные). Первые обусловлены сложностью самой решаемой задачи (предметной областью, многообразием вариантов, требованиями и т. д.), вторые являются «привнесенными». Они обусловлены использованием неадекватных инструментальных средств, методик, подходов к решению задачи и вполне могут быть исключены. Так, задача платформы «1С:Предприятие» — максимально исключить сложности второго порядка, предоставив разработчику возможность сосредоточиться на объективно существующих сложностях первого порядка.
Старый 26.12.2006, 13:10   #2  
SpitefulGoblin is offline
SpitefulGoblin
Участник
Аватар для SpitefulGoblin
 
28 / 16 (1) ++
Регистрация: 27.02.2006
Продолжение статьи.

Есть такая профессия!
Теперь попробуем ответить на второй вопрос — о профессии разработчика приложений на базе платформы «1С:Предприятие». Все-таки, по нашему мнению, специалиста любой профессии характеризует не только инструмент, которым он пользуется, но и круг задач, которые он умеет решать. Нам кажется, лучше использовать не термин «программист», а именно термин «разработчик». Создание приложений на «1С:Предприятии» не является написанием программы. Написание кода — только часть работы. Это именно разработка приложения, строящаяся, как мы говорили выше, начиная от структуры прикладных объектов, описания их взаимосвязи, продумывания бизнес-процессов. То есть разработчиков на «1С:Предприятии» характеризует не знание синтаксиса встроенного языка. Профессиональные разработчики на «1С:Предприятии» — специалисты по разработке бизнес-приложений. Само по себе описание структуры данных в «1С:Предприятии», написание программы на встроенном языке, рисование форм не является сложным и осваивается на некотором уровне, достаточном для решения несложных задач, обычно за 2—3 недели. Но разработка бизнес-приложений — это весьма сложная задача, не менее сложная, чем создание, например, средств разработки, САПР и т. д.
В этой профессии не приходится работать с данными на уровне битов, реализовывать отрисовку графических примитивов, работать на уровне инструкций процессора. Но зато высококвалифицированному разработчику бизнес-приложений нужно уметь сочетать в себе достаточно широкий спектр знаний и навыков: знание типовых бизнес-процессов предметной области и основ экономики, умение проектировать сложные структуры данных, включающие сотни и тысячи сущностей, умение проектировать и реализовывать эффективные алгоритмы массовой обработки информации, создавать и оптимизировать решения, работающие с данными при большой конкурентной нагрузке, умение проектировать и реализовывать решения с большим количеством структурных элементов и взаимосвязей между ними, а также готовность при необходимости строить и использовать математические модели, умение проектировать эргономичный пользовательский интерфейс, умение проектировать и изменять бизнес-процессы, умение быстро освоить и применить современные интеграционные технологии (XML, Интернет, Web-сервисы и т. д.).
Каждая из этих задач не проста. Кон ечно, не обязательно быть профессионалом во всех этих областях, но обычно требуется сочетание существенной части навыков из приведенного списка. При этом высшим пилотажем является именно способность целостно проектировать и реализовывать решение, что требует не просто отдельных навыков, а умения применять их в комплексе. Таким образом, платформа «1С:Предприятие» как инструмент разработки позволяет «кристаллизовать» профессию разработчика бизнес-приложений, отделив то, что находится за ее пределами, и четко выделив то, что действительно является предметом труда специалистов этой профессии.
Сейчас уже можно достаточно четко сказать о высоком престиже этой профессии в среде профессионального круга IT-специалистов в области автоматизации бизнеса и корпоративных решений. Для начинающих специалистов, по нашему мнению, важно не просто «научиться программировать», а сразу правильно понять «вектор» развития профессионализма разработчика в этом направлении и целенаправленно двигаться по нему. Надеемся, что эта статья окажет в этом процессе некоторую помощь.
Теги
1c

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Если 1С приделает еще и вменяемый блок бизнес-анализа (OLAP, легкая настройка пользователям) – остальным вендорам можно закрывать в СНГ деятельность по направлению учета. Они просто тут никому не нужны станут. belugin Сравнение ERP-систем 52 24.04.2010 12:01
Обсуждение документа "Сравнение 1С и AX" Кузнецов Александр Сравнение ERP-систем 44 20.02.2008 13:56
О прекращении продаж 1С:Предприятие 7.7/8.0, содержащих Microsoft Windows Server 2003 mazzy Другие системы на рынке 2 27.06.2006 09:06
К вопросу сравнения 1C:Предприятие и Axapta + Новости с семинара партнеров 1С dd Сравнение ERP-систем 196 26.06.2006 13:29
Федеральная сеть магазинов электроники «Эксперт» выбирает «1С:Предприятие 8.0» Сисой Другие системы на рынке 1 06.06.2006 12:19

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 23:41.