Современный backend разнообразен, но всё-таки подчиняется некоторым негласным правилам. Многие из нас, кто разрабатывает серверные приложения, сталкивается с общепринятыми подходами, такими как Clean Architecture, SOLID, Persistence Ignorance, Dependency Injection и прочими. Многие из атрибутов серверной разработки настолько заезжены, что не вызывают никаких вопросов и используются бездумно. О некоторых много говорят, но никогда не используют. Смысл остальных же либо неправильно интерпретирован, либо перевран. Статья рассказывает о том, как построить простую, совершенно типичную, архитектуру backend, которая не только может без какого-либо ущерба следовать заветам известных теоретиков программирования, но и в некоторой степени может их усовершенствовать.
Читать полностью »
Рубрика «domain-specific language»
Ортодоксальный Backend
2019-11-05 в 8:01, admin, рубрики: backend, clean architecture, dependency injection, domain-specific language, mvc, ruby, Программирование, Проектирование и рефакторингMPS 2018.3: планы генерации, улучшения в языке сборки и упаковки и в языке редактора, обновленный интерфейс
2019-01-18 в 15:31, admin, рубрики: domain-specific language, dsl, jetbrains, mps, Блог компании JetBrains, ПрограммированиеПривет! Недавно мы выпустили [MPS 2018.3](https://www.jetbrains.com/mps/download/). В этой версии много новых функций, с которыми работа над проектами станет еще эффективнее. Мы улучшили планы генерации и язык описания редактора, добавили новые конструкции в язык сборки и упаковки, обновили элементы интерфейса для удобной навигации по иерархии наследования и внесли много других изменений для продуктивной работы.
MPS 2018.2: тесты генераторов, плагин GitHub, аспект VCS, уведомления о миграции и многое другое
2018-08-21 в 9:04, admin, рубрики: domain-specific language, dsl, jetbrains, mps, Блог компании JetBrains, ПрограммированиеНедавно вышла новая версия MPS 2018.2 со множеством долгожданных изменений. Если коротко, то в этом релизе вас ждут улучшения миграции, новые генерационные планы, GitHub-плагин и не только. Подробности — ниже.
Небольшое вступление
Всем привет! Частенько зависаю на Medium и нахожу уйму полезных статей от зарубежных разработчиков. В один из таких дней искал для себя что-нибудь по DSL в Kotlin и наткнулся на серию статей о том, что такое DSL в Kotlin и как с этим работать. До прочтения я имел поверхностное понятие о DSL, так как совсем изредка сталкивался ними. Во время чтения статьи мне понравилась простота описания и подачи примеров от автора так, что по окончанию прочтения я решил перевести эту пару статей для вас. Разумеется, с одобрения автора :) Ну что ж, начнём.Читать полностью »
Предметно-ориентированные языки для бизнес-приложений — пользовательские интерфейсы
2017-11-08 в 7:15, admin, рубрики: domain-specific language, jetbrains mps, modelling, user interface modelling, интерфейсы, ПрограммированиеЭта статья 一 перевод статьи Domain-Specific Languages for Business Applications — Modelling User Interfaces
Разработка бизнес-приложений связана с решением задач в различных предметных областях, таких как хранение данных, обработка бизнес-логики, проектирование интерфейса пользователя. Для прироста производительности и качества не хватит ни одного предметно-ориентированного языка (domain-specific language, DSL), ни нескольких, если они недостаточно интегрированы между собой. Значительные улучшения может принести лишь целостный подход, при котором согласованно применяются несколько DSL для моделирования решений в различных предметных областях.
В этой статье мы рассмотрим пример DSL, с помощью которого мы моделируем стандартизованные пользовательские интерфейсы для наших бизнес-приложений в modellwerkstatt.org. Логика, присущая DSL, позволяет визуализировать графы объектов полностью и в очень простом, декларативном виде. Мы покажем, насколько просто внедряется обычный код Java, с которым можно взаимодействовать, что обеспечивает дополнительную гибкость и безопасность, в частности типобезопасность. Указав на различие между внутренними и внешними DSL, мы перейдем к JetBrains MPS и сразу же рассмотрим наш DSL для интерфейсов пользователя. Наконец, мы приведем ряд общих соображений относительно взаимодействия DSL между собой и их расширения.
Читать полностью »