РЕЦЕНЗИИ    

Габец А.П., Гончаров Д.И., Козырев Д.В., Кухлевский Д.С., Радченко М.Г. Профессиональная разработка в системе "1С: Предприятие 8". - М.: "1С-Паблишинг"; СПб.: Питер, 2006. - 808 с., компакт-диск.

По оценкам фирмы "1С", ее программные продукты, реализованные на платформе "1С:Предприятие" ("1СП"), применяются в более чем полумиллионе организаций страны. Их внедрением и сопровождением занимаются порядка 100 тыс. сотрудников почти 3 тыс. партнеров-франчайзи и еще примерно столько же специалистов ИТ-отделов компаний-заказчиков. Как минимум половина из них (т. е. опять же около 100 тыс. человек) в той или иной степени используют в своей работе средства программирования "1СП" преимущественно для настройки и расширения возможностей готовых прикладных решений. Но есть и те, кто создает свои приложения с нуля.

Это позволяет утверждать, что "1СП" является (и уже далеко не первый год!) в нашей стране одним из самых массовых средств профессионального программирования, далеко обогнавшим Java и даже Visual Basic. Парадокс же ситуации заключается в том, что до настоящего времени общедоступной литературы по этой тематике практически не было, а проблемы использования "1СП" в качестве средства разработки, не говоря уже о каком-то его критическом анализе, почти не обозначались в профессиональной ИТ-прессе.

Так что нужно сразу сказать: выпуск книги, написанной группой ведущих разработчиков фирмы "1С" и ее партнера компании "Аналит", - это знаковое явление не только для 1С-сообщества, но и для всей софтверной отрасли страны. По сути это первое публичное и весьма полное представление платформы "1СП" как таковой - ее архитектуры, базовых функций и механизмов, методологии разработки прикладных решений и т. д. Более того, подобного систематического описания не было в документации или каких-то внутренних материалах "1С". Безусловно, такая книга полезна не только тем, кто уже программирует в среде "1СП" или собирается заняться этим, но всем, кто просто хочет познакомиться с организацией одной из самых популярных в нашей стране программных платформ (по-видимому, она уступает по массовости только Windows и Office).

Первый блин авторов из "1С"*1 вышел совсем не комом. Конечно, можно поговорить о достоинствах и недостатках книги, но мне представляется более важным заострить внимание лишь на нескольких моментах, которые связаны с общей концепцией продвижения платформы "1С".    

_____

*1 Предшественницей данного издания стала выпущенная два года назад книга Максима Радченко “1С:Предприятие 8. Практическое пособие разработчика”, но она была существенно меньше по объему и посвящена низкоуровневым вопросам программирования в “1СП”.

Сказав "а", нужно говорить "б"

Суть проблемы заключается в том, что до недавнего времени руководство "1С" старалось не очень афишировать тему разработки в среде "1СП", подчеркивая при этом, что компания позиционирует себя как поставщик готовых решений для конечных пользователей. Хотя нынешняя архитектура "1СП" в целом была реализована еще в 1996 г. в версии 7.0 и инструменты программирования, входя в комплект поставки ее продукта, были доступны заказчикам, в "1С" считали, что данные средства ориентированы на внутреннее применение ее собственными разработчиками и специалистами партнеров-франчайзи.

Стратегия "1С" несколько поменялась в 2002 г. с выпуском бета-версии "1СП" 8.0. Фактически только в этот момент фирма широко объявила (и стала продвигать этот тезис), что ее комплекс ПО состоит из технологической платформы (куда входят и средства разработки) и набора прикладных решений. До того момента компания категорически избегала использования самого термина "платформа".

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

_____

*1 Такая позиция, в свою очередь, определяется не только маркетинговыми соображениями, но также технологическими и архитектурными особенностями “1СП”.

Двойственность позиции "1С" в отношении своего инструментария, естественно, отразилась и в рецензируемой книге. И это видно уже из ее названия: после слов "профессиональная разработка" нет пояснения - разработка чего? Новых приложений с нуля? Или речь идет о доработке прикладных решений "1С"? Этот вопрос может показаться просто мелочной придиркой, но на самом деле тут есть очень важный момент.

Дело в том, что создание ПО начинается с изучения архитектуры платформы, логики взаимодействия ее компонентов, среды разработки, последовательности создания приложений. В данной книге впервые реализован именно такой подход к описанию возможностей "1СП". Но как раз архитектурная часть этого труда вызывает серьезные вопросы и нарекания. Хотя нужно подчеркнуть: многие сложности тут связаны с историческими корнями самой "1СП".

Терминология

Одна из таких "исторических" проблем заключается в недостаточной проработанности терминологии "1СП", и тут нужно выделить несколько моментов.

1. Еще в 1990-е годы разработчики из "1С" стали применять ИТ-терминологию, которая отличалась от общеупотребительной. Ее использование выглядело вполне естественно внутри 1С-сообщества, но создавало очевидные трудности, когда нужно было общаться с внешним миром программистов. Для этого, например, статьи в журналах каждый раз нужно было сопровождать переводом: "конфигурация" ("1С") - приложение, "обработка" - утилита или объект, "компонента" (именно так, в женском роде) - библиотека объектов и т. д. Все это вызывало путаницу и порой приводило к искажению смысла.

2. Несложно заметить, что в терминологии "1С" используется только одно имя собственное - "1С:Предприятие". Но что за смысл в него вкладывается - непонятно. Дело в том, что этот термин применяется для обозначения целого набора разных вещей:

- клиентской части платформы;

- всей платформы;

- всей системы ПО - (платформа + приложение);

- и, наконец, комплекса, который включает ПО + методологию создания прикладных решений + средства информационно-технического сопровождения ПО.

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

3. Отсутствие имен собственных для ключевых компонентов платформы "1СП". Например, платформа Microsoft состоит из Windows (название клиентcкой OC), Windows Server (сервер), Visual Studio (инструмент разработки), VB и C# (языки программирования) и т. д. У "1С" не так: ее платформа состоит из "клиентской части 1С:Предприятия", "сервера 1С:Предприятия", "встроенного языка 1С:Предприятия" и т. п. При этом вполне очевидны проблемы при описании, например, взаимодействия всех этих компонентов.

Архитектура

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

Впрочем, авторы в самом начале книги решили осветить вопрос соотношения платформы и прикладных решений:

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

Из этого текста можно лишь сделать вывод, что Java и .NET не являются универсальными средствами, так как с ними дело обстоит точно так же.

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

Подождем второго издания

Высказав эти замечания, мне хотелось бы еще раз сказать, что данная книга - это первое полное описание системы "1С:Предприятие" с точки зрения разработчика, ее многочисленных механизмов, технологий, приемов программирования и т. д. Правда, почему-то в ней отсутствует описание собственно среды разработки "1СП", логики работы в ней и пр.

Тем не менее то, что книга очень нужна и полезна, - не вызывает никаких сомнений. Даже если просто ознакомиться с оглавлением (18 глав, одно приложение, демонстрационные примеры на компакт-диске), можно понять, что "1СП" - это мощный программный комплекс, в котором заложен огромный потенциал, а также осознать, почему так велик спрос на рынке на профессиональных разработчиков "1СП".

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

Версия для печати