วิทยาการคอมพิวเตอร์และวิศวกรรมซอฟต์แวร์

การเขียนโปรแกรมเชิงวัตถุ (OOP)

ทำความเข้าใจกลไกภายในของ OOP (Memory Model, VTable, Invariant Enforcement) และวิธีที่ระบบซอฟต์แวร์ระดับโลกใช้ OOP ร่วมกับ Pattern อื่นๆ

ขั้นสูง (Advanced)⏱ 8–10 ชั่วโมง📖 2 บทเรียน
🧭 เริ่มเรียนแบบนำทาง (สอบก่อน → เรียน → สอบหลัง → จบบท)

📖 บทเรียน (อ่านให้เข้าใจก่อนทำข้อสอบ)

1. บอกบท & แก่นแท้: ทำไมโลกวิศวกรรมจึงคิดค้น OOP?

🎯 ข้อสอบย่อยบทนี้ (เลือก/ตั้งค่าเองได้)

ก่อนหน้า OOP โค้ดถูกเขียนแบบ Procedural ข้อมูลแยกขาดจากฟังก์ชัน เมื่อระบบใหญ่ขึ้นใครก็แก้ตัวแปรได้จากทุกที่ OOP ไม่ใช่แค่เอาฟังก์ชันใส่คลาส แต่คือการสร้างขอบเขตปกป้อง Invariant โดยมี Encapsulation เป็นเกราะคุ้มกัน ตัวอย่างจริง: หน้าต่าง-ปุ่มใน GUI, ORM แปลงตาราง DB เป็น Object, class BankAccount ป้องกัน balance = -9999

2. กลไกเชิงลึก: VTable และการประยุกต์ร่วมกับ ECS

🎯 ข้อสอบย่อยบทนี้ (เลือก/ตั้งค่าเองได้)

เข้าใจข้อจำกัดของ Deep Inheritance (Fragile Base Class, Class Explosion) กลไก VTable/vptr ของ Polymorphism และแนวคิด Composition Over Inheritance แบบ Entity-Component-System สำหรับงาน High-Performance

🧱 พื้นฐานที่ต้องรู้ก่อน

  • พื้นฐานการเขียนโปรแกรม (Variables, Control Flow & Functions)จำเป็นมาก (Must-have)

    ต้องเข้าใจตัวแปร, การวนลูป if/else และขอบเขตฟังก์ชัน (Scope) ก่อนจึงจะสร้าง Class ได้

  • โครงสร้างข้อมูลและหน่วยความจำ (Stack vs Heap & Pointer)

    เพื่อให้เข้าใจกลไกการอ้างอิงตำแหน่งหน่วยความจำของ Object และการเกิด Shallow vs Deep Copy

  • การแบ่งโมดูลและแยกไฟล์โค้ด (Code Modularization)แนะนำ (Recommended)

    สำคัญในการจัดระเบียบ Class หลายไฟล์และการ import/export เพื่อเลี่ยง Circular Dependency

🚀 บทเรียนต่อยอด

  • การเขียนโปรแกรมเชิงฟังก์ชัน (Functional Paradigm)

    เปรียบเทียบแนวคิด Pure Functions และ Immutability กับ OOP State Mutation

  • รูปแบบการออกแบบซอฟต์แวร์ (GoF Design Patterns)

    การประยุกต์ใช้คลาสและอินเทอร์เฟซเพื่อแก้ปัญหาเชิงสถาปัตยกรรมระดับองค์กร

  • Microservices, Clean Architecture & MVC/Hexagonal

    ยกระดับ OOP สู่สถาปัตยกรรมระดับองค์กร แยก Model-View-Controller อย่างเป็นระบบ

📦 แหล่งข้อมูลเพิ่มเติม

หนังสือ • 416 หน้า

คัมภีร์ Design Patterns 23 แบบของ Gang of Four

หนังสือที่วิศวกรซอฟต์แวร์ทุกคนต้องศึกษา

บทความ • การันตีคุณภาพระดับ Mission-Critical

Unit Testing & TDD สำหรับ OOP

การเขียน Mock/Stub ทดสอบ Class และ Interface โดยไม่ผูกติดกับ Database จริง

บทความ • Robert C. Martin / 350 หน้า

SOLID Principles & Enterprise Architecture

ยกระดับการเขียน OOP สู่สถาปัตยกรรมที่ยืดหยุ่น ขยายได้โดยไม่ทำลายโค้ดเดิม

📝 ทำแบบทดสอบ การเขียนโปรแกรมเชิงวัตถุ (OOP) →

Before 3 ข้อ • After 3 ข้อ พร้อมเฉลยละเอียด