Pull to refresh
32K+
8
Михаил Миронов@alwaysdeterminated

Backend Engineer

70,1
Rating
5
Subscribers
Habr CareerHabr Career
Send message

DTO, schema, model, entity: почему в коде всё называется User

Level of difficultyMedium
Reading time6 min
Reach and readers15K

Один User сначала кажется удобным: его можно принять в запросе, вернуть из API, сохранить в базу и передать дальше.
Но со временем такой класс смешивает разные границы и перестаёт защищать код.

Разбираю на Python-примерах, чем отличаются DTO, schema, model и entity — и когда отдельные классы действительно нужны.

Читать далее

ID, token, UUID и slug: в чём разница и почему их нельзя мешать

Level of difficultyMedium
Reading time9 min
Reach and readers20K

В каждом бэкенде рано или поздно рядом появляются id, UUID, slug, token и request_id. Все они выглядят как строки, но отвечают за разные вещи.

Когда это забывают, UUID становится защитой, slug — вечной айдишкой, а token — просто ещё одним идентификатором.

Читать далее

ObjectId против UUID: как выбор _id в MongoDB влияет на API, индексы и миграции

Level of difficultyMedium
Reading time5 min
Reach and readers8K

_id в MongoDB кажется мелочью, пока не попадает в API, события и миграции.

Разбираем, когда оставить стандартный ObjectId, когда нужен UUID, почему его лучше хранить как BSON Binary subtype 4 и зачем иногда разделять внутренний и публичный идентификатор.

Читать далее

VARCHAR(N) в PostgreSQL: ограничение, а не экономия памяти

Level of difficultyMedium
Reading time8 min
Reach and readers12K

varchar(255) выглядит как аккуратное ограничение и часто воспринимается как способ сэкономить место.
Но в PostgreSQL это не так: база хранит фактическую строку, а не заранее выделяет память под весь лимит.

Разбираемся, что на самом деле делает VARCHAR(N), чем он отличается от text, когда ограничение полезно, а когда просто превращается в число, которое притворяется архитектурой.

Читать далее

ИИ не отменяет найм. Он просто выставляет счёт в другом месте

Level of difficultyMedium
Reading time6 min
Reach and readers10K

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

Читать далее

Information

Rating
113-th
Location
Молдова
Date of birth
Registered
Activity

Specialization

Бэкенд разработчик, Фулстек разработчик
Средний
Python
Git
SQL
PostgreSQL
Docker
ООП
Базы данных
Оптимизация кода
Redis
MongoDB