Проектирование архитектуры плагинов для сторонних провайдеров баз данных в TypeScript-приложении

Habr ·

Проектирование архитектуры плагинов для сторонних провайдеров баз данных в TypeScript-приложении

Я работал над архитектурой LibreDB Studio — IDE для баз данных на TypeScript, которая поддерживает несколько SQL/NoSQL баз данных. Работая над слоем провайдеров, я пришёл к довольно строгой архитектуре провайдеров, чтобы сделать добавление новых баз данных безопаснее и сократить объём основного кода, который нужно менять. Я написал об этой архитектуре здесь: https://libredb.org/blog/building-universal-database-provider-typescript/ Текущий процесс добавления провайдера задокументирован здесь: https://github.com/libredb/libredb-studio/blob/main/docs/ADDING_A_PROVIDER.md Архитектура работает достаточно хорошо, но у меня возник более широкий вопрос. Сейчас добавление нового провайдера по-прежнему означает добавление его в основную кодовую базу Libredb-Studio. В конечном итоге я хотел бы перейти к чему-то более похожему на экосистему плагинов: Читать далее

Я работал над архитектурой LibreDB Studio — IDE для баз данных на TypeScript, которая поддерживает несколько SQL/NoSQL баз данных. Работая над слоем провайдеров, я пришёл к довольно строгой архитектуре провайдеров, чтобы сделать добавление новых баз данных безопаснее и сократить объём основного кода, который нужно менять. Я написал об этой архитектуре здесь: https://libredb.org/blog/building-universal-database-provider-typescript/ Текущий процесс добавления провайдера задокументирован здесь: https://github.com/libredb/libredb-studio/blob/main/docs/ADDING_A_PROVIDER.md Архитектура работает достаточно хорошо, но у меня возник более широкий вопрос. Сейчас добавление нового провайдера по-прежнему означает добавление его в основную кодовую базу Libredb-Studio. В конечном итоге я хотел бы перейти к чему-то более похожему на экосистему плагинов: Читать далее

Источник: Habr