
Go Design Patterns
Singleton, Factory, Builder, Strategy, Decorator, Adapter, functional options, SOLID
1Яка головна перевага патерну Functional Options у Go?
Яка головна перевага патерну Functional Options у Go?
Відповідь
Патерн Functional Options дозволяє створювати конфігуровані API з необов'язковими параметрами без перевантаження конструкторів. Він уникає кількох конструкторів із різними сигнатурами та надає розширюваний і читабельний API. Цей патерн є ідіоматичним у Go, оскільки використовує функції першого класу та уникає неоднозначних значень за замовчуванням.
2Який підхід рекомендується для реалізації патерну Singleton у Go?
Який підхід рекомендується для реалізації патерну Singleton у Go?
Відповідь
У Go патерн Singleton ідеально реалізується за допомогою sync.Once, який гарантує thread-safe та lazy initialization. Цей підхід уникає ручних mutex та double-checked locking, що схильні до помилок. sync.Once гарантує, що функція виконується лише один раз навіть за наявності кількох конкурентних goroutines.
3Який принцип SOLID заохочує використання interface у Go?
Який принцип SOLID заохочує використання interface у Go?
Відповідь
Принцип Dependency Inversion стверджує, що модулі високого рівня не повинні залежати від модулів низького рівня, а від абстракцій (interface). У Go це втілюється у прийнятті interface та поверненні конкретних типів. Цей принцип полегшує тестування (mocking), послаблення зв'язності та супровід коду.
Як ідіоматично реалізувати патерн Factory у Go?
Яка основна роль патерну Adapter?
+21 питань зі співбесід
Інші теми співбесід Go
Основи Go
Структури даних Go
Інтерфейси Go
Обробка помилок
Основи goroutines
Channels
Go Modules
HTTP-сервер
HTTP-клієнт
Кодування JSON
Database/SQL
Пакет context
Testing
Патерни конкурентності
Примітиви синхронізації
Веб-фреймворки Go
Проєктування REST API
gRPC
Reflection
Керування пам'яттю
Оптимізація продуктивності
Generics
Microservices
Безпека та автентифікація
Docker & Containerization
Kubernetes Basics
Просунутий Go
Розробка CLI
Опануй Go для наступної співбесіди
Отримай доступ до всіх питань, flashcards, технічних тестів, вправ code review та симуляторів співбесід.
Почни безкоштовно