Очень странное решение - переходить не микросервисы из-за того, что, цитирую, сложно искать ошибки. В распределенных системах ошибки куда более заковыристые.
Ну и если проблемы с деплоем и откатами монолита, то что будет, когда вы встретитесь с неизбежной синхронизацией веосий сервисов?
Ну и совсем непонятно, как golang помог с "неоптимальными" запросами к бд?)
То есть они хотят сказать, что у Elden Ring новый сетевой код, раз там уязвимости нет? Слабо верится, что они использовали почти одно и то же для всей трилогии, а тут вдруг переписали.
А если код прежний(пусть даже немного изменённый и с фиксом уязвимости), то не совсем понятно, на что нужно столько времени для патча старых версий.
Много всего написали уже правильного, подскажу ещё как мы решали схожие проблемы.
Сталкивались с такой проблемой разработки под нескольких клиентов. Тоже изначально был путь отдельных настроек. Но тестировать и сопровождать при таком подходе очень больно. Пришли к решению через паттерн "стратегия". На этапе запуска приложения регистрируем необходимые реализации, при этом настройка только одна - "имя" клиента. Если инстанс приложения один под несколько клиентов разом, то можно реализации подхватывать во время запроса, в зависимости от того, от кого он прилетел.
По умолчанию можно делать дефолтную реализацию, которая подхватывается, если нет специфичной для клиента.
Таким образом все различающиеся части приложения можно выделять в отдельные кусочки и прятать за абстракцией. Отдельные реализации легко тестить. При тестировании внешних компонентов можно легко мокать или тестить целый контур с отдельной реализацией. Из минусов - абстракции усложняют код, но это гораздо удобнее кучи if'ов.
Очень странное решение - переходить не микросервисы из-за того, что, цитирую, сложно искать ошибки. В распределенных системах ошибки куда более заковыристые.
Ну и если проблемы с деплоем и откатами монолита, то что будет, когда вы встретитесь с неизбежной синхронизацией веосий сервисов?
Ну и совсем непонятно, как golang помог с "неоптимальными" запросами к бд?)
С текущими ценовыми политиками я бы не сказал, что ПК гейминг более "актуальный". Собрать хороший пк выходит гораздо дороже.
По этой фразе можно понять, что в Elden Ring уязвимости уже нет.
То есть они хотят сказать, что у Elden Ring новый сетевой код, раз там уязвимости нет? Слабо верится, что они использовали почти одно и то же для всей трилогии, а тут вдруг переписали.
А если код прежний(пусть даже немного изменённый и с фиксом уязвимости), то не совсем понятно, на что нужно столько времени для патча старых версий.
Много всего написали уже правильного, подскажу ещё как мы решали схожие проблемы.
Сталкивались с такой проблемой разработки под нескольких клиентов. Тоже изначально был путь отдельных настроек. Но тестировать и сопровождать при таком подходе очень больно. Пришли к решению через паттерн "стратегия". На этапе запуска приложения регистрируем необходимые реализации, при этом настройка только одна - "имя" клиента. Если инстанс приложения один под несколько клиентов разом, то можно реализации подхватывать во время запроса, в зависимости от того, от кого он прилетел.
По умолчанию можно делать дефолтную реализацию, которая подхватывается, если нет специфичной для клиента.
Таким образом все различающиеся части приложения можно выделять в отдельные кусочки и прятать за абстракцией. Отдельные реализации легко тестить. При тестировании внешних компонентов можно легко мокать или тестить целый контур с отдельной реализацией. Из минусов - абстракции усложняют код, но это гораздо удобнее кучи if'ов.