#plugins #architecture
#Плагины #архитектура
Вопрос:
На прошлой неделе я проводил исследование возможных языков / фреймворков для использования в архитектуре плагинов для моего магистерского проекта. Я чувствую, что многому научился, но я все еще опасаюсь, в каком направлении мне удобно двигаться.
Прежде чем подвести итог своим выводам, я хотел бы сначала описать основные требования моего проекта — потому что я считаю, что, возможно, у меня было узкое видение реализации и, возможно, не то, что требования требуют сами по себе.
Мой проект представляет собой платформу управления IoT, идея заключается в том, что система будет состоять из сервисов или модулей, которые обеспечивают связь, хранение, безопасность, события, регистрацию устройств. Разработчики приложений будут использовать эти системные службы для создания плагинов, которые будут загружаться и выгружаться по желанию во время выполнения, чтобы конечные пользователи могли использовать их на своих устройствах.
Я выполнил несколько обучающих программ с OSGI, некоторые из которых мне было очень сложно выполнить. Я читал о реализациях архитектуры плагинов в C / C и golang, у каждого, похоже, есть свои особенности и ограничения.
Оправдано ли использование архитектуры плагинов для этого проекта? И если да, то какие фреймворки / инструменты / языки вы бы использовали?
Ответ №1:
Что касается архитектуры, я думаю, вам следует следовать микросервисной arch, и да, у каждого языка есть свои ограничения, тогда, когда вы создаете сервис для высокой производительности, используйте rust или c , а когда вы хотите создать высокопроизводительный api, создайте сервис golang и разверните их в облаке и kubernate.
Что касается фреймворка, если вы все еще не понимаете, что такое фреймворк, тогда следуйте чистой архитектуре, которая поможет вам при создании service ex. вы создаете сервис golang с помощью gin framework, и вы можете очень легко переключиться на fiber framework.
ссылка. https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html
https://github.com/bxcodec/go-clean-arch