เทคนิคการตั้งชื่อตัวแปร อย่างมีประสิทธิภาพ

26-ธ.ค.-18

คัมภีร์เทพ IT

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

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

ทำไม Programmer มีแนวโน้มที่จะเขียนชื่อตัวแปร “ที่ซับซ้อน”

  • ขาดประสบการณ์ : ไม่เคยเขียน Code ในลักษณะที่สอดคล้องกันและไม่เข้าใจถึงความสำคัญของการเขียนไปในทางเดียวกัน
  • ใกล้ช่วง Deadline : ไม่มีเวลาตั้งชื่อที่เหมาะสม เนื่องจากต้องรีบทำ Project ให้เสร็จ
  • Copy & Paste : เมื่อมีการใช้ Function จาก Project อื่นหรือเรียนรู้จาก Source อื่นอย่าง Github และ Stackoverflow, Programmer อาจขี้เกียจที่จะเปลี่ยนชื่อตัวแปรใหม่
  • อยากให้ดูเป็นคนฉลาด : การใช้คำที่หลากหลายและแตกต่าง จะทำให้ Code ดูซับซ้อนขึ้นและทำให้ผู้เขียน Code รู้สึกพอใจ
  • ใช้ภาษา Programming เก่าๆ : ภาษา Programming เก่าๆ บางภาษา จำเป็นต้องเขียนชื่อตัวแปรสั้นๆ เพื่อลดการใช้หน่วยความจำเมื่อ Compile

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

1. เขียนชื่อที่มีความหมายและมีวัตถุประสงค์ชัดเจน

เมื่อคุณอ่าน Code เหล่านี้เป็นครั้งแรก คุณอาจคิดว่า มันยากที่จะเข้าใจว่าตัวแปรเหล่านี้คืออะไร แต่อยากให้คุณลองเปรียบเทียบกับตัวอย่างนี้ดู:

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

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

นี่เป็นอีกหนึ่งตัวอย่าง ที่เราสามารถใช้ชื่อตัวแปรสั้นๆ ได้ เนื่องจากมี Scope การใช้ขนาดเล็ก (อย่างเช่น การวน Loop)

2. ใช้สัญลักษณ์ที่สอดคล้องกับการตั้งชื่อที่มีแบบแผน

นี่คือแนวทางการตั้งชื่อตัวแปร

  • ใช้อักษรพิมพ์ใหญ่เพื่อแยกคำ – ทุกคำจะเริ่มต้นด้วยอักษรพิมพ์ใหญ่และไม่มีตัวแบ่งแยกในระหว่างคำ มักใช้เทคนิคนี้กันใน: JavaScript, Python, Ruby

  • ใช้ตัวพิมพ์ใหญ่เป็นตัวแรกของแต่ละคำ – จะใช้ตัวพิมพ์ใหญ่เป็นตัวเริ่มต้นของแต่ละคำ (ยกเว้นคำแรกที่ใช้เป็นอักษรตัวเล็กทั้งหมดได้) มักใช้เทคนิคนี้กันใน: Java, Microsoft .NET, Swift

  • ใช้ตัวคั่นในการแยกคำ – ทุกคำจะถูกแยกออกด้วย hyphen ("-") หรือ underscore ("_") และคำทั้งหมดจะเขียนด้วยตัวอักษรพิมพ์เล็ก มักใช้เทคนิคนี้กันใน: Perl, PHP

คำถามคือ แล้วเราควรจะเลือกแบบไหนดี อันที่จริงมันก็ขึ้นอยู่กับข้อตกลงของ Developer ในทีมว่าจะเลือกใช้แบบใด แต่หากพูดกันถึงแนวทางปฏิบัติที่ใช้กันในภาษาที่เป็นที่นิยมแล้ว คุณสามารถใช้ตามภาษาที่แนะนำไปด้านบนก็ได้ เช่น PHP มี คู่มือมาตรฐานการตั้งชื่อ จาก Pear อย่างไรก็ตามกฎการตั้งชื่อเหล่านี้ ก็ไม่ใช่กฎที่บังคับว่าต้องปฏิบัติตาม แต่มันจะช่วย Guide ให้ Developer มีมาตรฐานเดียวกันทั่วโลกเท่านั้นเอง

3. Use Standard Terms

เมื่อ Developer สร้าง Application ก็อาจใช้คำหลายๆ คำ ที่มีความหมายหรือมีวัตถุประสงค์แบบเดียวกัน

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

4. Do Not Number Variable Name

โดยทั่วไป Developer มีแนวโน้มที่จะตั้งชื่อตัวแปรให้เร็วที่สุดเท่าที่จะเป็นไปได้ เนื่องจากสร้าง Function แต่ละ Function ก็เป็นเรื่องยากอยู่แล้ว เมื่อ Programmer มีปฏิสัมพันธ์กับ Program ที่มีตัวแปรและ objects ต่างๆ มากมาย พวกเขาก็มักจะตั้งชื่อด้วยการตั้ง ชื่อเดียวกันและระบุหมายเลขตามลำดับไปเรื่อยๆ

อย่างเช่น controller class หนึ่ง มี data หลายตัว ที่จำเป็นต้องถูกส่งไปสู่ view และชื่อตัวแปรของ data ก็คือ $data, $data2, $data3 และ $data4 ในช่วงแรกปัญหานี้จะไม่เป็นปัญหา เพราะ Developer จะทราบถึงวัตถุประสงค์และความหมายของ data แต่ละตัว แต่ลองคิดดูว่า จะเกิดอะไรขึ้นหากมี Developer คนใหม่เข้ามาในทีม

5. When you find another way to name variable, Refactor as fast as possible

เพื่อจัดการกับปัญหาในข้อที่ 4 Developer ต้องใช้ความกระตือรือร้นและช่างสังเกตในการค้นหาชื่อตัวแปร ขณะที่ Developer กำลัง Focus ไปที่ Function แทนที่จะเป็นชื่อตัวแปร พวกเขาไม่ควรปล่อยผ่านตัวแปร “ที่ไม่ได้ตั้งชื่อ” (คุณคงรู้ ว่าหมายถึงอะไร)

เมื่อคุณพูดว่า “ไว้ค่อย Refactor ตัวแปรภายหลัง” นั่นคือ คุณกำลังโกหกตัวเอง เนื่องจากโดยทั่วไป คุณจะรู้สึกเบื่อหน่ายและคุณไม่ต้องการแตะต้อง Function อีกแล้ว หลังจากผ่านการ Debug มาแล้ว 3 วัน ดังนั้น โดยทั่วไปคุณมักลืมที่จะ Refactor เพื่อเอาชนะปัญหานี้ คุณต้องสร้าง Mindset ที่จะใช้เวลาของคุณมากขึ้นเพื่อการมีชื่อตัวแปรที่ดี

เมื่อคุณสามารถหาคำอื่นๆ ที่จะใช้แทนที่ชื่อเดิม และมีความหมายดีขึ้นแล้ว ให้คุณรีบ Refactor Code เหล่านั้นให้เร็วที่สุด

สุดท้ายนี้ รู้ดีว่าบางครั้งมันก็ยากที่จะให้แนวคิดเกี่ยวกับชื่อตัวแปรที่เหมาะสมใน Code ของคุณ ในขณะที่คุณก็ Focus เกี่ยวกับ deadline ของ Project หรือกระทั่ง Algorithm คุณแค่มุ่งหวังให้ Function ของคุณทำงานได้ตรงตามที่เป้าหมายที่วางไว้เท่านั้น

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

ที่มา:  https://medium.com/

 

 

รับตำแหน่งงานไอทีใหม่ๆ ด้วยบริการ IT Job Alert

 

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

เพิ่มเพื่อน

 

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