Skip to main content
0
Computer SystemProgramming Concept

มา Clean Code กันเถอะ !

หลายครั้งเวลาที่เราเขียนโค้ด เราอาจจะบอกว่าเรารู้การทำงานทั้งหมดดีอยู่แล้ว ไม่ว่าจะถามถึงบรรทัดไหนก็ตอบได้แน่นอน แต่ถ้าเราไม่ได้จับโค้ดมาเป็นระยะเวลานานจนลืมโค้ด แล้วต้องกลับมาแก้ไขโค้ดของเราล่ะจะสามารถอ่านโค้ดของเราแล้วแก้ไขได้เหมือนเดิมหรือเปล่า หรือถ้าทำงานร่วมกับคนอื่นแล้วคนอื่นบอกโค้ดของเราอ่านยาก หรือแก้ยากหรือเปล่า วันนี้เลยจะมาแนะนำตัวอย่างโค้ดที่จำเป็นต้องได้รับการทำความสะอาดเพื่อให้โค้ดอ่านและแก้ไขง่ายขึ้น

โค้ดซ้ำซ้อน

โค้ดประเภทนี้มักเกิดขึ้นบ่อยๆ ในกรณีที่มีการเขียนโปรแกรมเดียวกันหลายๆคน คนเขียนโค้ดก็จะเขียนโค้ดที่ตอบสนองต่อความต้องการของการทำงานในส่วนที่ตนเองเขียนอยู่ แต่บางครั้งเราก็จะเขียนโค้ดบังเอิญไปทำงานซ้ำกับโค้ดของเพื่อนเรา ถึงแม้หน้าตาจะต่างกันแต่การที่มีโค้ดที่ทำงานเหมือนกันนั้นเป็นเรื่องที่ไม่ดีนัก ทำให้เวลาอ่านโค้ดจะอ่านยากและทำให้มีโค้ดที่เกินจำเป็น

วิธีแก้ไข :

  • ให้สร้าง method แยกออกมาแล้วโยงการทำงานไปที่ method นั้นแทน
  • หรือถ้าโค้ดที่ซ้ำกันนั้นเป็น mthod อยู่แล้วให้เลือกอันที่ดีที่สุดแล้วโยงไปที่จุดน้น

คลาสใหญ่เกินไป

หลายครั้งที่เราเขียนโค้ดเพลินๆนึกอะไรได้ก็จับยัดใส่เข้าไปในโค้ดที่เราเขียนอยู่ อาจทำให้คลาสของเราบวมขึ้นมาโดยไม่รู้ตัว คลาสนั้นกลายเป็นว่าทำงานแทบจะทุกอย่างในโปรแกรมของเราไปแล้ว พอจะหาการทำงานส่วนนี้ก็ไม่รู้ว่าอยู่บรรทัดไหนกันแน่ ถ้าเราเจอปัญหาแบบนี้ก็แสดงว่าเราต้องจัดการกับมันแล้วล่ะ 

วิธีแก้ไข :

  • แตกคลาสออกมาเป็นคลาสย่อยๆ ให้การทำงานเหลือเพียงอย่างเดียวในแต่ละคลาส

เปลี่ยนทีนึงต้องไปแก้หลายจุด

อันนี้จะเป็นปัญหาที่ตรงข้ามกับก่อนหน้าคือเวลาที่เราจะแก้การทำงานส่วนนึงเราต้องไปเปลี่ยนโค้ดหลายจุดมากถึงจะสามารถทำงานได้ ปัญหานี้อาจเกิดจากที่เราแบ่งการทำงานออกมามากเกินไป เมื่อต้องการแก้อะไรนิดหน่อยทำให้มันไปกระทบกับฟังก์ชันการทำงานอื่นๆ 

วิธีแก้ไข :

  • รวมการทำงานที่แยกย่อยเกินไปเข้าด้วยกันให้เป็นการทำงานหลักเพียงคลาสเดียว
  • ตอนที่ออกแบบควรมองภาพรวมว่าควรแตกคลาสถึงระดับไหนไม่ให้แยกเกินไป

โค้ดเผื่ออนาคต

บางครั้งที่เราเขียนโค้ด เราก็มักจะคิดไว้ก่อนว่าการทำงานของมันมีอะไรบ้าง รับพารามิเตอร์อะไรบ้าง แล้วก็จะประกาศคลาสขึ้นมาโดยใส่พารามิเตอร์ที่คิดเอาไว้แล้ว แต่พอใช้งานจริง พารามิเตอร์บางตัวกลับไม่ได้ใช้หรือเราลืมไปว่าพารามิเตอร์ประกาศไว้ใช้ทำอะไร หรือเราสร้างคลาสที่มีชื่อเตรียมเอาไว้แต่พอกลับมาอ่านก็งงว่าคลาสนี้ใช้ทำอะไร

วิธีแก้ไข :

  • ให้ประกาศเท่าที่จำเป็นจะใช้ในตอนนั้นๆก็พอ 

อ่านจนถึงตอนนี้แล้วก็อย่าลืมกลับไปดูโค้ดของตัวเองว่ามีอะไรแบบนี้อยู่รึเปล่า ถ้ามีแล้วล่ะก็อย่าลืมไปจัดการแก้ไขด้วยนะ ถ้าใครอยากรู้เพิ่มเติมเกี่ยวกับโค้ดที่ต้องการคลีน ก็สามารถดูเพิ่มเติมได้ที่ https://refactoring.guru/refactoring/smells

Develeper

Author Develeper

More posts by Develeper

เราใช้คุกกี้เพื่อพัฒนาประสิทธิภาพ และประสบการณ์ที่ดีในการใช้เว็บไซต์ของคุณ คุณสามารถศึกษารายละเอียดได้ที่ นโยบายความเป็นส่วนตัว และสามารถจัดการความเป็นส่วนตัวเองได้ของคุณได้เองโดยคลิกที่ ตั้งค่า

ตั้งค่าความเป็นส่วนตัว

คุณสามารถเลือกการตั้งค่าคุกกี้โดยเปิด/ปิด คุกกี้ในแต่ละประเภทได้ตามความต้องการ ยกเว้น คุกกี้ที่จำเป็น

ยอมรับทั้งหมด
จัดการความเป็นส่วนตัว
  • คุกกี้ที่จำเป็น
    เปิดใช้งานตลอด

    ประเภทของคุกกี้มีความจำเป็นสำหรับการทำงานของเว็บไซต์ เพื่อให้คุณสามารถใช้ได้อย่างเป็นปกติ และเข้าชมเว็บไซต์ คุณไม่สามารถปิดการทำงานของคุกกี้นี้ในระบบเว็บไซต์ของเราได้
    รายละเอียดคุกกี้

  • คุกกี้สำหรับการติดตามทางการตลาด

    ประเภทของคุกกี้ที่มีความจำเป็นในการใช้งานเพื่อการวิเคราะห์ และ นำเสนอโปรโมชัน สินค้า รวมถึงหลักสูตรฟรี และ สิทธิพิเศษต่าง ๆ คุณสามารถเลือกปิดคุกกี้ประเภทนี้ได้โดยไม่ส่งผลต่อการทำงานหลัก เว้นแต่การนำเสนอโปรโมชันที่อาจไม่ตรงกับความต้องการ
    รายละเอียดคุกกี้

บันทึกการตั้งค่า