Разработка и тестирование Open Source проектов на платформе 1С:Предприятие — это уникальная возможность для сообщества специалистов делиться опытом, улучшать навыки и совместно создавать качественные прикладные решения. Рассмотрим подробно, как такие проекты функционируют, какие принципы лежат в их основе и какие инструменты помогают достигать поставленных целей.
Open Source, или открытый исходный код, означает, что программное обеспечение распространяется с возможностью свободного доступа к его исходному коду. Для платформы 1С:Предприятие это открывает ряд перспектив и преимуществ:
Рассмотрим, какие конкретные принципы и подходы применяются в данном модульном ERP-проекте на платформе 1С. Мы видим, что это не просто открытый код, но и определенная философия разработки и взаимодействия с сообществом.
Модульность как ключевой принцип: Проект строится на идее модульной конфигурации. Это означает, что функциональность разбита на отдельные, относительно независимые блоки — расширения. Каждое расширение представляет собой отдельный контур учета или функциональный блок. Мы понимаем, что это дает гибкость:
Лицензионное соглашение и права пользователя: В данном проекте применяются четкие правила использования и распространения конфигурации, которые соответствуют принципам Open Source:
При этом существуют и ограничения: НЕ разрешается копировать документацию, предоставлять Конфигурацию в аренду/продавать или предоставлять сублицензию, а также удалять информацию об авторских правах. Это стандартные ограничения для большинства открытых лицензий, которые защищают интеллектуальную собственность авторов ядра, при этом обеспечивая свободу использования и модификации.
Философия простоты: Авторы проекта стремятся к тому, чтобы решение было максимально простым и понятным, чтобы "любой мог сходу разобраться" в коде и логике работы. Это напоминает простоту, которой славилась платформа 7.7. Мы принимаем во внимание мудрость: "Делать сложное очень просто, а вот делать простое очень сложно". Простой код, который не требует чрезмерных комментариев, считается хорошим кодом, так как его легко читать и поддерживать.
Эффективное тестирование — залог качества любого программного продукта, особенно в Open Source, где процесс часто распределен между множеством участников. Рассмотрим подходы к тестированию в данном проекте.
Пользовательское (ручное) тестирование: Основной упор делается на пользовательское тестирование. Мы понимаем, что именно в этом заключается смысл такого подхода: тестировщик должен сам "ковыряться во всей конфигурации", "хаотично нажимая различные кнопки", "создавать документы и т.д.". Это не означает полное отсутствие структуры, а скорее имитацию реальной работы пользователя:
Отсутствие перечня действий: В начале проекта может отсутствовать детализированный перечень определенных действий для тестирования. Это требует от тестировщика инициативы и глубокого погружения в функционал. Однако, с развитием проекта и накоплением опыта, мы можем приступить к формализации тестовых сценариев.
Документация для тестирования: Наличие документации критически важно для эффективного тестирования, даже если оно ручное. Мы подтверждаем, что документация есть и постоянно обновляется. Это помогает тестировщикам ориентироваться в функционале, понимать его назначение и корректно воспроизводить бизнес-процессы.
Автоматизированное тестирование: На начальном этапе проекта автоматизированное тестирование может не использоваться. Однако, мы видим, что есть предложение начать его внедрение. Для автоматизации тестирования прикладных решений на платформе "1С:Предприятие" активно используются Open Source инструменты, такие как Vanessa ADD (являющаяся результатом объединения фреймворков xUnitFor1C и Vanessa-Behavior). Это мощный инструмент, который позволяет нам:
Организация автоматизированного тестирования включает в себя документирование (создание плана и реестра сценариев), написание и отладку сценариев, а также создание и запуск пакетов тестирования. При внедрении автоматизированного тестирования мы рекомендуем начать с наиболее критичных функциональных блоков (доменов) и формализовать функциональные требования для них, чтобы на их основе формировать набор тестов.
Разработка в Open Source проекте на 1С имеет свои особенности, связанные как с платформой, так и с распределенным характером работы. Мы рассмотрим ключевые аспекты.
Присоединение к разработке: Разработчики могут присоединиться к проекту в нескольких формах:
Постановка задач: Задачи на разработку часто ставятся "клиентами (и/или правительством :) вводя различные маркировки, егаисы и прочие исы)". Это означает, что развитие функционала во многом определяется реальными потребностями бизнеса и законодательными изменениями. Такое взаимодействие с внешними источниками задач гарантирует актуальность и востребованность разрабатываемых модулей.
Среда разработки: Основной средой разработки остается Конфигуратор. Однако для групповой разработки и использования принципов Open Source активно применяется система контроля версий Git. На данный момент проект может использовать хранилище 1С, но рассматривает возможность перехода на Git. Мы осознаем, что Git предоставляет значительные преимущества для Open Source, такие как:
Для интеграции 1С с Git существуют специализированные утилиты. Например, precommit1C позволяет разбирать/собирать внешние обработки и отчеты при коммите, а gitsync обеспечивает синхронизацию хранилища 1С с Git-репозиторием. Использование этих инструментов позволяет нам эффективно управлять кодом в распределенной команде.
Контроль разработки: Вопреки мнению о хаотичности Open Source, в данном проекте существует контроль над разработкой. Несмотря на то, что "любой разработчик может добавлять свои расширения в магазин расширений", это не означает отсутствие главного, кто контролирует разработку. Мы можем предположить, что контроль осуществляется через ревью кода, стандарты разработки и одобрение публикации новых модулей или изменений в ядре. Это гарантирует поддержание общего качества и согласованности.
Ограничения базовых версий 1С: Мы помним, что базовые версии 1С не позволяют изменять конфигурацию и не имеют функционала расширений. Это ограничивает возможности Open Source проектов, ориентированных на широкое распространение среди малых предприятий, использующих базовые версии. Разработка для таких проектов должна учитывать эти ограничения.
Проблемы с UI: Мы признаем, что глубокая кастомизация пользовательского интерфейса (UI) не всегда является сильной стороной платформы 1С. Это иногда может подталкивать к поиску альтернативных решений или фронтенд-технологий для создания более гибких и современных интерфейсов для некоторых частей системы.
Качество и доступность документации, а также продуманная архитектура являются основополагающими для успеха любого Open Source проекта, особенно на 1С.
Документация: В проекте "INFOSTART ERP community edition" документация существует и постоянно обновляется. Это критически важно, поскольку:
Мы понимаем, что без адекватной документации, особенно по таким сложным блокам, как платежный календарь, разработчикам и тестировщикам пришлось бы работать "по наитию", что значительно снижает эффективность и качество.
Архитектура решения: Вопрос архитектуры — сложный. Каждый разработчик считает, что его решения идеальны на данный момент времени с доступными инструментами и возможностями платформы. Однако "ничего не стоит на месте, все развивается", и то, что казалось идеальным вчера, сегодня может быть "слегка убогим". В данном проекте как такового формального "описания архитектуры" может не быть в виде единого документа. Однако существуют некие основополагающие принципы написания конфигурации, которых необходимо придерживаться. Эти принципы формируются и могут быть описаны со временем, по мере развития проекта. Мы стремимся к тому, чтобы эти принципы были минимальными, но достаточными для поддержания порядка и согласованности в разработке.
Open Source проекты часто опираются на энтузиазм и самоотдачу участников. Мы рассмотрим, как мотивируются добровольцы в данном проекте.
Увлеченность проектом: Основной движущей силой является "увлеченность тем, чем они занимаются". Проект является Open Source, а следовательно, предполагается, что люди участвуют по собственному желанию, из интереса и страсти к разработке или тестированию.
Бесплатное участие: Участие в проекте является бесплатным для разработчиков и тестировщиков. Мы рассматриваем это не как "работу" в общепринятом смысле, а как "участие в проекте". Это означает, что каждый "работает, когда хочет, как хочет и сколько хочет".
Бонусы и нематериальная мотивация: Несмотря на бесплатность, для участников предусмотрены бонусы:
Модель Open Core: Проекты Open Source могут монетизироваться с использованием бизнес-модели Open Core. Это подразумевает предоставление платной подписки для доступа к "продвинутым" возможностям, услугам поддержки и адаптации продукта. Таким образом, ядро остается открытым, а расширенная функциональность или сервисы — платными. Это устойчивая модель, позволяющая поддерживать развитие проекта.
API-экосистемы: Некоторые разработчики планируют развивать API-экосистемы, которые позволят интегрировать программные продукты с другими сервисами и платформами. Это также может стать частью стратегии монетизации и расширения влияния проекта.
Продвижение и сообщество: Профильные площадки, такие как Инфостарт и GitHub, играют важную роль в продвижении Open Source проектов 1С. Они позволяют находить единомышленников, получать обратную связь и развивать решения. Существуют также агрегаторы Open Source проектов для 1С, например, OpenYellow, которые собирают информацию о репозиториях на GitHub и предоставляют рейтинги, помогая новым участникам находить интересные проекты.
Для эффективной работы над Open Source проектом на платформе 1С:Предприятие мы используем или рассматриваем к использованию ряд специализированных инструментов.
precommit1C: Эта утилита позволяет разбирать/собирать внешние обработки и отчеты при коммите в Git. Это критически важно, так как 1С хранит объекты в бинарном или XML-формате, неудобном для прямого сравнения в Git. precommit1C помогает конвертировать их в текстовый вид, удобный для Git.gitsync: Этот инструмент предназначен для синхронизации хранилища 1С с Git-репозиторием. Он автоматизирует процесс выгрузки изменений из хранилища 1С в Git и загрузки их обратно, упрощая работу разработчиков, привыкших к хранилищу.xUnitFor1C и Vanessa-Behavior и предоставляет следующие возможности:
Таким образом, Open Source разработка на 1С, хотя и обладает специфическими вызовами, активно развивается благодаря энтузиазму сообщества, продуманным принципам организации и доступности специализированных инструментов для совместной работы, тестирования и интеграции. Мы приглашаем всех желающих присоединиться к этому увлекательному процессу и внести свой вклад в развитие открытых решений на платформе 1С:Предприятие.