5 คุณสมบัติของซอสโค้ดที่ดี มีอะไรบ้าง

Good Code Quality Factors

thip
thipwriteblog
2 min readJun 9, 2022

--

Photo by Chris Ried on Unsplash

วันนี้หยิบเรื่อง Basic Programming มาฝากค่ะ เป็นเรื่องพื้นฐานที่สำคัญ! หากใครกำลังเริ่มต้นเขียนโค้ด และอยากเป็นโปรแกรมเมอร์ที่ดี ต่อไปนี้คือสิ่งแรกๆที่จำเป็นต้องรู้ไว้

5 คุณสมบัติของซอสโค้ดที่ดี

1. อ่านง่าย (Readability)

เชื่อไหมว่า.. Dev ส่วนใหญ่ ใช้เวลาในการอ่านโค้ด มากกว่าเขียนโค้ดสะอีก คิดเป็นอัตราส่วน 10:1 เลยทีเดียว (อ้างอิงจากหนังสือ Clean Code)

ชื่อตัวแปร ที่สะกดถูกต้องสื่อความหมาย หรือแม้แต่การจัดระเบียบ outline เคาะวรรคเว้นบรรทัด สิ่งเหล่านี้อาจจะดูเป็นเรื่องเล็กน้อย แต่จงอย่าลืมว่า “การเขียนโค้ด มันคือ Communication อย่างหนึ่ง” ระหว่าง Dev-Dev และ Dev-Machine ยิ่งเราเขียนโค้ดให้คนและเครื่องอ่านง่ายเท่าไหร่ ก็จะยิ่งช่วยย่นระยะเวลาในการทำงาน (ทั้งคนทั้งเครื่อง) ได้มากเท่านั้น

ในกรณีที่ initial project ขึ้นมาใหม่ ควรจะสร้างข้อตกลงกับทีมงานให้เข้าใจตรงกันเสียก่อน โดยกำหนด Coding Style ให้เป็นไปในทิศทางเดียวกัน

แต่ถ้าเจอ Legacy Code เข้าไป ก็พยายามหายใจลึกๆ …

แนะนำให้ไปศึกษาเรื่อง Clean Code

2. มีประสิทธิภาพ (Performance)

โค้ดที่ดีต้อง run แล้วเป็นมิตรกับ Memory และ CPU ข้อนี้สำคัญมาก! ระบบจะล่มหรือจะเร็ว ส่วนหนึ่งก็มาจากซอสโค้ดนี่แหล่ะค่ะ

ซับซ้อน/ซ้ำซ้อนไปไหม? ประกาศตัวแปรไว้ แล้วไม่ได้ใช้รึป๊าววว (กินเมมเด้ออ) , เปิด connection ไว้ ว๊ายลืมปิด! หรือบางทีลูปที่เขียนไว้ วนไปวนมา หาทางออกไม่ได้ (ระบบค้างได้เลยเน้ออ) ทั้งหมดนี้.. คือต้นเหตุของหายนะ!! ซึ่งส่วนใหญ่มักจะเกิดบน Production env.

แนะนำให้ไปศึกษาเรื่อง Code Refactoring

3. น่าเชื่อถือ (Reliability)

Error หลังบ้าน หน้างานไม่ต้องโชว์!

เมื่อ code > run > test จนได้ Expected Result แล้ว อย่าลืมคิดถึง “Unexpected” เคสต่างๆด้วย ดักจับมันไว้ให้ดี! ต้องมี Exception Handling

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

แนะนำให้ไปศึกษาเรื่อง Exception Handling

4. ปลอดภัย (Security)

ไร้ช่องโหว่ ปกป้องข้อมูลสำคัญ ป้องกันการโจมตี!!

hard-code user/pwd ไว้ที่ไหนรึป่าววว ทั้งใน source code หรือ config file ต่างๆ อย่าลืมนะคะ เราสามารถ Decompile code ได้ แม้ว่าจะแปลงเป็นภาษาเครื่องแล้วก็ตาม ดังนั้น อย่าคิดว่าไม่มีใครเห็น ไม่เป็นไร มูลค่าความเสียหายมหาศาลค่ะ

input / param สำคัญๆ แต่ดันไม่ได้ encrypt : ข้อมูลสำคัญ ต้องผ่านการเข้ารหัสให้ดีและมีมาตรฐาน แม้ว่าจะส่งแค่ในระดับ internal ก็ต้องปลอดภัยไว้ก่อนค่ะ

แนะนำให้ไปศึกษาเรื่อง Secure Coding , OWASP , Cryptography

5. Dependency Management

ข้อสุดท้าย ขอทับศัพท์ มันเป็นเรื่องการตรวจสอบพวก open source ต่างๆที่เราหยิบมาใช้ ซึ่งของพวกนี้.. ฟรี แต่บางทีก็ชอบมีของแถม

ดังนั้น ก่อนนำมาใช้/ระหว่างใช้ ต้องเช็คให้ดีๆ เพราะบางที Dev ที่เขียน open source เหล่านี้ ก็ทิ้งช่องโหว่เอาไว้เหมือนกัน

ยกตัวอย่างเคส Log4j ไลบรารี่พื้นฐานฮอตฮิต ที่ทำเอาสะทกสะท้าน สะเทือนนน! ทุกวงการทั่วโลกเลยทีเดียว

แนะนำให้ไปศึกษาเรื่อง Software Composition Analysis

ทิ้งท้าย

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

#สรุป keyword ที่ควรไปศึกษาเพิ่มเติม

  • Clean Code
  • Code Refactoring
  • Secure Coding
  • OWASP
  • Cryptography
  • Software Composition Analysis

--

--