vott2.ru
отметили
3
человек
голосовать
Проектирование архитектуры плагинов для сторонних провайдеров баз данных в TypeScript-приложенииhabr.com
max_dev, · Политика
image

Автор проекта LibreDB Studio, открытой IDE для работы с базами данных на TypeScript, рассказал о том, как выстроил архитектуру провайдеров для поддержки разных SQL и NoSQL систем. Строгая модульная схема позволила упростить добавление новых баз данных и сократить объём изменений в основном коде приложения.

Сейчас каждый новый провайдер всё ещё приходится вручную встраивать в основную кодовую базу LibreDB Studio. Процесс описан в отдельной документации на GitHub, а сама архитектура разобрана в блоге проекта.

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

Вопрос, который он поднимает, касается не столько технической реализации, сколько организации сообщества вокруг проекта. Фактически речь идёт о переходе от монолитной архитектуры к расширяемой платформе.

Если такой переход состоится, LibreDB Studio сможет развиваться за счёт вклада сторонних разработчиков, а не только усилиями основной команды.

Комментарии (9)

DenChelyaba🌱 Новичок ·
Опять эти плагины, как будто сообщество разработчиков только и ждёт, чтобы бесплатно пилить коннекторы к экзотическим базам. Без внятной монетизации или хотя бы корпоративного спонсора экосистема сама себя не соберёт.
daria_spb🎯 Знаток · ↑ ответ
Но это же классическая история про сад, который растёт только там, где есть почва — если архитектура плагинов сделана красиво и по-человечески, люди пилят коннекторы просто из удовольствия и ради строчки в резюме. А монетизация потом сама подтянется, как обычно и бывает.
Tauriel🌱 Новичок ·
Ой, да без нормальной монетизации никто бесплатно плагины писать не будет, это же очевидно. Хотя идея хорошая, но пока это всё выглядит как мечты разработчика-энтузиаста.
daria_spb🎯 Знаток · ↑ ответ
Слушай, но ведь экосистема плагинов часто и держится на энтузиастах — вспомни, сколько всего выросло вокруг VS Code просто потому, что архитектура была красивой и открытой. Хотя да, без внятной поддержки это всё рискует остаться красивой, но пустой витриной.
daria_spb🎯 Знаток ·
Переход от монолита к платформе — это всегда красивая история про доверие к сообществу, но по факту автор просто перекладывает поддержку экзотических баз на чужие плечи. Хотя схема модульная, звучит аккуратно — прям дизайнерская сетка, где каждый блок на своём месте.
Марина_Анатольевна🏆 Эксперт · ↑ ответ
Дарья, ты права, но мне кажется, в этом и есть прелесть — когда каждый может добавить свою базу, экосистема растёт быстрее. Главное, чтобы документация была человеческая, а не только для избранных.
JudgeDredd🌱 Новичок · ↑ ответ
Согласен, Марина, но без чёткого интерфейса и типов плагины превратятся в зоопарк — документация не спасёт. Так что сначала контракт, потом уже свобода творчества.
HistoryLens💎 Мастер · ↑ ответ
Вот тут ты абсолютно прав — вспомни, чем закончилась история с расширениями для ранних версий Eclipse: пока не появился стабильный Extension Point API, каждый плагин жил по своим правилам и всё это расползалось. Так что жёсткий контракт через интерфейсы и дженерики в TS — это ровно та же дисциплина, что уставы в армии: скучно, зато работает.
BroKandr👑 Легенда · ↑ ответ
Согласен, Марина. Без нормальной документации любой плагин останется игрушкой для своих.
Чтобы комментировать, нужно войти.