Go

Go Design Patterns

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

24 คำถามสัมภาษณ์·
Senior
1

ข้อดีหลักของ pattern Functional Options ใน Go คืออะไร?

คำตอบ

Pattern Functional Options ช่วยให้สร้าง API ที่กำหนดค่าได้พร้อมพารามิเตอร์ที่เป็นทางเลือกโดยไม่ต้อง overload constructor มันหลีกเลี่ยงการมี constructor หลายตัวที่มี signature ต่างกันและให้ API ที่ขยายได้และอ่านง่าย Pattern นี้เป็น idiomatic ใน Go เพราะใช้ประโยชน์จาก first-class function และหลีกเลี่ยงค่าเริ่มต้นที่กำกวม

2

แนวทางใดที่แนะนำสำหรับการ implement pattern Singleton ใน Go?

คำตอบ

ใน Go pattern Singleton ถูก implement ได้ดีที่สุดด้วย sync.Once ซึ่งรับประกันการเริ่มต้นแบบ thread-safe และ lazy initialization แนวทางนี้หลีกเลี่ยง mutex แบบ manual และ double-checked locking ซึ่งมักเกิดข้อผิดพลาด sync.Once รับประกันว่าฟังก์ชันจะถูกเรียกใช้เพียงครั้งเดียวแม้จะมีหลาย goroutine ทำงานพร้อมกัน

3

หลักการ SOLID ใดที่สนับสนุนการใช้ interface ใน Go?

คำตอบ

หลักการ Dependency Inversion ระบุว่าโมดูลระดับสูงไม่ควรขึ้นกับโมดูลระดับต่ำ แต่ควรขึ้นกับสิ่งที่เป็นนามธรรม (interface) ใน Go สิ่งนี้แปลเป็นการรับ interface และคืนค่าเป็นชนิดที่เป็นรูปธรรม หลักการนี้ช่วยให้การทดสอบ (mocking) การลดการพึ่งพากัน และการบำรุงรักษาโค้ดทำได้ง่ายขึ้น

4

จะ implement pattern Factory ใน Go แบบ 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 คำถาม

รูปแบบ Concurrency

Mid-Level
24 คำถาม

ไพรมิทีฟการซิงโครไนซ์

Mid-Level
22 คำถาม

เฟรมเวิร์กเว็บ Go

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 คำถาม

เชี่ยวชาญ Go สำหรับการสัมภาษณ์ครั้งถัดไป

เข้าถึงคำถามทั้งหมด flashcards แบบทดสอบเทคนิค แบบฝึกหัด code review และตัวจำลองสัมภาษณ์

เริ่มใช้ฟรี