complexity Archive

ว่าด้วยเรื่องของ Complexity ของ software

วันนี้อ่านเจอเรื่อง complexity ของ softwareจะประกอบไปด้วย 2 ชนิดหลัก ๆ คือ Essential complexity Accidental complexity เป็นเรื่องที่น่าสนใจ จึงทำการสรุปไว้นิดหน่อย

Read More…

เมื่อนักพัฒนาไม่สามารถควบคุมความซับซ้อนของ code ได้ !!

จากบทความเรื่อง Why it happens to your code again and again? อธิบายการพัฒนาระบบ web application ด้วย RoR (Ruby on Rails) ซึ่งเป็น framework หลักของการพัฒนาระบบด้วยภาษา Ruby โดยในช่วงแรกของการพัฒนาระบบนั้นจะราบรื่นและรวดเร็ว ไม่ว่าจะเป็นการเพิ่ม gem หรือ library ต่าง ๆ เข้าไป ทุกอย่างมันแจ่มมาก ๆ แต่เมื่อเวลาผ่านไปเรากลับพบว่า

Read More…

Developer ที่ดีต้องควบคุม complexity ให้เป็น

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

Read More…

วัดค่าความซับซ้อนในการเปลี่ยนแปลง Code ?

เมื่อมีการพูดถึงความซับซ้อนของ sourcecode ที่เหล่า developer พัฒนาขึ้นมา มักจะสนในไปที่ Cyclomatic complexity นั่นคือสนใจไปที่ ความซับซ้อนในระดับของ class และ method แต่ในความเป็นจริงมันยังมีความซับซ้อนในรูปแบบอื่นๆ อีกนะ เช่น ความซับซ้อนในการ refactor code Big-O notation มันทำให้เรามีมุมมองอื่นๆ ที่กว้างขึ้น

Read More…

ปรับปรุงคุณภาพของ Software ด้วยการลดความซับซ้อน

การวัดระดับความซับซ้อนของ software นั้น ใช้สำหรับการวางแผนในการพัฒนา และ ทดสอบระบบงาน รวมทั้ง ใช้สำหรับการตัดสินใจทำการ refactoring code เพื่อปรับปรุงเรื่องคุณภาพ และ ป้องกันปัญหาต่างๆ ที่จะเกิดขึ้น แต่เรามักจะพบว่า ระบบส่วนใหญ่ไม่สนใจเรื่องความซับซ้อนสักเท่าไร ส่งผลให้การพัฒนาและดูแลระบบเกิดปัญหาต่างๆ ตามมา สุดท้าย สิ่งที่เราเลือกทำก็คืออะไร ระหว่าง เขียนมันขึ้นมาใหม่ (Rewrite) หรือ ปรับปรุงให้ดีขึ้น (Refactoring)

Read More…