บทความนี้เป็นการถ่ายทอดประสบการณ์จากที่ได้พัฒนา Application มาแล้วกว่า 15 ปี ของคุณ Kesk -*- โดยเขาได้แบ่งปัน 40 เคล็ดลับ ที่ช่วยเปลี่ยนทักษะ Coding ของคุณให้ดีขึ้น รวมทั้งยังสามารถช่วยลดข้อผิดพลาดและประหยัดเวลาในการทำงานอีกด้วย
- หาก Code มีปริมาณมาก ๆ ก็ให้แบ่ง Code ออกเป็น Function ที่มีขนาดเล็กลง
- หลังเลิกงานแล้ว หากคุณยังแก้ปัญหาไม่ได้ ก็ขอให้ปิด Computer ซะ เลิกคิดถึงปัญหาเหล่านั้นจนกว่าจะกลับมาทำงานและแก้ไขปัญหาใหม่ในวันรุ่งขึ้น
- YAGNI principle: อย่าเขียน Code เกินกว่าที่ถูกร้องขอให้เขียน อย่าคิดเผื่ออนาคตให้มากเกินเหตุ และสร้างสิ่งที่สามารถใช้การได้แต่เรียบง่ายที่สุดเท่าที่จะทำได้ เขียน Code เฉพาะส่วนที่จำเป็นในการแก้ไขปัญหา ณ ปัจจุบัน
- คุณไม่จำเป็นต้องรู้ไปหมดทุกอย่าง และรู้จัก Frameworks ที่มีอยู่ทั้งหมด สิ่งที่สำคัญที่สุดก็คือการมีพื้นฐานที่ดี รู้จักภาษาในเชิงลึกก่อนที่จะเริ่มต้นด้วย Framework และเรียนรู้สิ่งที่เป็นพื้นฐาน เช่น SOLID principle หรือวิธีการเขียน Clean Code
- KISS: “Keep it simple, stupid” หรือ “keep it stupid simple” เป็นหลักการออกแบบที่กล่าวถึงว่า System โดยส่วนใหญ่ จะทำงานได้ดีที่สุดถ้าพวกมันเรียบง่าย แทนที่จะทำให้ซับซ้อน และถึงแม้จะเป็นตรรกะที่มีเหตุมมีผล แต่บางครั้งก็ยากที่จะบรรลุผล
- อย่าคิดมากจนเกินความจำเป็น
- หากคุณมีปัญหาหรือมี Bug ให้แก้เป็นจำนวนมาก ขอแนะนำให้เดินออกไปจากโต๊ะทำงานแล้วค่อยกลับมาทำใหม่ บ่อยครั้งที่ Solution ที่ดีที่สุด มักจะเกิดขึ้นระหว่างที่เราลุกออกไปจากโต๊ะทำงาน อีกทั้งการออกไปเดินเล่น ก็ถือเป็นสิ่งที่ควรทำในกรณีที่คุณรู้สึกหัวเสียกับลูกค้าหรือเพื่อนร่วมงาน
- เรียนรู้การเขียน Test ที่เกี่ยวกับการทำงานของคุณและเรียนรู้การทำ TDD เพราะ TDD เป็นกระบวนการพัฒนา Software ที่อาศัยการทำวนซ้ำ ๆ ของวงจรการ Develop: เขียน Test, Run Test ทั้งหมด แล้วดูว่ามีปัญหาใหม่ ๆ เกิดขึ้นหรือไม่, เขียนCode, Run Test, Refactor Code จากนั้นก็ทำซ้ำใหม่
- หาวิธีการแก้ปัญหาให้ได้ก่อน แล้วจึงค่อยเขียน Code อย่าเริ่มเขียน Code ก่อนโดยที่ยังไม่ทราบว่า คุณจะต้องทำอะไรบ้าง
- ไม่จำเป็นต้องจดจำ Code แต่คุณควรเข้าใจใน Logic ให้ดี
- หากคุณ Copy & Paste Solution ที่ได้จาก Stack Overflow ก็จงตรวจสอบให้แน่ใจว่าคุณเข้าใจพวกมันเป็นอย่างดี จงเรียนรู้การใช้งาน Stack Overflow ในทางที่ถูกต้อง
- หากคุณต้องการเรียนรู้ในบางสิ่ง ก็ขอให้ลงมือทำ ลองคิดดูว่าจะทำอะไรแล้วทำให้มันเกิดขึ้นจริง ๆ ให้ได้ เพราะแค่อ่านอย่างเดียวนั้นยังไม่เพียงพอ
- จงเรียนรู้จาก Code ของผู้อื่นและให้ผู้อื่นช่วยดู Code ของเราด้วย การใช้ Pair Programming และ Code Reviews ถือเป็นแนวคิดที่ดี
- อย่าไปเสียเวลาทำในสิ่งที่มีคนอื่นเขาเคยคิดค้นไว้ดีแล้วหรือทำไว้ดีแล้ว (Don’t Reinvent The Wheel)
- Code ของคุณคือ Document ที่ดีที่สุด
- ลงเรียนรู้วิธีการค้นหา Google ให้ดี ซึ่งคุณอาจต้องใช้ประสบการณ์และอ่านให้มาก ๆ เพื่อให้รู้ในสิ่งที่คุณกำลังมองหาอยู่
- Code ของคุณ อาจจะถูก Maintain โดยตัวคุณเองหรือโดยคนอื่น ดังนั้น จงเขียน Code โดยคำนึงถึงคนที่จะต้องมาอ่าน Code นั้นด้วย ไม่จำเป็นต้องเขียนให้ซับซ้อนเกินเหตุ
- วิธีที่ดีที่สุด ในการแก้ไขข้อผิดพลาดด้วย Google คือการ Copy & Paste
- อย่าเพิ่งตัดใจยอมแพ้ เพราะสุดท้ายคุณจะหาทางแก้ไขปัญหาเหล่านั้นได้ไม่ทางใดก็ทางหนึ่ง ถึงแม้จะเจอวันที่แย่ ๆ แต่สุดท้ายมันจะผ่านไป
- หยุดพัก หยุดพัก และ หยุดพัก วิธีที่ดีที่สุดในการแก้ปัญหา ก็คือ การมีจิตใจที่สงบ
- เรียนรู้วิธีใช้ Software Design Patterns เพราะ Design Patterns เป็นวิธีแก้ไขของปัญหาทั่วไปในการออกแบบ Software โดยแต่ละ Pattern ก็เปรียบเหมือนกับ “พิมพ์เขียว” ที่คุณสามารถ Customize พวกมันเพื่อแก้ปัญหาทั่วไปในการออกแบบภายใน Code ของคุณ
- ใช้ Integration Tools และทำให้มัน Automate มากเท่าที่คุณจะสามารถทำได้
- ให้ทำ Code Kata ซึ่ง Code Kata ก็คือ การฝึกฝนที่ช่วยให้ Programmer ฝึกฝนในทักษะของตนเองผ่านการฝึกซ้อมและการทำซ้ำบ่อย ๆ คุณสามารถดูตัวอย่างได้ที่นี่
- เขียน Program เพื่อ Interface ไม่ใช่เพื่อ Implement และ Dependency Injection ถือเป็นสิ่งที่จำเป็น ให้ลองศึกษา SOLID principles
- Refactor – Test-Refactor ซึ่งการ Refactor เป็นเทคนิคสำหรับการปรับ Structure ของ Code ที่มีอยู่ แก้ไขและปรับปรุง Structure ภายในโดยไม่ไปเปลี่ยนพฤติกรรมภายนอก
- ขอความช่วยเหลือคนอื่นเมื่อคุณต้องการ อย่าไปเสียเวลา
- การฝึกฝนจะทำให้สิ่งต่าง ๆ ดีขึ้น
- แม้ว่าบางครั้ง Comment จะมีประโยชน์กับคุณ แต่อย่าใส่ใจพวกมันมากเกินไป เพราะมันอาจจะล้าสมัยไปแล้ว
- ควรรู้จัก Development Environment ของคุณ และควรลงทุนในสิ่งที่สมรรถภาพมากเพียงพอ อย่างเช่น IntelliJ
- สามารถนำ Components มา Reuse ได้
- เมื่อพัฒนา Web Application ให้คุณคิดถึงเมื่อมันอยู่ใน Mobile ด้วยเป็นลำดับแรก ข้อจำกัดเกี่ยวกับ Bandwidth และเรื่องอื่น ๆ ที่เกี่ยวข้อง
- อย่าเพิ่งรีบ Optimize หรือ Refactor เร็วเกินไป มันเป็นเรื่องสำคัญที่ต้องมี Minimum Viable Product (MVP) ให้เร็วที่สุดเท่าที่จะทำได้
- อย่าใช้ทางลัดที่ไม่มีประสิทธิภาพเพื่อแค่ต้องการประหยัดเวลา ทุกครั้งที่คุณเขียน Code ให้ทำมันให้ดีที่สุด
- ปฏิบัติตามมาตรฐานของ Document
- Users ไม่ใช่คนที่มีความรู้ทางด้าน Technic ดังนั้น จึงควรนึกถึงพวกเขาด้วยคุณพัฒนา UI
- ใช้ Source Control System อยู่เสมออย่าง Github หรือ Bitbucket ควรทำทีละน้อยและให้ Commit Git อยู่เสมอ
- มันจะดีกว่าที่จะใช้ Logs มากกว่าที่จะ Debug Code และให้บันทึก Logs ในส่วนที่สำคัญทั้งหมด
- เมื่อ Coding คุณควรทำให้มันสอดคล้องกันทั้งหมด ถ้าคุณกำหนด Style ก็ให้ใช้ Style เดียวกันทั้งหมด หรือหากคุณต้องทำงานกับผู้คนเป็นจำนวนมาก ก็ให้ใช้ Style เดียวกันกับทุกคนในทีมของคุณ
- อย่าหยุดเรียนรู้ แต่จงเรียนรู้ให้มากกว่าภาษา หรือ Framework ใหม่ ๆ ให้ Focus ไปที่พื้นฐานของการพัฒนา Software
- จงอดทน และ จงรักในสิ่งที่คุณทำ
ISM Technology Recruitment Ltd. (#1 Tech Recruiter in Thailand) เราเชี่ยวชาญในธุรกิจ IT Recruitment & IT Outsourcing โดยเฉพาะ เปิดทำการกว่า 30 ปี มีพนักงานทุกสายและทุกระดับทางด้าน IT ที่ได้ร่วมงานกับลูกค้าองค์กรใหญ่ที่มีชื่อเสียงและบริษัทข้ามชาติมากมาย หากคุณเป็นคน IT ที่อยากทำงานท้าทายและร่วมงานกับองค์กรชั้นนำ สามารถฝากประวัติการทำงาน (Resume) ของคุณไว้กับ ISM ได้ที่ https://www.ismtech.net/submit-your-resume แล้วคุณจะพบว่าอนาคตและโอกาสก้าวหน้ากำลังรอคุณอยู่
Source: https://medium.com/