บ่าย ๆ เห็นหนังสือน่าสนใจแจ้งมาทาง 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)
ลองหามาอ่านกันดูครับ อ่านสนุกเพลินมาก ๆ ครับ
เป็นอีกหนึ่งความรู้ที่น่าสนใจมาก ๆ