10 เหตุผลที่ต้อง Optimize Code

19-ต.ค.-17

คัมภีร์เทพ IT

        เชื่อว่า Programmer/Developer ทุกคนน่าจะได้ยินคำว่า “Code Optimization” หรือที่มักจะเรียกกันสั้นๆ ว่า การ Optimize Code กันมาบ้าง จะว่าไปแล้วการ Optimize Code ถือเป็นขั้นตอนที่ต้องกลับมาตรวจทาน Code กันอีกรอบ ทำให้ Programmer/Developer หลายคนมักจะละเลยสิ่งเหล่านี้ไปบ้าง ทีมงาน TechStar จึงขอเสนอ 10  เหตุผลที่คุณควร Optimize Code อยู่เสมอ

 

  1. ทำให้ Code base ของคุณ Clean อยู่เสมอ
    เมื่อพัฒนาโปรเจคไปมากแล้ว สิ่งที่ Developer มักเจอคือ ปัญหาการทำงาน “ซ้ำซ้อน” และ “ทับซ้อน” กันบ้าง ซึ่งมันดูจะไม่ค่อยสอดคล้องกันสักเท่าไหร่ ในเรื่องที่คุณจะใช้หลักการ DRY (Don’t Repeat Yourself)  ซึ่งถือเป็นพื้นฐานของการพัฒนา Software ให้ได้ผลดี กับเรื่องการมี Code base ที่ Optimize แล้วเป็นอย่างดี โดยจะช่วยให้เราสามารถนำ Code มา Reuse ใน Element ที่เหมือนๆ กันได้หลายครั้ง ซึ่งมันจะช่วยทำให้การ Coding ของคุณไม่ยุ่งยากและดูเข้าใจง่ายขึ้น 

     
  2. มีความสอดคล้องกันมากขึ้น
    ความสอดคล้อง (Consistency) ก็เหมือนกับงานบ้าน คือหากมันได้รับการดูแลอย่างดี ก็ไม่ค่อยมีใครสังเกตเห็น แต่เมื่อใดที่ถูกละเลย สถานที่ดูรกรุงรัง เมื่อนั้นมันก็ทำให้เรารู้สึกยุ่งเหยิงตามไปด้วย การทำให้ทุกอย่างสอดคล้องกันหมดมันดูเหมือนจะยาก แต่การตั้งใจทำให้ Code guideline ที่สอดคล้องกัน, APIs ที่ Compatible กัน และมาตรฐานที่สอดคล้องกันจะลดปัญหาได้แน่นอน และการทำให้ Code มีความสอดคล้องกัน ถือเป็นสิ่งที่สำคัญมาก เมื่อคุณต้องพัฒนางานจาก Code เดิมที่มีอยู่หรือต้องทำงานร่วมกับ Developer คนอื่นๆ

     
  3. ทำให้เว็บไซต์เร็วขึ้น
    การ Optimize Code จะทำให้การทำงานเร็วขึ้น และใช้หน่วยความจำที่น้อยลงด้วย แม้ว่าขั้นตอนการ Optimize เหมือนจะต้องใช้เวลาหรือมีค่าใช้จ่ายมากขึ้น แต่ผลที่ได้มันดีต่อทั้ง Developer และ User ด้วย การมี Code ที่เร็วขึ้นจะช่วยให้โหลดหน้า Page สั้นลง ซึ่งมันสำคัญต่อ SEO และ Conversion ในมุมของการตลาดเป็นอย่างมาก จากการวิจัยพบว่า "เกือบครึ่งหนึ่งของผู้ใช้เว็บไซต์ คาดหวังว่า เว็บไซต์จะโหลดได้ภายใน 2 วินาทีหรือน้อยกว่า และพวกเขามักจะออกจากเว็บไซต์ที่โหลดเกิน 3 วินาที" ดังนั้น ความเร็วจึงไม่ใช่สิ่งที่ควรละเลย

     
  4. อ่าน Code ได้ง่ายขึ้น
    การที่ Code อ่านได้ง่ายถือเป็นส่วนที่สำคัญในเรื่องการ Maintain Code ด้วย Code ที่ไม่เป็นระบบระเบียบเพราะไม่มีการจัดวางรูปแบบที่เหมาะสมจะทำให้ยากต่อการอ่านและทำความเข้าใจ โดยเฉพาะต่อ Developer คนใหม่ที่เพิ่งเข้ามาในโปรเจค สำหรับตัวอย่างเทคนิคการ Optimize Code ให้อ่านง่ายขึ้น ดังเช่น
    • ตั้งชื่อที่สื่อความหมาย เข้าใจได้
    • การจัดรูปแบบที่สอดคล้องกับหลักการใช้งาน เช่น การเว้นวรรค และ ช่องว่างระหว่างบรรทัด
    • หลีกเลี่ยงสิ่งที่ไม่จำเป็น เช่น การเขียนอธิบายของตนเองและความคิดเห็นต่างๆ
    นี่เป็นเหตุผลว่าทำไมโปรเจคขนาดใหญ่ เช่น WordPress, jQuery และ Mootools มีคำแนะนำในการเขียน Code ที่ชัดเจนสำหรับ Developer ทุกคนที่เกี่ยวข้องต้องปฏิบัติตาม
     
  5. ทำให้การ Refactoring มีประสิทธิภาพมากขึ้น
    สิ่งที่มักเกิดในการพัฒนาเว็บไซต์คือ การที่เรา Inherite Code ของคนอื่นมาใช้ และเราก็เข้าใจได้อย่างรวดเร็วว่ามันห่างไกลจากความเหมาะสมทั้งโครงสร้าง ประสิทธิภาพ และการ Maintain หรือในอีกกรณีคือ เป้าหมายของโปรเจคเปลี่ยนไปอย่างมาก และเราจำเป็นต้องจัดลำดับความสำคัญของสิ่งอื่นๆ ใน Application ด้วย เราพูดถึง Refactoring เมื่อจะเปลี่ยน (clean up) Code ที่มีอยู่ เพื่อเพิ่มประสิทธิภาพโดยไม่เปลี่ยนเปลงฟังก์ชัน การทำ Refactoring จะต้องดำเนินการด้วยความระมัดระวังเป็นอย่างยิ่ง หากทำไม่ถูกต้อง เราอาจได้ Code ที่มีประสิทธิภาพด้อยกว่าเดิมก็เป็นได้

     
  6. ทำให้การ Debug ทำได้ง่ายขึ้น
    การ Debug ถือวาเป็นขั้นที่มีความสำคัญในการพัฒนาเว็บไซต์ และมันถูกมองว่าเป็นงานที่น่าเบื่อและทำให้หลายๆ คนกลัว การ Debug code ของตัวเองว่ายากแล้ว การ Debug code ของคนอื่นนั้นยากกว่าโดยเฉพาะถ้าเป็น Spaghetti code ด้วยแล้วยิ่งยากเข้าไปใหญ่ การมี Design และรูปแบบ Architecture ที่ดี เช่นการใช้ object และ module ต่างๆ รวมทั้ง guideline การ Coding ที่ดี จะช่วยให้การ Debug ทำได้สะดวกยิ่งขึ้น(แม้จะเป็นงานที่เราไม่ชอบก็ตาม)

     
  7. มี Workflow ที่ดีกว่าเดิม
    โปรเจคพัฒนาเว็บไซต์หลายๆ โปรเจค ดำเนินการโดยทีมที่หลากหลาย เช่น Open source community หรือทีมงานที่อยู่คนละที่กันก็ตาม สิ่งที่ยากที่สุดในการจัดการ Workflow คือการสื่อสารระหว่างทีมงานให้เข้าใจซึ่งกันและกันอย่างมีประสิทธิภาพ การตั้งข้อตกลงที่เป็น Best Practice รวมทั้งคำแนะนำ ร่วมกัน สามารถช่วยลดช่องว่างระหว่างทีมงานที่มี background ต่างกันได้ จะว่าไปแล้วการ Optimize Code ก็คือการ Optimize Workflow ด้วย ถ้าสมาชิกนทีมพูดภาษาเดียวกันและแชร์เป้าหมายให้กันได้แล้ว พวกเขาก็จะสามารถทำงานด้วยกันได้โดยปราศจากปัญหา

     
  8. Maintain Code ได้ง่ายขึ้น
    การที่เราเขียน Code ใหม่เองมันง่ายกว่าการ Maintain Code เดิมที่มีอยู่ แต่ในความจริง Maintain Code ก็เป็นสิ่งที่เลี่ยงได้ยาก แต่มันก็ยังให้มุมมองใหม่เกี่ยวกับการ Optimize Code เนื่องจากเป็นประสบการณ์ที่แตกต่างจากการ Optimize Code ที่เป็นโปรเจคใหม่ๆ ในการ Maintain Software นั้นถือว่าอยู่ในขั้นที่เจอกับปัญหาและ User ของจริง ไม่เหมือนกับการตั้งสมมติฐานขึ้นมา การ Maintain Code ดูเหมือนจะสำคัญกว่าลักษณะงานอื่น แต่มันก็อาจเป็นงานที่คุ้มค่าถ้าได้ปฏิบัติตาม Best Practice เช่น Version control ที่เชื่อถือได้, Dependency management, Staging และ testing platform รวมทั้งการดูแลด้าน Documentation ที่เหมาะสม

     
  9. พัฒนา Feature ได้รวดเร็วขึ้น
    การสร้างนวัติกรรมใหม่อย่างต่อเนื่องถือเป็นหัวใจหลักของสายงานนี้ ถ้าเราไม่แสดงให้ User เห็นว่าเรามีอะไรแปลกใหม่ User ก็จะทิ้งเราไปทันที การขยายโปรเจคและ Feature ใหม่ๆ โดยทั่วไปจะสามารถทำได้รวดเร็วหากเรามีการ Optimize Code base ไว้ดีและเหมาะสมแล้ว นอกเหนือจากการ Optimize Code แล้วการพัฒนา Feature ก็ช่วยส่งผลดีเช่นกันหากใช้วิธีการจัดการโปรเจคที่ทันสมัย เช่น ใช้ Iterative lifecycle model แทน Waterfall model ซึ่งเป็นแบบเก่าอยู่

     
  10. ลดการเกิด Technical Debt
    คำว่า Technical Debt ถูกบัญญัติขึ้นโดย Ward Cunningham (โปรแกรมเมอร์ที่พัฒนาวิกิพีเดียเป็นครั้งแรก) ซึ่งพูดง่ายๆ ก็คือ สิ่งต่างๆ ไม่ว่าจะเป็น Code หรือสภาพแวดล้อมใดๆ ก็ตาม ที่เป็นตัวถ่วง ซึ่งส่งผลให้การทำงานของคุณมันช้าลงไปอีก การตัดสินใจ Coding แบบที่แย่กว่าที่ควรจะเป็น เช่น การใช้ Quick Fixed, Copy & paste โปรแกรม, Hard coding(เขียน Code ไปตรงๆ แบบไร้ตัวแปร หรือ Coding โดยใช้รูปแบบที่ไม่เหมาะสมใดๆ ก็ตาม รวมทั้งพฤติกรรมการทำงานแบบที่ไม่เหมาะสม อันที่จริงมันก็เป็นไปไม่ได้ที่จะไม่เจอปัญหา Technical Debt หรือแม้เรามีการตัดสินใจที่เหมาะสมแล้วแต่ผลที่ได้อาจจะไม่เป็นไปตามที่คิด แต่ถ้าหากเราพยายาม Optimize Code เชื่อว่ามันจะช่วยลดการเปิด Technical Debt ได้แน่นอน

 

ที่มา: hongkiat.com

 

อัพเดทบทความจากคนวงในสายไอทีทาง LINE ก่อนใคร
อย่าลืมแอดไลน์ @techstarth เป็นเพื่อนนะคะ

 

เพิ่มเพื่อน

 

 

 

บทความที่เกี่ยวข้อง