Что же взять вместо django

1 мин на чтение

pip install fastapi

Заметил, что довольно много людей находят в поиске мою заметку про django и быстро уходят, видимо, пришла пора что-то предложить.

1. Проблема не в технологии, а в подходах

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

Тут много текста про то, что никто в здравом уме не захочет сегодня взять на себя поддержку старого джанго-проекта потому что он будет запутанный, переусложненный, унылый. Пользователям постоянно приходится бороться с ограничениями фреймворка, и со временем ограничения никуда не исчезают, т.к. см. выше, нет развития. Тут нафантазируйте себе болото сами, и неконтролируемый рост кодовой базы в этом болоте.

2. Что взамен

А на замену фреймворкам пришли микрофреймворки, которые не заставляют вас делать ничего, что вызывало бы ваше негодование. В них есть только необходимые батарейки, и под капотом вы, конечно, не найдете ORM. Тут даже не пахнет никакими ООП-паттернами, все, мода прошла, оставьте сложные сущности, среднестатистический современный сервис — это несколько сотен строк кода с бизнес-логикой.

В мире просто не осталось места для монструозных проектов, потому что люди не хотят страдать. Всем внезапно понравилось, когда бизнес-логика помещается в голове, легко поддерживается и тестируется. Так что заодно можете не тратить время на изучение celery — вы не найдете эту чушь в энтерпрайзе (а стартапы сбегают от попахивающих проектов еще быстрее), равно как ORM.

И что же у нас остается, если говорить о конкретных технологиях разработки.

В экосистеме python

  • fastapi/aiohttp — написание апишек сопровождает любые проекты;
  • sqlalchemy — как query builder никуда не уходит, но про ORM забудьте;
  • отдельно посмотрите на pydantic, httpx.

БД

  • Redis — в любом проекте, от которого требуется что-то держать а памяти (весь сколь-нибудь нагруженный энтерпрайз).
  • Postgres — вообще каждый проект, просто стандарт.
  • Clickhouse — когда появляется задача сохранять много данных.
  • Все остальное — достаточно экзотично, даже включая mongodb, используется в специфичных проектах.

Брокеры очередей

  • RabbitMQ — не люблю amqp, но это все еще стандарт (если вы никуда не торопитесь).
  • Kafka

Не забывайте, что брокер нужен не всегда, очереди без брокеров позволяют сократить инфраструктурные издержки и/или увеличить пропускную способность.

Бонус

Забудьте про pipenv и помножьте на 0.0042 все что слышите про poetry, магии не существует. Освойте docker, docker-compose, почитайте про k8s.

Телеметрия — наше все, научитесь обмазываться метриками в prometheus.

Метки:

Дата изменения:

Оставить комментарий