Архитектурные функции транспортного и сервисного слоёв транспортный слой: обеспечивает связь с внешним миром — API, UI и другими системами транспортный слой: принимает входящие запросы и направляет их во внутренние…
Средства Go для контроля времени выполнения операции WithTimeout: запускает отсчёт с момента вызова и принимает duration WithDeadline: устанавливает конкретное время в будущем — дату и время завершения WithTimeout…
Event-loop. Когда выполняется SetImmediate Event-loop — механизм обработки событий в Node.js Он управляет очередями timers, I/O callbacks, idle, poll, check (SetImmediate) и close callbacks SetImmediate помещает…
микросервисы оправданы для сложных и масштабируемых систем, над которыми работает много команд они подходят проектам, где требуется независимый деплой и отдельное масштабирование функциональных модулей такой подход…
Монолит и микросервисы: преимущества, недостатки и выбор подхода Монолит — единое приложение, в котором все компоненты работают вместе Микросервисы — набор небольших функционально независимых сервисов Монолит упрощает…
TypeScript — язык со статической типизацией, который транслируется в JavaScript Компиляция требуется, чтобы перед запуском в браузере или Node получить валидный JS ts-node — утилита, позволяющая напрямую выполнять TS…
масштабируемость: монолит перестаёт справляться с ростом нагрузки сложность сопровождения: множество взаимозависимостей и длительные релизы скорость разработки: общий код провоцирует конфликты внутри команды…
Преимущества PostgreSQL перед MS SQL Open-source-лицензия: не требует платы, упрощает доработку и интеграцию Поддержка расширенных типов данных, включая JSONB и геоданные Возможность гибко настраивать и при…
REST работает поверх HTTP/1.1 и отличается универсальностью Передаёт данные в текстовых форматах, таких как JSON и XML, поэтому их легко читать Поддерживается браузерами и удобен для веб-клиентов Его просто проверять…
gRPC обеспечивает низкие задержки, меньшую нагрузку на сеть и сервисы, масштабируемость и строгую типизацию, которые особенно важны для высоконагруженных микросервисов.
Почему блокировки только записи недостаточно? (check-then-act под замком) Контекст: конкуррентность и синхронизация потоков Если под замком находится только запись, сама проверка остаётся уязвимой к изменениям из…
Почему в Go нельзя создавать новый http.Client для каждого запроса? http.Client — структура, предназначенная для отправки HTTP-запросов в Go через встроенный Transport управляет TCP-подключениями Transport повторно…