จากหนังสือ Clean Architecture ในบทที่ 1
ว่าด้วยเรื่องของการออกแบบและ architecture
มีหลายเรื่องที่สะกิดใจและน่าสนใจ
จึงทำการสรุปไว้นิดหน่อย
โดยเป้าหมายหลักของหนังสือเล่มนี้คือ
ลดความสับสนหรือเข้าใจผิดเกี่ยวกับคำว่า design vs architecture
ถ้าอธิบายง่าย ๆ
- Design คือ low-level สำหรับการตัดสินใจต่าง ๆ เช่นโครงสร้างของระบบงานนั้น ๆ
- Architecture คือ high-level
อยากอ่านโดยละเอียดก็ไปดูในหนังสือเพิ่มเติมนะครับ
สิ่งที่น่าสนใจคือ
The goal of software architecture is to minimize the human resources required to build and maintain the required system.
Architecture ของ software นั้นจะเป็นอย่างไรไม่รู้
แต่มีอย่างหนึ่งคือ มันต้องช่วยลดจำนวนคนที่สร้างและดูแล
ถ้ายิ่งทำยิ่งเพิ่มคน เพิ่มเวลา ยิ่งช้า ยิ่งเพิ่มปัญหา
แสดงว่ามีปัญหาแล้ว ต้องแก้โดยด่วน
แสดงดังรูป ยิ่ง release ยิ่งทำให้ productivity ลดลง
แบบนี้ดีไหมนะ ?
ทีมพัฒนาทำงานกันหามรุ่งหามค่ำ แต่ผลที่ออกมากลับตรงกันข้าม
ส่งงานก็ไม่ทัน
ถึงทันก็ bug เยอะ
ส่วนในแง่ของการบริหาร ทำไมค่ามช้จ่ายสูงขึ้นเรื่อย ๆ นะ
ดังนั้นกลับมาดู architecture ของระบบเราหน่อยสิ ว่าเป็นอย่างไร ?
Good architecture makes the system easy to understand, easy to develop, easy to maintain, and easy to deploy.
The ultimate goal is to minimize the lifetime cost of the system and to maximize programmer productivity.