1С, СППР и Архитектура как код

01.02.24

Разработка - DevOps и автоматизация разработки

Можно ли идеи подхода «Архитектура как код» положить на 1С или иную платформу, чтобы не изобретать ещё какой-то язык и сразу получить множество готовых библиотек функций и инструмент достижения главной цели подхода AaC.

1С, СППР и Архитектура как код

 

Сейчас набирает популярность подход «Архитектура как код» (AaC).

Происхождением он обязан практикам devops «Инфраструктура как код» (IaC).

Идея подхода «Архитектура как код» состоит в том, что объекты архитектуры выражаются в виде формализованных структур со связями, что позволяет, создав некоторый язык программирования, управлять модификацией архитектуры программным кодом. Ну и, конечно, зажать архитектуру в некоторый унифицированный формат описания.

В этом контексте происходит переход от визуального описания архитектуры в виде графических схем к формализованной, из которой, в свою очередь, автоматически производится отрисовка графического представления.

Формализация объектов архитектуры производится в виде простого текста в формате YAML, где объект представлен своими именем и реквизитами. Формат YAML позволяет привести проектирование архитектуры к подходам программирования, в т.ч. к контролю версий объектов наподобие git. Формализация объектов архитектуры вместе с их реквизитами позволяет рассматривать (и автоматизировано обрабатывать!) не только функциональные, но и нефункциональные требования.

Сейчас явно выделяются несколько независимых течений в сфере AaC, со своими форматами, языками и графическими движками. Очевидно, в ходе конкурирующего развития, останутся не все. Что-то станет общеуниверсальным стандартом. Или идея AaC заглохнет, либо маргинализуется среди небольшого числе последователей, хотя бы потому, что выгоды от выделения среди программистов кодеров, кодирующих для других кодеров, чтобы они понимали, что им кодировать, не вполне очевидны.

Какую цель преследует формализация архитектуры как кода? Точнее, какую должна преследовать?

Такой целью должна быть возможность автоматической проверки, соответствует ли системная реализация архитектурному замыслу.  Для этого необходимо, чтобы нормы AaC, как разновидность языка описания архитектуры (ADL), были интегрированы в жизненный цикл программного обеспечения.

У меня возникла мысль, а можно ли идеи  подхода «Архитектура как код» положить на 1С или иную платформу, чтобы не изобретать ещё какой-то язык и сразу получить множество готовых библиотек функций и инструмент достижения главной цели подхода AaC.

Вообще-то, специалисты признают, что «Архитектура как код» это маркетинговый слоган, теоретически и идеологически правильно называть этот подход «Архитектура как данные», но он, считается, менее понтово звучит. Тем не менее, в этом контексте близость AaC и 1С становится ещё сильнее.

Смотрим внимательно на AaC и видим, что объект+реквизиты это вообще-то стандартные метаданные 1С. По сути, архитектор-кодер даёт имя сущности (объекту) и даёт ему набор реквизитов и их значений. В этом контексте «описать объект архитектуры» означает:

 

 

  • дать объекту имя;
  • определить список его реквизитов;
  • заполнить реквизиты значениями;
  • определить связи объекта.

Ничего не напоминает?

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

Ну и где тут YAML?

Помним, что конфигурация 1С выгружается в XML-файлы по каждому объекту метаданных?

А что документы платформы могут выгружаться в тот же формат XML со значениями реквизитов?

Ну а YAML считается таким же форматом разметки, как XML, хотя и специально сильно упрощённым. Конвертер YAML/XML не вопрос сделать.

Что мы получаем при таком подходе?

  1. Язык обработки архитектуры.
    1. Это язык 1С.
      1. Хочешь - строй и модифицируй на нём объекты метаданных, хочешь - заполняй и меняй реквизиты объекта, хочешь - строй правила проверки архитектуры, объединяй виды объектов архитектуры в слои/структуры.
    2. Готовых специалистов по AaC со знанием языка.
  2. Готовый функционал управления разработкой архитектуры и кода разработки по аналогии с обычным кодингом для 1С на git-технологиях или в привычном конфигураторе/EDT.
    1. Возможность многопользовательской разработки архитектуры;
    2. Хронологические срезы состояния архитектуры как релизы.
  3. Готовый функционал платформы для обработки архитектуры.
    1. Версионирование (история данных) – аналог ветвей git для данных;
    2. Выгрузка прототипов (схем) YAML в виде XML из конфигурации;
    3. Планы обмена для выгрузки данных архитектуры в другие системы в XML(YAML) или для графической отрисовки;
    4. Импорт архитектурных описаний и списков универсальных архитектурных объектов/реквизитов из других систем через тот же план обмена;
    5. Документирование через поля комментариев и/или справку;
    6. Резервное копирование;
    7. Механизм ввода на основании, как связь между объектами архитектуры, лежащими в одном горизонтальном слое. В платформе это будет наследование реквизитов с обработкой или без обработки их значений;
    8. Механизм дополнительных свойств для описания вертикальных связей объектов архитектуры.
    9. Отчёты для обзора архитектуры и её данных.
  4. Выгрузка в СППР для увязки требований к архитектуре с её описанием.
  5. Возможность описания архитектуры не1С-систем в 1С в едином массиве с конфигурациями 1С.
    1. Ведь для описания архитектуры важно имя сущности, а не  что она заключена в стандартный 1С объект метаданных «Документ».

Чего не хватает?

  1. Не хватает графического описания архитектуры.  У 1С с этим бедно. Можно воспользоваться отрисовкой IDEF0 в СППР, ER диаграммой в EDT. Можно попытаться приспособить табличные или графические отчёты. Но, скорее всего, лучшим решением будет выгрузка для отрисовки в DocHub или Archimate или аналогичный продукт/сервис.
  1. Не хватает функционала по осуществлению главной функции AaC – проверке соответствия архитектуры её исполнению.

Здесь хотелось бы послушать читателей, тут нужен коллективный мозговой штурм

Буду признателен за обратную связь.

Архитектура проектирование код AaC СППР

См. также

DevOps для 1С DevOps и автоматизация разработки Программист Стажер Платные (руб)

Данный онлайн-курс (интенсив) предусматривает изучение процессов, инструментов и методик DevOps, их применение при разработке на платформе 1С. 

2500 руб.

20.06.2023    23044    21    4    

321

1С-программирование DevOps и автоматизация разработки Групповая разработка (Git, хранилище) DevOps для 1С Программист Стажер Платформа 1С v8.3 Платные (руб)

Использования систем контроля версий — стандарт современной разработки. На курсе научимся использованию Хранилища 1С и GIT при разработке на 1С:Предприятие 8. Разберем подходы и приемы коллективной разработки, научимся самостоятельно настраивать системы и ориентироваться в них.

4900 руб.

29.06.2022    12257    105    4    

137

DevOps и автоматизация разработки Тестирование QA Программист Пользователь Платформа 1С v8.3 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Платные (руб)

Автотесты 1С - готовые тестовые сценарии, предназначенные для регресс-тестирования функционала конфигурации после обновления типовым релизом. Сценарии проверяют интерактивное заполнение форм документов, справочников и результат проведения документов. Сценарий – feature-файл, разработанный с помощью vanessa-automation. Запуск сценария выполняется интерактивно с помощью vanessa-automation или с помощью vanessa-runner в CI-системах. Доступно тестирование тонкого клиента. Поддерживаемые версии конфигураций 1С:Зарплата и Управление Персоналом 3 и версии КОРП: 3.1.30.57.

2160 руб.

05.08.2024    1461    16    1    

10

Тестирование QA DevOps и автоматизация разработки Программист Пользователь Платформа 1С v8.3 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Налоговый учет Платные (руб)

Автотесты 1С - готовые тестовые сценарии, предназначенные для регресс-тестирования функционала конфигурации после обновления типовым релизом. Сценарии проверяют интерактивное заполнение форм документов, справочников и результат проведения документов. Сценарий – feature-файл, разработанный с помощью vanessa-automation. Запуск сценария выполняется интерактивно с помощью vanessa-automation или с помощью vanessa-runner в CI-системах. Доступно тестирование тонкого клиента. Поддерживаемые версии конфигураций 1С:Бухгалтерия предприятие 3.0 и версии КОРП: 3.0.156.30.

1800 руб.

20.01.2022    7921    24    0    

14

Тестирование QA DevOps и автоматизация разработки Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Комплексная автоматизация 2.х Россия Бухгалтерский учет Налоговый учет Платные (руб)

Готовые тестовые сценарии, предназначенные для регресс-тестирования функционала конфигурации после обновления типовым релизом. Сценарии проверяют интерактивное заполнение форм документов, справочников и результат проведения документов. Сценарии возможно использовать как для vanessa-automation, так и для СППР. Поддерживаемые версии конфигураций ERP2 и КА2: 2.5.17.113.

2400 руб.

04.07.2022    8564    38    1    

29

DevOps и автоматизация разработки Программист Платформа 1С v8.3 Бесплатно (free)

В проектной разработке часто возникают проблемы с однообразностью ландшафта, производительностью и быстрой разверткой инфраструктуры. Об одном из способов избежать или изолировать данные проблемы с помощью контейнеризации расскажем в статье.

18.09.2024    2364    antonov_av    6    

14

DevOps и автоматизация разработки Бесплатно (free)

Когда информационная база «весит» несколько десятков/сотен гигабайт, для разработки и тестирования обычно используют полную копию рабочей базы. Но если информационная база превышает несколько терабайт, такой подход сталкивается с нехваткой места на диске, долгой реструктуризацией, замедленной скоростью работы и другими проблемами, связанными с размером базы. В статье расскажем, как правильно готовить копии больших баз для разработки и тестирования.

28.08.2024    7404    yuraid    28    

53

DevOps и автоматизация разработки Программист Бизнес-аналитик Руководитель проекта Платформа 1С v8.3 1С:Документооборот Россия Бесплатно (free)

В данной инструкции рассмотрим процесс развертывания приложения на Python с использованием фреймворка Flask и Tesseract OCR в контейнере Docker. Узнаем, как использовать Tesseract в связке с Flask и осуществлять обращения к Tesseract для обработки изображений. Рассмотрим пример обращения к приложению Docker из 1С, в том числе для замещения CuneiForm в старых конфигурациях 1С:Документооборот версии 1.4 и ниже.

20.08.2024    1711    romanichenko    2    

9
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. oleshko_alexey 2 01.02.24 15:18 Сейчас в теме
У меня возникла мысль, а можно ли идеи подхода «Архитектура как код» положить на 1С или иную платформу, чтобы не изобретать ещё какой-то язык и сразу получить множество готовых библиотек функций и инструмент достижения главной цели подхода AaC

А зачем здесь 1С?
Dochub в git все хранит, картинки рисует , а в 1С нужно весь стек переписывать

Алексей Лустин экспериментировал использовать OScript для обертки С4 Model -
Для 1Сников в эту сторону стоит копать.



OScript Enterprise Architect (OMyGod)
DRAFT - отлаживаю концепцию по работе, структурирую API

имплементация языка проектирования 4-рёх уровней архитектуры в стиле O-AAA

Ключевой момент Я российский архитектор, проектирую архитектуру для российского заказчика, и если код команды программистов буду писать на янглийском, то уж техническое задание по ГОСТу мне придется писать точно на русском. Поэтому и архитектуру я должен описывать на русском.
2. roman72 391 01.02.24 16:42 Сейчас в теме
(1) И как в этих решениях с ответом на главный вопрос - как автоматизированно проверить соответствие архитектурных задумок фактическому воплолещению?

В git хранятся версии архитектурных описаний всего лишь...
5. investec 01.02.24 21:58 Сейчас в теме
(1)
OScript Enterprise Architect (OMyGod)


Какова судьба "OScript Enterprise Architect (OMyGod)"?
6. oleshko_alexey 2 02.02.24 11:52 Сейчас в теме
(5) Алексей убрал из доступа проект на github (убрал вообще все публикации, видео и соц. сети)

судя по тому что он активен в Jazz на DocHub вебинарах - OMyGod - не актуален.
8. roman72 391 03.02.24 12:26 Сейчас в теме
(6) И в чём причина этого?
3. oleshko_alexey 2 01.02.24 19:12 Сейчас в теме
В августе Сберфакторинг рассказывал в видео как они восстанавливали архитектуру рабочего проекта по данным логов, которые добавили в каждый сервис. И затем все изменения по логам отслеживаются

С большим удовольствием делюсь с вами записью митапа "Архитектурная руда" от Сбербанк Факторинг состоявшегося 9 августа 2023г.

https://www.youtube.com/watch?v=yp4PgZUYBZY

Большое спасибо Юле за доклад!
4. oleshko_alexey 2 01.02.24 19:16 Сейчас в теме
1, 2, 3 Из "Руды"
Прикрепленные файлы:
7. user-z99999 71 02.02.24 12:26 Сейчас в теме
Когда уборщицы будут визуально программировать,
сама программа будет терять в скорости работы.
Но если покупать всё мощнее и мощнее железо для этих игр, то почему бы нет)))

Если разве что, для аналитиков. Что-то очень быстро накидать, прикинуть, показать.
А для хорошей скорости программы, услуги программистов всегда будут востребованы.
9. roman72 391 03.02.24 12:31 Сейчас в теме
(7) Никто речь не ведёт о том чтобы избавиться от программистов через автоматизацию описания архитектуры.
Архитектура касается не только программного кода, но и иных операций,
например:
нужно описать интеграцию между несколькими системами, определить список интгерируемых данных, направления обмена, нагрузк уна каналы обмена.
Кода ещё никакого нет, а архитектура уже есть. И её описание весьма трудоёмко. Поэтому нужна автоматизация уже здесь.

А что касается архитектуры непосредстенно ПО - программистам нужен внятный и понятный вектор "как работать, в какую сторону писать код, как и что связано на функицональном уровне в зависимости от кода" - архитектура как такой вектор весьма необходима.
10. doublesun 108 24.08.24 08:21 Сейчас в теме
1Сники уже давно живут с "тесты как код". Так что для нашего сообщества понятие "что-то как код" не новое.
Vanessa Automation - пример того, что "тесты как код" дают.
Некоторое время назад и в конфигурации 1С:СТ появилась возможность тесты переводить в код. И это пример того, как концепцию "архитектура как код" можно было бы соединить с 1С:СППР.
Оставьте свое сообщение