REST и SOAP: сравнение REST представляет собой архитектурный стиль API, а SOAP — протокол обмена сообщениями REST опирается на HTTP-методы (GET, POST, PUT, DELETE), SOAP передаёт XML-сообщения через HTTP, SMTP и…
SELECT * и явное перечисление полей SQL-запросы: получение данных SELECT * выбирает все столбцы таблицы Явно заданный список возвращает только выбранные столбцы SELECT * может снижать производительность из-за передачи…
Ключевые различия String, StringBuffer и StringBuilder String — неизменяемая строка (immutable): после изменения создаётся новый объект StringBuffer — изменяемая строка с потокобезопасной синхронизацией (synchronized)…
errors.Is и errors.As в Go: различия и сценарии использования пакет errors предназначен для работы с ошибками errors.Is: определяет, совпадает ли ошибка с заданной или встречается ли она внутри цепочки обёрнутых…
Разница между аутентификацией и авторизацией Безопасность и контроль доступа Аутентификация устанавливает личность пользователя: кто он Способы: логин и пароль, токены, биометрия Авторизация определяет права…
TCP и UDP относятся к транспортному уровню (Transport Layer) и используются для передачи данных. TCP — это надёжный протокол с установлением соединения, для которого предусмотрен handshake. Он обеспечивает доставку…
обмен данными между компонентами или сервисами синхронное: вызывающая сторона ожидает завершения операции и получения ответа, поэтому поток блокируется асинхронное: операция запускается без ожидания результата, а…
GET и POST: функциональные различия и использование body в GET HTTP-методы для передачи данных, используемые в REST GET — получает данные с сервера, а параметры передаются в URL через query string POST — передаёт…
Обработка action в rootReducer при большом числе редюсеров Redux rootReducer формируется объединением редюсеров с помощью combineReducers Каждый редюсер получает каждое action, независимо от его типа При dispatch…
Где в Go объявлять интерфейсы и как реализовать принцип инверсии зависимостей? Архитектура, интерфейсы и DI Интерфейс следует определять на стороне потребителя, а не компонента-поставщика Он фиксирует набор методов,…
Для каких задач вы использовали Celery? асинхронное выполнение фоновых операций запуск ресурсоёмких и длительных процессов за пределами пользовательского запроса настройка периодического запуска задач (cron-like)…
API-запросы с выборкой только нужных данных клиент сам указывает необходимые поля и тем самым сокращает объём лишних данных единый endpoint упрощает устройство API вложенные запросы позволяют объединять данные из…