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

Но что делать, если продукт гибкий и зависит от конфигурации? Ну, наш дядя Excel возвращается и помогает с этими 30 файлами CSV, которые содержат дублированные данные повсюду. Теперь вы можете быть счастливы, что вы и деловой человек создали эти 4000+ записей начальной конфигурации, которые вы никогда больше не увидите.

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

В какой-то момент это была история, с которой мне пришлось столкнуться…

Затем я начал со своего первого DSL для поддержки и создания конфигурации.

Поначалу было тяжело… копировать концепции из таблиц базы данных в новый язык один к одному… но это сработало. Полтора дня работы по настройке за 70 минут!

Но когда мой подход был неправильным. Таблицы конфигурации созданы таким образом, чтобы наилучшим образом поддерживать программу и разработчиков, а не деловых людей. И я не люблю тестировать и работать с Excel 😉, Бизнесмены должны делать те, кто знает, что им нужно в настройке, но не знают как.

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

Теперь мои данные строятся со ссылками, с использованием ключевых слов, предоставляется инструментарий с редактором. Меньше работы с клавиатурой, а изменения программного обеспечения требуют корректировок в выходном генераторе… или из одного и того же файла могут поддерживаться разные версии.

Вот как это началось. В следующий раз я принесу больше технических подробностей о том, как я это сделал.