Code เป็นแล้ว Code ดีไหม ?

code_work_or_code_good

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

Credit

ขอพูดถึง Credit ก่อนเลยแล้วกันบทความนี้ผมพยายามนำมาปรับใช้โดยจะทำเป็นตัวอย่างเสริมจากบทความเดิมครับ ไปติดตามอ่านกันที่นี่เลยครับ http://www.somkiat.cc/rule-for-readability-code-from-crisp/ และต้นบทความที่นี่ภาษาอังกฤษนะครับ http://blog.crisp.se/2015/03/05/perlundholm/7-rules-on-code-readability

7 ข้อของการเขียน Code ที่ดีขึ้น

1. เรียบเรียงใหม่ในสิ่งที่คุณเขียนซะ

หลายครั้งที่เราจะเขียน Code แบบเพื่อผลลัพธ์ก่อน แน่ล่ะสิ ! ผมก็เป็นหนึ่งในกลุ่มนี้ ( ฮา ) ข้อนี้ง่ายๆครับ เมื่อคุณได้ทำให้ Code ของคุณทำงานตามคำสั่งแล้ว ก็ปรับ Code ให้ทำงานเหมือนเดิมแต่อ่านให้ง่ายขึ้นครับ ตัวอย่างเช่น

สังเกตุว่าคนมาอ่านอันหลังจะเข้าใจได้ง่ายเพราะทุกคนอาจจะไม่เข้าใจ Logic ของเราตอนเขียนก็ได้ครับ

2. พยายามอย่าใช้ Comment ครับ

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

3. ตั้งชื่อตัวแปรให้ดี

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

หากนึกคำไม่ออกแนะนำให้ถามคนอื่นหรือคนในทีมดูครับ ที่ผมใช้คำว่า before คือบางคนนึกไม่ออกจริงๆว่าก่อนหน้า เป็นคำว่า previous แต่ใช้คำเหมือนเวลาเรานึกคำอังกฤษง่ายๆ จึงใช้คำว่า before ที่แปลว่าก่อน มันจะงงมาก

4. พยายามออกจากการวนลูปของลูปของลูปของ ….

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

5. ให้แค่ 7 บรรทัดเท่านั้น

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

6. Formatting Code ร่วมกัน

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

7. ถ้าอ่านไม่ออกเขียนใหม่ซะ

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

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

https://www.facebook.com/groups/973770372648242/

 

 

 

คุณอาจจะชอบบทความเหล่านี้

ฝึกเขียน Test EP 2 Fizzbuzz บทความนี้จะเป็นการฝึกเขียน Test FizzBuzz เกมง่ายๆ โดยหลายๆคนคงจะได้ผ่านบททดสอบนี้ คล้ายๆกับการเริ่มเขียนโปรแกรมต้องเขียน Hello world นั่นแหละยังไง ยัง...
TDD ไม่รู้จักหรอกเอาแค่เริ่มรู้จัก Test ก่อน... บทความนี่อยากแนะนำเกี่ยวกับอีกสกิลหนึ่งที่คนเป็นนักพัฒนาต้องพยายามเข้าใจมัน ทั้งๆที่มันค่อนข้าง abstract และงงๆสำหรับคนบางคนที่เขียนโปรแกรมมาซักพัก หล...
The Art of Testing ReactJS and The Emerging Reason... สรุปจากงาน The Art of Testing ReactJS and The Emerging Reasonreact นะครับโดยตัวงานจะเป็นการพูดถึง React จะ test ยังไง การ test มีกี่แบบและแตกต่างกันยั...

ชอบเนื้อหาแบบนี้ไหมครับ ?

ถ้าชอบอย่าลืมติดตามง่ายๆด้วยการกรอกอีเมลของคุณในช่องด้านล่าง ผมจะส่งบทความดีๆเกี่ยวกับ programming, event, lifestyle ต่างๆมาสรุปให้แก่คุณก่อนใคร และยังมีกิจกรรมดีๆ ซึ่งคุณจะไม่พลาดทุกการเคลื่อนไหวอย่างแน่นอน