Go

Go Design Patterns

Singleton, Factory, Builder, Strategy, Decorator, Adapter, functional options, SOLID

24 питань зі співбесід·
Senior
1

Яка головна перевага патерну Functional Options у Go?

Відповідь

Патерн Functional Options дозволяє створювати конфігуровані API з необов'язковими параметрами без перевантаження конструкторів. Він уникає кількох конструкторів із різними сигнатурами та надає розширюваний і читабельний API. Цей патерн є ідіоматичним у Go, оскільки використовує функції першого класу та уникає неоднозначних значень за замовчуванням.

2

Який підхід рекомендується для реалізації патерну Singleton у Go?

Відповідь

У Go патерн Singleton ідеально реалізується за допомогою sync.Once, який гарантує thread-safe та lazy initialization. Цей підхід уникає ручних mutex та double-checked locking, що схильні до помилок. sync.Once гарантує, що функція виконується лише один раз навіть за наявності кількох конкурентних goroutines.

3

Який принцип SOLID заохочує використання interface у Go?

Відповідь

Принцип Dependency Inversion стверджує, що модулі високого рівня не повинні залежати від модулів низького рівня, а від абстракцій (interface). У Go це втілюється у прийнятті interface та поверненні конкретних типів. Цей принцип полегшує тестування (mocking), послаблення зв'язності та супровід коду.

4

Як ідіоматично реалізувати патерн Factory у Go?

5

Яка основна роль патерну Adapter?

+21 питань зі співбесід

Опануй Go для наступної співбесіди

Отримай доступ до всіх питань, flashcards, технічних тестів, вправ code review та симуляторів співбесід.

Почни безкоштовно