Рубрика:
Разработка /
Изучаем «1С»
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
ОЛЕГ ФИЛИППОВ, АНТ-Информ, заместитель начальника отдела разработки, comol@mail.ru
1C:Enterprise Development Tools Изменяем процесс разработки на 1С
Уже год как все сообщество разработчиков 1С живет в ожидании выхода новой IDE, называемой Enterprise Development Tools (EDT). Попробуем разобраться, что такого революционного она нам принесет
Начнем знакомство с новой IDE прежде всего с установки. Здесь ждет первый неприятный сюрприз: я его называю «здравствуй JVM». При всем моем уважении к Java и куче серьезных продуктов класса Enterprise, на нем разработанных, все-таки интерфейс приложений, использующих JVM, для пользователей ОС Windows является как минимум непривычным (речь не идет о веб-интерфейсе в данном случае, конечно), если не сказать хуже. Визуально Java-приложения далеки даже от Windows Forms для .Net, не говоря уже о новых интерфейсных возможностях приложений, основанных на WPF или UWP. Таким образом, мы увидим красивую заставку (см. рис. 1).
Рисунок 1. Заставка и логотип Enterprise Development Tools
Но далее откроется сильно «искуроченный» Eclipse. Да, тот самый Eclipse, который с каждым днем теряет популярность у Java-разработчиков, уже весьма существенно уступая IntelliJ IDEA и NetBeans. Сама рабочая область выглядит, как показано на рис. 2.
Рисунок 2. Потребление памяти 1C:EDT
Как видим, все очень сильно напоминает конфигуратор. Действительно, с точки зрения интерфейсных деталей создатели EDT постарались сделать переход на нее как можно менее болезненным для прикладных разработчиков. Собственно, остается только сесть и начать работать. Для прикладного разработчика разница практически незаметна. Страшно даже представить, каких трудов стоила 1С реализация некоторых функций и гладкое встраивание их внутрь Eclipse IDE. Архитектурно эторешение кажется весьма странным – частичное использование готовой IDE даст преимущества в начале проекта, позволяя достаточно быстро реализовать основные функции. Но если речь зайдет о каких-то тонкостях, а тем более о копировании поведения с текущей IDE (конфигуратора), как правило, встраивание внутрь существующей IDE становится более трудоемкой операцией по мере роста функциональности итогового решения.
На первом этапе знакомства радостно только то, что новую IDE нет необходимости устанавливать (впрочем, для Java-приложений это скорее правило, чем исключение). Просто нужно скачать с сайта 1С комплект EDT, разархивировать его и запустить, предварительно не забыв установить JRE, конечно.
Прежде чем переходить к более детальному описанию отличий и основных функций, хотел бы подчеркнуть, что лично я целиком и полностью поддерживаю наконец появившееся стремление 1С улучшить жизнь разработчиков, особенно работающих на крупных проектах, желание сделать практически открытую и расширяемую среду разработки. Все описанные недостатки вполне подлежат исправлению в последующих релизах. А темпы, с которыми развивается данный проект, просто поражают. Ребята молодцы и делают очень правильное дело.
Теперь о главном, для чего это нужно: текущая концепция разработки, которой до сих пор следует 1С, так или иначе ориентирована главным образом на работу одного разработчика. Разработка полностью привязана к конкретной информационной базе. Понятие «репозиторий» у 1С весьма своеобразное.
Шаг в сторону 1С:Enterprise Development Tools – это попытка отвязать разработку от информационной базы, использовать нормальную систему управления версиями, сделать возможными совместные правки одних и тех же объектов разными разработчиками |
Шаг в сторону EDT – это попытка отвязать разработку от информационной базы, использовать нормальную систему управления версиями, сделать возможными совместные правки одних и тех же объектов разными разработчиками, интегрироваться с системами контроля версий (в частности, с git), использовать ветвления. По сути дела, с появлением EDT для 1С стало возможным внедрять gitflow в процесс разработки.
Теперь тоже можно создавать ветки, выполнять их merge, запускать автоматические тесты и выкатывать ветку master в production-среду. Это существенный шаг вперед по сравнению с тем, что было ранее. Наличие соответствующих инструментов позволит крупным проектам развиваться проще и быстрее, потому как по достижении определенного количества участников команды проекты разработки на 1С начинают «буксовать».
Надеюсь, мне удалось подчеркнуть важность и нужность наличия такого инструмента, как EDT, и передать то нетерпение, с которым данный продукт ожидается. Я написал «ожидается» в будущем времени, несмотря на наличие и регулярные обновления коммерческой версии данного продукта, потому как не верю, что он останется в текущем его виде. Также не хочется верить в то, что вся разработка EDT будет свернута. Сейчас есть достаточно широкий перечень недостатков, и тем не менее сEDT уже можно работать, что я бы и стал делать, если у вас, к примеру, вся логика сосредоточена в нескольких объектах метаданных или в нескольких модулях, которые жизненно необходимо модифицировать нескольким разработчикам, чтобы не тормозить течение проекта.
Ну а теперь о грустном… А грустное начинается уже сразу после запуска IDE. С открытым проектом она достаточно прожорлива к объему потребляемой памяти. Вот так, к примеру, это выглядит у меня в диспетчере задач (см. рис. 3).
Рисунок 3. Внешний вид 1С:EDT
Это, конечно, издержки использования JVM и нагрузки Eclipse не совсем теми задачами, для которых она была разработана. Но в современных компьютерах разработчиков, как правило, не менее 8-16 Гб памяти, поэтому можно считать, что 3-4 Гб на запуск и работу с любимой IDE мы можем себе позволить. Только вот конфигуратор 1С с той же информационной базой и таким же, в сущности, набором функций (а по большому счету и куда большим) требует себе всего около 200 Мб оперативной памяти. Данный факт кажется несколько несправедливым.
Второй неприятный сюрприз ждет при попытке начать работу. Если в списке информационных баз нажать на кнопку «Импорт конфигурации» (см. рис. 4), то можно достаточно долго наблюдать процесс переноса конфигурации в Eclipse для работы с ней. Как видим, данная процедура уже практически исключает возможность использования EDT для оперативной работы с кучей разных баз одного разработчика. Ожидание скорее всего будет неоправданным. Длительность его обычно зависит отобъема информационной базы и производительности конечного компьютера. Но нужно настраиваться на ожидание не менее часа.
Рисунок 4. Импорт конфигурации информационной базы в 1C:EDT
Самое интересное заключается в том, что в этот момент времени происходит весьма банальная вещь – запускается конфигуратор и выгружаются все файлы конфигурации штатным образом в текстовый вид. Складывается твердое впечатление, что в компании «1С» команды EDT и основной платформы практически никак не связаны. Наверняка можно было организовать или другой механизм хранения конфигурации в 1С (уже давно пора бы), или более быстрый способ сохранения конфигурации в файлы, которые без EDT мы используем крайне редко, поэтому о его эффективности наверняка никто особенно не заботился. Но вместо этого продукт 1С:EDT использует только штатные возможности конфигуратора 1С, как будто он находится «в стороне» от основной платформы.
Больше всего я, конечно, ждал изменений в редакторе кода. Как поклонник проекта Снегопат [1] я ожидал развитой автоподстановки, потому как Ctrl+Пробел уже давно нажимать отвык. И каково было мое удивление, когда я узнал, что даже для Java в Eclipse эти функции являются не особо продуманными, а для 1С, конечно, опять не предусмотрены.
Вообще редактор кода выглядит примерно следующим образом (см. рис. 5).
Рисунок 5. Внешний вид редактора кода в EDT
Для сравнения: вот так редактор кода у меня выглядит в конфигураторе (см. рис. 6).
Рисунок 6. Внешний вид редактора кода в 1С (для сравнения)
Ну и не смогу удержаться от картинки «как хотелось бы» – на рис. 8 вид редактора кода в MS Visual Studio. В Visual Studio, если ты вводишь хотя бы один новый символ, а IDE тебе при этом ничего не предлагает, значит, нужно задуматься, а не ошибся ли ты синтаксисом. IntelliSence от Microsoft ушел далеко вперед и от Eclipse, и тем более от 1С.
Еще очень раздражает долгий поиск в конфигураторе 1С, в случае если информационная база достаточно большая. Для этого я чаще всего пользуюсь функционалом поиска GitLab. Собственно, можно продолжать им пользоваться – поиск работает медленно. Еще медленнее, чем в конфигураторе.
Не работает «любимое» <Ctrl> + <F1> – синтаксис-помощник теперь открывается по кнопке <F2>, зато будет работать при установке курсора – если открыт на отдельной вкладке. Если привыкнуть, пожалуй, несколько удобнее. Но чем разработчикам не понравился старый добрый <F1> – непонятно.
Несколько удобнее стала работа с отладчиком – иерархия точек останова, сохранение их в файл, очень удобная иерархия вызовов; в общем, все то, к чему уже давно привыкли разработчики на других языках программирования.
Ну и, наконец, на рис. 7 представлено то меню, ради которого это все нужно, – единственная причина перейти на EDT, которая может перевесить в разы все недостатки. Репозиторий теперь никак не привязан к базе. По сути дела, вы можете вести разработку на 1С, вообще не имея никакой базы.
Рисунок 7. Возможности 1C:EDT для совместной работы
Рисунок 8. Внешний вид редактора кода MS Visual Studio
Итого, 1C:EDT – очень амбициозный проект, сейчас уже вполне работоспособное средство, которое может позволить вести коллективную разработку на проектах, казавшихся ранее на 1С практически не реализуемыми или требовавших очень серьезной организации и контроля процессов. Проект сейчас развивается семимильными шагами. Есть, конечно, недоработки, их много. Вероятно, что в текущей версии работать менее удобно, чем в простом и банальном конфигураторе. Все это так ибудет так, пока у вас не возникнет задачи, при которой человек так десять должны модифицировать совместно один документ/обработку, особенно если эти десять человек еще территориально распределены. В этом случае 1С:EDT просто незаменима. Да и хочется верить, что еще с полгода-год развития и EDT существенно обгонит существующую среду разработки и в описании новых версий мы будем читать не про исправление багов, а про развитие IntelliSence и новые варианты автоподстановки для помощи разработчику.
- Проект Снегопат – https://snegopat.ru.
Ключевые слова: 1C, разработка.
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|