อ่านบทความนี้ใน Facebook“Complexity is anything related to the structure of a software system that makes it hard to understand and modify the system.” - A Philosophy of Software Design
“ถ้าการแก้โค้ดหรือทำความเข้าใจโค้ดเป็นเรื่องยาก แสดงว่า complexity ของโค้ดเราสูง”
และหน้าที่ของเราคือ minimize complexity โดยรวมให้ได้น้อยที่สุด
-
ถ้าเราแก้อะไรสักอย่างตรงนึง แต่ต้องไปไล่แก้อีก 5 ที่ แสดงว่า hard to modify ละ
-
ถ้าเราจะแก้บัค แต่ใช้เวลาเป็นชั่วโมงเพื่อแค่เข้าใจว่าโค้ดเดิมทำงานยังไงแสดงว่า hard to understand ละ (บางทีโค้ดสั้น ทำได้ไวแต่เข้าใจยาก ก็แย่กว่าโค้ดยาวแต่เข้าใจง่ายนะ)
-
หรือบางทีเรื่องเล็ก ๆ เช่นเรื่องตัวแปรเช่น “animationDuration” แล้วเราต้องมานั่งนึกว่าหน่วยเป็น second หรือ milli-second อันนี้ก็เรียกว่า hard to understand เหมือนกัน
“One of the most important goals of good design is for a system to be obvious.”
ส่วนตัวเราชอบนิยามนี้จากหนังสือ “A Philosophy of Software Design” มาก คือไม่ใช่แค่มันเรียบง่ายแล้วก็ตรงประเด็น แต่มันช่วยทำให้เรา sense กับ complexity ได้ง่ายขึ้นด้วยเวลาเราอ่านโค้ด
มาฝากไว้สั้น ๆ ไว้มีเวลาเดี๋ยวมารีวิวต่อ ไปทำโปรเจคต่อแปปปป~
