
Go Design Patterns
Singleton, Factory, Builder, Strategy, Decorator, Adapter, functional options, SOLID
1Lợi ích chính của pattern Functional Options trong Go là gì?
Lợi ích chính của pattern Functional Options trong Go là gì?
Câu trả lời
Pattern Functional Options cho phép tạo các API có thể cấu hình với các tham số tùy chọn mà không cần overload constructor. Nó tránh việc có nhiều constructor với các signature khác nhau và cung cấp một API dễ mở rộng và dễ đọc. Pattern này mang tính idiomatic trong Go vì nó tận dụng first-class function và tránh các giá trị mặc định mơ hồ.
2Cách tiếp cận nào được khuyến nghị để triển khai pattern Singleton trong Go?
Cách tiếp cận nào được khuyến nghị để triển khai pattern Singleton trong Go?
Câu trả lời
Trong Go, pattern Singleton lý tưởng được triển khai bằng sync.Once, đảm bảo khởi tạo thread-safe và lazy initialization. Cách tiếp cận này tránh các mutex thủ công và double-checked locking vốn dễ gây lỗi. sync.Once đảm bảo một hàm chỉ được thực thi một lần ngay cả khi có nhiều goroutine chạy đồng thời.
3Nguyên tắc SOLID nào khuyến khích việc sử dụng interface trong Go?
Nguyên tắc SOLID nào khuyến khích việc sử dụng interface trong Go?
Câu trả lời
Nguyên tắc Dependency Inversion phát biểu rằng các module cấp cao không nên phụ thuộc vào các module cấp thấp, mà phụ thuộc vào các trừu tượng (interface). Trong Go, điều này thể hiện qua việc nhận interface và trả về các kiểu cụ thể. Nguyên tắc này tạo điều kiện thuận lợi cho việc kiểm thử (mocking), giảm sự phụ thuộc và khả năng bảo trì mã.
Làm thế nào để triển khai pattern Factory trong Go một cách idiomatic?
Vai trò chính của Adapter pattern là gì?
+21 câu hỏi phỏng vấn
Các chủ đề phỏng vấn Go khác
Kiến thức cơ bản về Go
Cấu trúc dữ liệu Go
Interface trong Go
Xử lý lỗi
Cơ bản về Goroutine
Channels
Go Modules
Máy chủ HTTP
HTTP Client
Mã hóa JSON
Database/SQL
Gói context
Testing
Các mẫu Concurrency
Primitive đồng bộ hóa
Framework web Go
Thiết kế API REST
gRPC
Reflection
Quản lý bộ nhớ
Tối ưu hóa hiệu năng
Generics
Microservices
Bảo mật và Xác thực
Docker & Containerization
Kubernetes Basics
Go Nâng cao
Phát triển CLI
Nắm vững Go cho lần phỏng vấn tiếp theo
Truy cập tất cả câu hỏi, flashcards, bài kiểm tra kỹ thuật, bài tập code review và mô phỏng phỏng vấn.
Bắt đầu miễn phí