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

โค้ดซ้ำซ้อน

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

วิธีแก้ไข :

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

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

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

วิธีแก้ไข :

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

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

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

วิธีแก้ไข :

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

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

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

วิธีแก้ไข :

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

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

หากคุณสนใจพัฒนา สตาร์ทอัพ แอปพลิเคชัน และ เทคโนโลยีของตัวเอง ?

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