Подборка объединяет вопросы, отмеченные на этапах интервью в техвил. Здесь можно понять структуру технической проверки и заранее повторить связанные темы. В подборке чаще встречаются темы: go, kafka, rabbitmq.
В реализации map в Go для обнаружения коллизий используется метод цепочек (chaining) с помощью связанных списков или альтернативных структур внутри бакетов хэш-таблицы.
Да, у меня есть опыт разработки и поддержки высоконагруженных сервисов на Go. В таких проектах я сталкивался с задачами оптимизации производительности, масштабирования и обеспечения отказоустойчивости.
Нет, на каждую горутину в Go не создаётся отдельный поток операционной системы. Горутину можно рассматривать как лёгкую нить (lightweight thread), которая управляется планировщиком Go (runtime scheduler).
В Go обработка ошибок основана на возвращении значения ошибки (тип error) из функций. Вместо исключений используется явная проверка ошибок после вызова функции.
Domain-Driven Design (DDD) — это подход к разработке ПО, который фокусируется на глубоком понимании предметной области и построении модели, отражающей бизнес-логику.
В Go стандартным HTTP-сервером является пакет net/http, который я использовал для большинства проектов. Он прост в использовании, хорошо интегрируется с другими библиотеками и позволяет быстро создавать REST API.