บ่าย ๆ เห็นหนังสือน่าสนใจแจ้งมาทาง email
คือ Head First Software Architecture: A Learner’s Guide to Architectural Thinking
เป็นหนังสือเกี่ยวกับพื้นฐานของ Software Architecture นั่นเอง
เขียนมาสำหรับนักพัฒนา software
ที่ต้องการเพิ่มความรู้ด้านการออกแบบและว่าง architecture ที่ดีของระบบ

Software architecture is fundamental to the success of your system

จากการ scan แบบเร็ว ๆ ของหนังสือเล่มนี้ ประกอบไปด้วย

  • ความรู้พื้นฐานของ Software Architecture ว่ามีความสำคัญอย่างไร
  • มุมมองต่าง ๆ ของ Software Architecture เช่น คุณสมบัติต่าง ๆ ที่จำเป็น เช่น performance, scalability, testability และ availability เป็นต้น
  • การตัดสินใจต่าง ๆ เพราะว่ามันมีทั้งข้อดีและข้อเสีย การแยกส่วนการทำงานต่าง ๆ รวมถึงการกำหนดรูปแบบของระบบงาน
  • ควรมองถึงการแก้ไขปัญหาและการจัดการด้วยเสมอ เช่น business value, technical และ cost of operation
  • แยกอธิบายชัดเจนเกี่ยวกับ architecture, design, relationship และ code รวมทั้งรูปแบบต่าง ๆ ของ architecture
  • ใน architecture รูปแบบต่าง ๆ มีการยกตัวอย่าง อธิบายตามรูปแบบของ Head First series
  • มีการพูดถึง Strategic design vs Tactical design ที่อยู่ใน Domain-Driven Design
  • บ่อยครั้งที่มักจะเหิด over-engineering ซึ่งต้องระวังอย่างมาก
  • อธิบายเรื่องของ Architectural Decision Record (ADR) สำหรับการบันทึกทุก ๆ การตัดสินใจ ว่ามีเหตุผลอะไรบ้าง มีข้อจำกัดอะไรบ้าง เพื่อให้มีความเข้าใจมากยิ่งขึ้น

ตัวอย่างของการออกแบบส่วนต่าง ๆ ของระบบ

ลงไปจนถึงโครงสร้างของ code

แล้วก็ลงไปจนถึงความสัมพันธ์ต่าง ๆ ในเชิง code

เป็นการอธิบายจากภาพใหญ่ลงมาถึงรายละเอียดกันเลย
ช่วยทำให้เข้าใจได้ง่ายขึ้น
เหมาะมาก ๆ สำหรับผู้เริ่มต้น
ส่วนคนมีประสบการณ์มาก ๆ แล้ว อาจจะไม่เหมาะเท่าไร

ยังมีหัวข้ออื่น ๆ ที่น่าสนใจ เช่น

  • Microservices
  • Event-Driven Architecture (EDA)

ลองหามาอ่านกันดูครับ อ่านสนุกเพลินมาก ๆ ครับ
เป็นอีกหนึ่งความรู้ที่น่าสนใจมาก ๆ