วันจันทร์ที่ ๓ สิงหาคม พ.ศ. ๒๕๕๒

VB.NET Coding Convention

ผมได้เข้าไปค้นหาข้อมูลใน msdn ก็เลยเจอหัวข้อ VB.NET Coding Convention อยู่ภายใน VS2008 พออ่านๆดูก็พบว่ามีหลายอย่างที่ไม่ได้ทำตาม Convention ของ MS ครับ ก่อนอื่นมาดูก่อนว่าถ้าเราเขียนโค้ดตาม guide line นี้จะมีข้อดีอะไรบ้าง

  • Coding conventions create a consistent look to the code, so that readers can focus on content, not layout.

  • Conventions let the readers understand the code more quickly, because it allows them to make assumptions based on previous experience.

  • Conventions make copying, changing, and maintaining the code easier.

  • Conventions demonstrate Visual Basic "best practices."


  • ทีนี้มาลองดูหัวข้อที่น่าสนใจครับ

    Naming Convention

  • Do not use "My" or "my" as part of a variable name. This creates confusion with the My objects. ข้อนี้ผิดบ่อยครับ บางทีคิดไม่ออกชอบตั้งชื่อตัวแปรมี My นำหน้า


  • Layout Convention
  • Use only one statement per line. Do not use the Visual Basic line continuation character (:). ข้อนี้ก็ทำบ้าง แต่ส่วนใหญ่จะใช้กับ 2 statements สั้นๆ โดยเฉพาะอย่างยิ่งเขียนใน SELECT CASE หรือ IF THEN STATEMENT และพอทำแล้วผมว่าโค้ดอ่านง่ายนะ

  • Use only one declaration per line.

  • Add at least one blank line between method and property definitions. ผมทำตามนี้อยู่แล้ว เห็นโค้ดบางคนไม่เว้นบรรทัด อ่านแล้วลายตาครับ


  • Language Guidelines
    String Data Type
  • Use & to concatenate strings: เมื่อก่อนก็เขียนแบบนี้ แต่ตอนหลังเปลี่ยนมาใช้ String.Concat() นะ ว่าแต่ใช้แบบไหนดีเนี่ย

  • For appending strings in loops, use the StringBuilder object: อันนี้แน่นอน ใช้ StringBuilder ดีกว่าเห็นๆ


  • Type Inference
  • Take advantage of type inference for local variables: สำหรับผมกำหนด Type ไปเลยอ่านง่ายกว่า Type inference นะ อันนี้ขอไม่เปลี่ยน

  • Use Type Inference for Loop Variables in For or For Each Statements
    Allow type inference to determine the type of the loop range variable. เหมือนข้อเมื่อกี้ ส่วนตัวไม่ชอบ Type inference (แต่ก็ใช้บ้าง) ถ้าเป็นไปได้จะหลีกเลี่ยง มันเหมือนคนพูดสั้นๆให้เข้าใจเอาเอง


  • Unsigned Data Type
  • Use Integer rather than unsigned types unless memory is at a premium. อันนี้รวมถึงไม่ควรใช้ Int16, Int64, Short, Long ด้วย


  • Use the MsgBox Function
  • Use MsgBox instead of MessageBox.Show or Console.WriteLine. In environments that do not support the MsgBox function, such as Silverlight, use an appropriate alternative. อืม เคยอ่านมาว่าให้ใช้ MessageBox.Show แต่จริงๆชอบ MsgBox มากกว่า แบบนี้ก็กลับมาใช้แบบเดิมดีกว่าครับ


  • New Keyword
  • Use short instantiation:

  • Use object initializers for new objects instead of the parameterless constructor:


  • ยังมีอีกพอสมควรครับ สำหรับคนที่สนใจเข้าไปศึกษาได้ที่ http://msdn.microsoft.com/en-us/library/h63fsef3.aspx ครับ

    ๔ ความคิดเห็น:

    NBK กล่าวว่า...

    เมื่อไรจะเก่งได้เหมือนพี่ครับ
    จาก Beginner of .NET

    ฝ้าย กล่าวว่า...

    ขอถามนอกเรื่องหน่อยนะคะ คือใน combobox ที่เก็บชื่อจังหวัดไว้ แล้วเมื่อเราอยากเลือก กรุงเทพ โดยที่ใช้คีย์บอร์ดกดตัว ก ไก่ combobox ก็จะเลือก กรุงเทพขึ้นมาให้เรา คำถามคือ ทำไมบางทีก็ใช้ได้ บางทีก็ใช้ไม่ได้คะ (combobox จาก asp.net)

    jnithi กล่าวว่า...

    NBK - ฝึกไปเรื่อยๆก็เก่งครับ

    ฝ้าย - สำหรับคำถามแนะนำที่www.greatfriends.biz ครับ จะได้คำตอบจากคนเก่งๆเยอะแยะเลยครับ ส่วนเรื่อง ComboBox ผมไม่แน่ใจ เดี๋ยวจะลองดูครับว่าเป็นเหมือนกันหรือเปล่า

    fayjaa กล่าวว่า...

    โพสต์คำถามไปเรียบร้อยแล้วค่ะ

    http://greatfriends.biz/webboards/msg.asp?b=SURREALIST&id=111417