@lucifer-m
golang php js html css

Как реализовать модульность?

Сейчас у меня есть софт с кучей функций (в общем он охватывает примерно 3 разных аудитории в сфере хака) я хочу его поделить на модули, а потом тупо продавать модули для сети. Звучит нормально) Но как я начал гуглить... Это был писец)

Я хочу подключать уже скомпилированные модули которые должны расширять функцию парсинга команд. Сейчас она получает json формата
{
command: "name modules",
flag : "data command"
}

а потом с помощью switch определяет кукую команду выполнять. Что посоветуете?

UPD.
сейчас на ум пришла идея каждый модуль использовать как микросервис (вызывать через терминал) но я даже представить не могу как расширить функцию парсинга команд)
  • Вопрос задан
  • 595 просмотров
Решения вопроса 1
index0h
@index0h
PHP, Golang. https://github.com/index0h
Golang по умолчанию компилируется в 1 бинарь. Да, можно подключать shared либы, да можно собирать, но язык заточен не под это.
Что бы подключать функционал - гуглите на тему "golang unsafe", "golang load dynamic library". Но вообще говоря - это со всей силы не golang-way.

каждый модуль использовать как микросервис

вполне вариант

представить не могу как расширить функцию парсинга команд

Вам нужен некий резолвер, который будет заполняться мета данными о ваших командах в процессе старта приложения. Далее на основании собранных данных нужно будет настраивать парсер команд.

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

[client] <-??-> [client-app] <-rpc|queue|...-> [main-server] <-rpc|queue|...=>[modules]
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы