TGViewer
DartWay Ru | Flutter & Fullstack Dart DartWay Ru | Flutter & Fullstack Dart @dartway_dev_ru · 596 subscribers
Post #139 466
Самое сложное в модуле — это гибкость

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

Но у каждого проекта — свои, особенные требования. Поэтому самое сложное в создании модуля — не функциональность. Самое сложное — обеспечить гибкость: чтобы модуль подошёл не только автору, но и тысяче чужих проектов, каждый из которых захочет чуть-чуть своего.

В качестве антипримера — модули Serverpod.

В Serverpod есть готовые модули аутентификации и чата. Выглядит подарком: подключил — и в проекте логин и мессенджер из коробки. Ровно то, что обещают все фреймворки «с батарейками».

А теперь реальность. Модели этих модулей живут внутри модуля. Пользователь — это их UserInfo, сообщение — их модель, таблицы — их таблицы. В рамках демо всё прекрасно. Но продукту всегда нужно больше: поле к пользователю, свой флоу верификации, вложения в сообщениях, свои права на канал. И здесь стена: чужую модель не расширить. Варианта два — городить параллельные таблицы со склейками или форкать модуль. А форк — это навсегда: его придётся тащить через каждое обновление фреймворка. Ад поддержки, без преувеличения.

Это не претензия к Serverpod — он отличный фундамент, и DartWay построен поверх него. Это ловушка, в которую попадает почти любой «готовый модуль»: чем больше функциональности зашито в чужие модели, тем быстрее инструмент из ускорителя превращается в тормоз. Причём стена обнаруживается не в день установки, а через месяц, когда переделывать уже дорого.

DartWay спроектирован от обратного принципа: фреймворк не должен владеть моделями приложения.

Аутентификация: весь флоу готов — телефон, одноразовый код, сессии, переживающие перезапуск. Но пользователь — это модель приложения UserProfile, в базе приложения, с любыми полями: роли, аватар, всё, что нужно домену. Добавить поле = добавить поле. Не форк.

Отсюда формула DartWay: инструменты должны снимать рутину, не забирая гибкость. Всё сложное — авторизация, права, реалтайм, CRUD — решено один раз и по-нормальному. Но все модели остаются моделями приложения, вся логика — логикой приложения, и ни в одной точке нет двери, за которой «дальше только форк».

Через несколько дней DartWay выходит на pub.dev — это утверждение можно будет проверить на своём проекте.
  • 🔥 6
  • ❤ 2
More from @dartway_dev_ru
  1. Sep 28, 2026Новости DartWay Я принял решение полностью отказаться от Serverpod, чтобы снять все ограни…
  2. Sep 27, 2026Dart MCP: что реально даёт ИИ-агенту MCP-сервер встроен в Dart SDK с июля 2025 года. Подкл…
  3. Sep 25, 2026Serverpod 4: обзор с комментариями Вышел Serverpod 4, а вместе с ним App Studio. Сам я с S…
  4. Sep 4, 2026Flutter 3.47: что сломается и что делать до ноября Записал разбор — первый выпуск новой се…
  5. Sep 3, 2026Post #161
  6. Sep 3, 2026Релиз DartWay, 3 сентября За 10 дней: 47 пул-реквестов, закрыто 39 issue, 7 500 строк кода…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →