
Go Design Patterns
Singleton, Factory, Builder, Strategy, Decorator, Adapter, functional options, SOLID
24 面接問題·
Senior
1Go における Functional Options pattern の主な利点は何ですか?
1
Go における Functional Options pattern の主な利点は何ですか?
回答
Functional Options pattern を使うと、コンストラクタをオーバーロードせずにオプションのパラメータを持つ設定可能な API を作成できます。異なるシグネチャを持つ複数のコンストラクタを避け、拡張しやすく読みやすい API を提供します。この pattern は first-class function を活用し、曖昧なデフォルト値を避けるため、Go において idiomatic です。
2Go で Singleton pattern を実装する際に推奨されるアプローチは何ですか?
2
Go で Singleton pattern を実装する際に推奨されるアプローチは何ですか?
回答
Go では、Singleton pattern は thread-safe かつ lazy initialization を保証する sync.Once を使って実装するのが理想的です。このアプローチは、エラーの原因となりやすい手動の mutex や double-checked locking を避けられます。sync.Once は、複数の goroutine が並行している場合でも関数が一度だけ実行されることを保証します。
3Go における interface の使用を促す SOLID 原則はどれですか?
3
Go における interface の使用を促す SOLID 原則はどれですか?
回答
Dependency Inversion 原則は、高レベルのモジュールは低レベルのモジュールに依存すべきではなく、抽象(interface)に依存すべきであると述べています。Go では、これは interface を受け取り具象型を返すことを意味します。この原則はテスト(mocking)、疎結合、コードの保守性を容易にします。
4
Go で Factory pattern を idiomatic に実装するにはどうすればよいですか?
5
Adapter pattern の主な役割は何ですか?
+21 面接問題
その他のGo面接トピック
Goの基礎
Junior
25問Goのデータ構造
Junior
20問Go のインターフェース
Junior
18問エラー処理
Junior
20問Goroutine の基礎
Junior
20問Channels
Junior
22問Go Modules
Mid-Level
18問HTTP サーバー
Mid-Level
24問HTTPクライアント
Mid-Level
18問JSON エンコーディング
Mid-Level
20問Database/SQL
Mid-Level
22問context パッケージ
Mid-Level
20問Testing
Mid-Level
22問並行処理パターン
Mid-Level
24問同期プリミティブ
Mid-Level
22問Go Web フレームワーク
Mid-Level
20問REST API 設計
Mid-Level
20問gRPC
Mid-Level
22問Reflection
Senior
20問メモリ管理
Senior
24問パフォーマンス最適化
Senior
22問Generics
Senior
20問Microservices
Senior
24問セキュリティと認証
Senior
24問Docker & Containerization
Senior
20問Kubernetes Basics
Senior
22問高度な Go
Senior
20問CLI開発
Senior
20問