refactoring code คืออะไร

refactoring code คืออะไร

refactoring code คืออะไร

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

refactoring code มีเป้าหมายอะไร

definition ของ refactoring code เค้าบอกไว้ว่า คือการเปลี่ยนแปลง โครงสร้างในโค้ดของโปรแกรม เพื่อให้ทำความเข้าใจโค้ดได้ง่าย และแก้ไขโค้ดได้ง่าย โดยที่ผลลัพท์ของ โปรแกรม ยังคงเหมือนเดิม

ทั้งนี้ เราควรตั้งเป้าหมายเอาไว้ ในการทำ refactoring code ใน 3 หัวข้อ ดังนี้

  • ให้โค้ดอ่านได้ง่าย
  • แตกเป็นส่วนย่อยๆ (จะได้แก้ได้ง่าย)
  • มีประสิทธิภาพทำงาน ที่ดีขึ้น (ทำแล้วช้าลง อย่าทำ)

refactoring code แตกต่างจาก coding standard อย่างไร

ผมเคยเขียนโค้ดไฟล์เดียว ยาวหลายพันบรรทัด เพื่อทำงานเพียงอย่างเดียว ไฟล์นี้ต้องทำงานนานเป็นชั่วโมงๆ วันนึงหลายๆครั้ง ผมเขียนโค้ดตาม coding standard  (ใครยังงงเรื่อง coding standard ให้ย้อนไปอ่านด้วยนะครับ) เป๊ะๆทั้งหมด ตลอดทั้งไฟล์ แต่เมื่อเวลาผ่านไป และต้องกลับมาแก้ ผมกลับคิดว่า นี่เขียนอะไรไปบ้างเนี่ย ทำไมมันดูไม่ได้เรื่องเลย ทั้งๆที่เราก็เขียนตาม coding standard แล้วนะแต่มันยังอ่านไม่รู้เรื่องอีก นั่นเพราะว่า coding standard อย่างเดียว มันไม่พอ ผมไม่เคยทำ refactoring code ให้ตัวเองเลย ถึงมีบางครั้งที่ทำบ้าง แต่ก็ทำไม่สุด คือทำนิดๆหน่อยๆ ก็เลิก มันก็ไม่ได้ช่วยอะไรเลย แถมยังจะเพิ่มความ งง อีกต่างหาก

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

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

เอาเท่านี้ก่อน ก่อนที่จะมึนไปมากกว่านี้ เดี๋ยวบทความต่อไปจะมาเล่าต่อ ว่า ถ้าจะเริ่มทำ refactoring code มันเริ่มอย่างไรตรงไหน ต้องจับหลักอะไรอย่างไร

* เพิ่มบทความต่อไป refactoring code ทำอย่างไร

Create: Modify : 2013-06-13 23:23:41 Read : 7016 URL :