апи. Часто ведутся речи: "данные должны лежать там, где они используеются". user_id используется при авторизации, но не используется в логике самого модуля. Тогда почему он должен лежать там?
так они ведь будут использоваться в модуле ресурса, вот пусть там и лежат
Что значит будут использоватьс в модуле ресурса? Вот я написал конструктор машин, там куча БЛ. Потом приходит бизнес и говорит конструктором могут пользоваться вот те те и по таким правилам. От этого разве изменится конструктор машин? Или он будет пользоваться пермишеннами, ролями и прочим в своих непосредственных задачах? Скорее всего нет.
по моему логично, что код, которым будут владеть люди занимающиеся развитием модуля конструктора машин будут сами решать какие там у кого доступы есть
Ну банально код становится непереносимым и зависимым от приложения.
не понял тут 🤔 каким образом он становится более зависимым чем если мы вынесем проверки куда-то? Ты ж всё равно интерфейс дёргать будешь. Только теперь ты не принимаешь решение можно или нет - этим занимается кто-то другой, кто ничего не знает про то как работает конструктор машин
Ну например я написал работу с какой нить внешней http апи, как отдельный модуль. Прицепил в нее БД, сущности, какие то стейты ходят и прочее. Допустим мы туда в одну папку даже тесты запихали и миграции. Приходит бизнес и говорит - наверти сложные пермишены. 2 варианта: 1) Накручиваю частично внутри кода модуля. Я не могу скопировать свой модуль в другой проект, микросервис. 2) Накручиваю снаружи. Перенос в другой проект: копирую тупо папку, потому что в нем только его логика, он не зависит ни от чего.
если микросервис - то это выглядит как облом по границам. Ходить куда-то за данными, спрашивать можно ли. если физического отделения нет - проще IoС и в каждом модуле писать правила связанные со стейтом этого модуля. То есть да, частично внутри модуля, на основании стейта, которым модуль владеет, если есть правила относящиеся к другому стейту, тогда в тех модулях где этот стейт лежит.
Обсуждают сегодня