dzz: Dizzy の冬 (Default)
[personal profile] dzz
Разбирая код, который наворотил уволившийся сотрудник тогда ещё не моего отдела, не могу не заметить, что любителей применения микросервисной архитектуры в промышленной миддлвари нужно расстреливать ещё маленькими, ибо слепое увлечение этой технологией вредит неокрепшим умам.

Имеем приложение, осуществляющее, по сути, буферизацию и маршрутизацию запросов + опрос адресатов на тему статусов обработки этих запросов. Написано на python3 с asyncio.

Как это сделал бы нормальный архитектор: набор классов для представления данных в БД с методами ORM, интерфейс REST API для приёма запросов, корутина для отправки запросов и корутина для опроса статусов. Структурное построение программы - максимум три модуля + main.

Как это делает микросервисник: полная декомпозиция всего, что можно, отдельные классы на каждое мяу, развесистое дерево файлов, обработка каждого типа запросов отдельным модулем с тучей мелких взаимосвязанных функций. На выходе работающий, но абсолютно неремонтопригодный код.

В итоге, простое действие "добавим ещё один тип запросов и один тип объектов в БД" выливается в правку кода в 6 местах. В ШЕСТИ разных файлах, раскиданных по дереву. С обязательным прослеживанием и повторением всей логики обработки, разбитой на 100 маленьких медвежат, т.к. вносить в работающую схему костыльные решения, всё-таки, не хочется.

Вот сижу, тихо злюсь и пишу модификацию в таком вот грёбаном стиле. Радует только то, что на горизонте полугода смогу выкинуть этот компонент из системы совсем и сделать всё нормально.
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

December 2025

S M T W T F S
  12 3456
7 8 9 10 11 1213
14151617181920
21222324252627
28 29 3031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 31st, 2025 07:14 pm
Powered by Dreamwidth Studios