Получи случайную криптовалюту за регистрацию!

​​ Бесконечно можно смотреть на три вещи: как горит огонь, ка | Типа про IT

​​ Бесконечно можно смотреть на три вещи: как горит огонь, как течет вода и как команда пытается выработать правильную архитектуру приложения.

Я за все эти годы в IT уже насмотрелся на горы сломанных копий, это не моя война. MVC? Onion? DDD? FP? Просто херачим как придётся? Да, ок.

Но всегда было интересно как выглядит красивое Real World Python App , вот чтобы scalable, maintainable, testable и чтобы дизайн приложения сам направлял тебя в нужную сторону. Я так и не видел хороших примеров. До весны этого года.

Пришёл к нам в команду новый software engineer, поляк, который полностью взял на себя разработку PoC нового ML-приложения и за неделю запилил нам прототип. И не просто прототип, а “это просто охуенно” прототип. В итоге мы все сошлись на том, что теперь пишем все новые приложения именно так, несмотря на мою (и не только) непереносимость ООП. Классы эти повсюду, буэ.

В основе решения — Ports & Adapters Architecture (aka Hexagonal Architecture):

Ports & Adapters Architecture
A Color Coded Guide to Ports and Adapters
Ports-And-Adapters / Hexagonal Architecture
The Clean Architecture (Ian Cooper)
More Testable Code with the Hexagonal Architecture

В качестве DI — Injector, у которого для старта откровенно слабая документация и мало примеров, но если потратить вечер и разобраться, то всё действительно просто. Плюс The Twelve Factor, не забываем.

Вот и весь секрет. Нет, на самом деле не весь, но три кита так точно.