โหมดมืด
Programming Concepts — Software Design & Architecture
ส่วนหนึ่งของ Beginner Book
📌 ขอบเขตของหมวดนี้ — เน้น design principles + architecture patterns (OOP, SOLID, Design Patterns, Clean Code, FP, Architecture)
ไม่ครอบ: หัวข้อเหล่านี้อยู่หมวดอื่น (ดูสารบัญหลัก) —
- Data Structures & Algorithms (ดา-ต้า สตรัก-เจอร์ส แอนด์ อัล-กอ-ริ-ทึมส์) = โครงสร้างข้อมูล (array, list, tree, hash) และอัลกอริทึม (sort, search)
- Complexity Analysis (คอม-เพล็ก-ซิ-ตี้ อะ-แน-ลิ-ซิส) = การวิเคราะห์ความซับซ้อนของอัลกอริทึม (Big-O notation)
- Concurrency Primitives (คอน-เคอ-เร็น-ซี พริ-มิ-ทีฟส์) = เครื่องมือพื้นฐานสำหรับการทำงานพร้อมกัน (thread, lock, mutex)
- Networking (เน็ต-เวิร์ก-คิง) = การสื่อสารระหว่างเครื่องผ่านเครือข่าย (TCP/IP, HTTP)
หนังสือเล่มนี้พาคุณไปถึงไหน
อ่านจบ + ทำ checkpoint หมด คุณจะ:
- เข้าใจ OOP ลึก — ไม่ใช่แค่ "class กับ object"
- ใช้หลัก SOLID ในการตัดสินใจออกแบบ
- รู้จัก Design Patterns ที่ใช้บ่อยจริง (Strategy, Factory, Observer, Adapter, ...)
- เขียน Clean Code ที่อ่านง่าย + maintain ง่าย
- เข้าใจ Functional Programming — pure, immutable, higher-order
- ตัดสินใจ Architecture (Layered, Hexagonal, Clean Architecture) ได้
หนังสือนี้ออกแบบมาให้ใคร
✅ คนที่เขียน code ได้แล้ว — อยากเขียนให้ดีขึ้น
✅ Developer ที่ลำบาก refactor / maintain code เก่า
✅ คนที่อยากเข้าใจ design patterns โดยไม่ท่อง
❌ คนที่ยังเริ่มเขียนภาษาแรก — ไปอ่าน Java/React Book ก่อน
บทเรียน
| # | บท | สอนอะไร |
|---|---|---|
| 0 | Mindset ก่อนเขียน | ทำไม design สำคัญ, ความคิดของ engineer ที่ดี |
| 1 | OOP ลึก | encapsulation (เอน-แค็พ-ซู-เล-ชั่น), inheritance (อิน-เฮอ-ริ-แทนซ์), polymorphism (พอ-ลี-มอร์-ฟิ-ซึม), composition over inheritance |
| 2 | SOLID Principles | SRP, OCP, LSP, ISP, DIP — เห็นภาพ |
| 3 | Design Patterns | Strategy, Factory, Observer, Adapter, Decorator, Singleton |
| 4 | Clean Code | naming, function, comment, error handling, test |
| 5 | Functional Programming | pure, immutable, higher-order, composition, monad (โม-แนด = กล่องห่อค่าที่ต่อกันได้) (light) |
| 6 | Architecture Patterns | Layered, Hexagonal (เฮ็ก-ซา-โก-นัล = หกเหลี่ยม), Clean Arch, DDD (ดี-ดี-ดี = Domain-Driven Design) intro |
🔮 Further reading (2026) — สำหรับคนที่อ่านจบแล้วอยากต่อยอด: Algebraic Effects / Effect Systems (เช่น Effect TS, Koka language) เป็นเรื่อง FP frontier ที่กำลังมาแรงปี 2025-2026 — มอง side effect เป็น "type" ที่ track ได้
ภาษาที่ใช้ในตัวอย่าง
แนวคิดในเล่มนี้ (OOP, SOLID, Patterns, FP) เป็น หลักการข้ามภาษา — ใช้ได้กับทุกภาษา
ตัวอย่างหลักเขียนด้วย Java (ภาษาแกนของคลังนี้) แต่ที่ concept สำคัญ ๆ จะมีกล่อง "เทียบ 3 ภาษา (Java / TypeScript / Python)" ให้เห็นว่าสิ่งเดียวกันหน้าตาต่างกันแค่ syntax เช่น:
- 05 — Functional: pure function, immutability, map/filter/reduce
- 03 — Design Patterns: Strategy (ในภาษา FP กลายเป็นแค่ฟังก์ชัน)
- 02 — SOLID: Dependency Inversion (interface / Protocol / duck typing)
👉 ถ้าคุณมาจากสาย JS/TS/Python — อ่านโค้ด Java เป็นหลักได้ แล้วดูกล่องเทียบเพื่อเชื่อมกับภาษาที่คุณถนัด หลักการเหมือนกันหมด
Glossary: ../glossary.md · Style guide: ../CONTRIBUTING.md last_verified: 2026-06-03 · review report: ../REVIEW-2026-06-03.md