Собрали в одном месте самые важные ссылкии сделали Тренажер IT-инцидентов для DevOps/SRE
Здесь мы рассматриваем фабрики в тестировании. На очень элементарных примерах, с использованием языка python и инструментов Django, pytest, factory_boy.
What you need to know before putting a Django project that uses SQLite in production. This is part 5 of a series that includes information on write-ahead logging, locking errors, performance, and more.
Сегодня я расскажу, как мы сделали самый быстрый и самый семантически корректный фреймворк для создания апишек на Джанго. Поговорим про конкурентов, покажу очень крутые интеграции, поделюсь своей философией и правилами, которые использовались для создания фреймоврка, ну накину на вентилятор для интереса.
Django silently converts None values in non-nullable string fields into empty strings, but a simple CheckConstraint can enforce truly required values and prevent empty data from slipping into your database.
Fix Django’s case-sensitive unique constraint pitfalls by cleaning duplicates, adding Lower() constraints, and safely migrating with PostgreSQL CONCURRENTLY to avoid downtime.
Based on GitHub stars and PyPI download numbers.
Если вы разработчик и выбрали для своего проекта Django Framework, но не делали большие миграции на своем проекте, эти советы вам точно пригодятся.
How to control NULL value placement when sorting Django QuerySets using F() expressions.
A website and repo with 39 common antipatterns, listing them as well as suggested changes. Worth a look!
Indexing a QuerySet can return nondeterministic rows because slicing does not add ordering, unlike first, which orders by primary key.
ㅤ
Use Memray to profile Django startup, identify heavy imports like numpy, and reduce memory by deferring, lazy importing, or replacing dependencies.
Django ORM прячет SQL за красивым Python-интерфейсом. Пишешь User.objects.filter(active=True).order_by('name')[:10] — получаешь список пользователей. Круто. Но когда запросы тормозят или N+1 пожирает базу, приходится понимать, что вообще происходит.Разберём внутренности QuerySet: почему он ленивый, как работает chaining, когда запрос реально выполняется, и чем select_related отличается от prefetch_related на уровне SQL.
Multiplayer Snake implemented in Django using Django LiveView, 270 lines of Python, server side game state, WebSocket driven HTML updates, no custom JavaScript.
Как только ты начинаешь углубляться в изучение баз данных, так сразу на горизонте возникают такие понятия как подзапросы, CTE, представления и временные таблицы. По опыту работы в университете заметил, что с этими темами у людей часто возникают проблемы и недопонимания. В частности больше всего путаницы вносит именно CTE.
Сегодня поговорим о том, как включать и выключать функциональность в Django, не разворачивая каждый раз новый деплой. В больших проектах эту задачу решают через feature flags, такие условные флажки , которые позволяют запускать скрытые возможности лишь для части пользователей или откатывать фичи, не выкатывая заново весь код. Если вы хотите поэтапно раскатать новую функцию, сделать A/B тест или просто спрятать недоделанный модуль за переключателем, вам сюда.
Вторая часть из серии статей «Сервисы — место, где живет бизнес логика». Если Вы еще не знакомы с первой частью, то рекомендую начать с нее, чтобы у вас сложилась общая картина. Сегодня мы постараемся ответить на все оставшиеся вопросы: познакомимся с прекрасной, легковесной DI-библиотекой, научимся «инжектить» в Django, посмотрим на несколько дашбордов в Кибане и поговорим про доменные модели.
Django’s new Task Framework makes it surprisingly easy to replace Celery, covering configuration, task migration, queues, workers, and periodic jobs with simpler, built-in tooling.