Нужна ли ORM на проекте: какие у неё плюсы и минусы? ORM (Object-Relational Mapping) — слой абстракции над БД для объектно-ориентированных приложений преимущества: ускоряет разработку, сокращает объём SQL-кода и…
TypeScript — язык со статической типизацией, который транслируется в JavaScript Компиляция требуется, чтобы перед запуском в браузере или Node получить валидный JS ts-node — утилита, позволяющая напрямую выполнять TS…
REST работает поверх HTTP/1.1 и отличается универсальностью Передаёт данные в текстовых форматах, таких как JSON и XML, поэтому их легко читать Поддерживается браузерами и удобен для веб-клиентов Его просто проверять…
Почему context не следует надолго сохранять в структуре? context — объект, который передаёт отмену, дедлайны и значения по цепочке вызовов он не рассчитан на длительное хранение, поскольку привязан к сроку жизни…
gRPC обеспечивает низкие задержки, меньшую нагрузку на сеть и сервисы, масштабируемость и строгую типизацию, которые особенно важны для высоконагруженных микросервисов.
Почему блокировки только записи недостаточно? (check-then-act под замком) Контекст: конкуррентность и синхронизация потоков Если под замком находится только запись, сама проверка остаётся уязвимой к изменениям из…
Почему в Go чаще выбирают небуферизированные каналы? В Go каналы применяют для синхронизации Небуферизированный канал блокирует и отправителя, и получателя Обеспечивает жёсткую синхронизацию goroutine Предотвращает…
Что случится, если equals() считает два объекта равными, а их hashCode() различаются? Контракт equals/hashCode нарушается Hash-based коллекции (HashMap, HashSet) начинают работать некорректно Равные объекты могут…
Асинхронный обмен данными: вызов не блокируется Надёжная доставка с помощью очередей и подтверждений Простое масштабирование при увеличении нагрузки Поддержка сложных коммуникационных паттернов (pub/sub,…
Почему исключения сравнивают с оператором goto и чем это опасно Исключение прекращает стандартное выполнение программы и немедленно передаёт управление обработчику. В этом оно напоминает оператор goto, меняющий…
Почему одну DTO не следует передавать через все слои и как разделять модели Многослойная архитектура строится так, чтобы каждый слой выполнял свою специализированную задачу DTO предназначены для транспортировки данных…