Quantcast
Viewing all articles
Browse latest Browse all 2063

ทำความรู้จักกับ 3R principle

Image may be NSFW.
Clik here to view.
3r-00

Image may be NSFW.
Clik here to view.
3r-00
อ่านเจอบทความเรื่อง 3R principles of programming เป็นแนวปฏิบัติ 3 อย่างเพื่อช่วยทำให้ code ที่เหล่านักพัฒนา software สร้างขึ้นมา มีความ clean มีความง่ายต่อการอ่าน มีความง่ายตอการทำความเข้าใจ มีความง่ายต่อการดูแลรักษา ไม่ซับซ้อนมากนัก จึงทำการแปลและสรุปส่วนที่น่าสนใจมานิดหน่อย

3R principle ประกอบไปด้วย

  • Responsibility
  • Reusability
  • Readability

เริ่มด้วย Responsibility หรือหน้าที่ความรับผิดชอบนั่นเอง

ว่าในแต่ละ class ว่าในแต่ละ method/function นั้นควรมีหน้าที่การทำงานอะไรบ้าง ลองคิดดูสิว่า ถ้าในแต่ละ class/method/function มีหน้าที่การทำงานที่เยอะมากมาย มีหน้าที่การทำงานที่ซับซ้อน จะส่งผลให้ code โดยรวมออกมาซับซ้อนและยุ่งเหยิงกันมากเพียงใด ตัวอย่างเช่น ในแต่ละclass มี 5-20 method ในแต่ละ method/function มี code มากกว่า 100 บรรทัด ส่งผลให้ใน class หนึ่งมี code มากกว่า 500-2,000 บรรทัด !! เชื่อเถอะว่า มันไม่สนุกอย่างแน่นอน โดยเรื่องของ Responsibility นั้นมาจาก S ใน SOLID principle นั่นก็คือ Single Responsibility Principle (SRP)

ต่อมาคือผลที่ตามมาจากข้อแรกคือ Reusability

เมื่อเราทำการแยกส่วนการทำงานต่าง ๆ ออกจากกัน ด้วยหน้าที่การทำงานเฉพาะของ component/class/method/function นั้น ๆ แล้ว มันก็จะง่ายต่อการ reuse แล้ว ไม่พอนะ ยังง่ายต่อการทดสอบอีกด้วย
มีคำถามที่น่าสนใจว่าเราจะ Reuse กันเมื่อไร ? ตอบง่าย ๆ คือ เมื่อมันถูกใช้ซ้ำ ๆ ไงล่ะ ดังนั้นจงทำให้เกิดการใช้ซ้ำ ๆ ก่อน แล้วจึงคิดถึงการ reuse อย่าไปเสียเวลาเพื่อคิดว่า เราจะออกแบบอย่างไรเพื่อให้ reuse กันได้นะ

ส่วนการ reuse ได้ดีนั้น ในแต่ละ component/class/method/function ควรที่จะ Readability ด้วยเสมอ

ทั้งการตั้งชื่อที่สื่อถึงการทำงานจริง ๆ รวมไปถึงโครงสร้างการทำงานด้วยเช่นกัน มิฉะนั้น code เหล่านั้นจะ reuse ยากมาก ๆ
บ่อยครั้งมักพบว่า code ของระบบงานต่าง ๆ ต้องใช้เวลาในการเพิ่มและแก้ไขมากขึ้นเรื่อย ๆ ตามจำนวน feature และอายุของระบบ สาเหตุหลัก ๆ ก็คือ เรื่องการอ่าน code ไม่รู้เรื่องและ ไม่เข้าใจ นั่นคือปัญหาเรื่อง Readability
ดังนั้นลองถามตัวเราเองสิว่า code ที่เราเขียนในปัจจุบันมันอ่านและเข้าใจง่ายหรือไม่ ? และอย่าลืมว่า code ที่เราเขียนขึ้นมานั้น เขียนเพื่อให้คนอื่นเข้าใจนะ เนื่องจาก code เหล่านี้ยังต้องถูก maintain ต่อไป แนะนำให้ทำการเรียนรู้ และ ฝึกฝน จากนั้นลองนำแนวปฏิบัติ 3R ไปประยุกต์ใช้งานดูครับ การเขียน code มันสนุกนะ
วันนี้คุณ 3R แล้วหรือยัง ?

Viewing all articles
Browse latest Browse all 2063

Trending Articles