Tutorial

[Dev Tip] เมื่อ If ครอง Code

By Arnon Puitrakul - 14 กรกฎาคม 2015

[Dev Tip] เมื่อ If ครอง Code

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

if ()
{
   if ()
   {
      if ()
      {
        if ()
        {

        }
      }
   }
}

If ซ้อนกันเต็มไปหมด จนโค๊ตกลายเป็น Wave กันเลยทีเดียว แต่ตอนนั้นก็กลับมาถามตัวเองเหมือนกันว่า ทำไมเราถึงเขียนออกมาแบบนั้น แล้วถ้าโปรแกรมเรามีคนเอาไปทำต่อ มันจะเป็นยังไงหว่า อะไรทำนองนั้นกันเลยทีเดียว

แล้วทำไมเราถึงเขียน Code แบบนี้ออกมาได้ ?

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

Refactor Code คืออะไร ?

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

Read Next...

การสร้าง SSD Storage Pool บน Synology DSM

การสร้าง SSD Storage Pool บน Synology DSM

สำหรับคนที่ใช้ Synology NAS บางรุ่นจะมีช่อง M.2 สำหรับเสียบ NVMe SSD โดยพื้นฐาน Synology บอกว่ามันสำหรับการทำ Cache แต่ถ้าเราต้องการเอามันมาทำเป็น Storage ละ มันจะทำได้มั้ย วันนี้เราจะมาเล่าวิธีการทำกัน...

Multiprogramming, Multiprocessing และ Multithreading

Multiprogramming, Multiprocessing และ Multithreading

หลังจากที่เรามาเล่าเรื่อง malloc() มีคนอยากให้มาเล่าเรื่อง pthread เพื่อให้สามารถยัด Content ที่ละเอียด และเข้าใจง่ายในเวลาที่ไม่นานเกินไป เลยจะมาเล่าพื้นฐานที่สำคัญของคำ 3 คำคือ Multiprogramming, Multitasking, Multiprocessing และ Multithreading...

Synology NAS และ SSD Cache จำเป็นจริง ๆ เหรอ เหมาะกับระบบแบบใด

Synology NAS และ SSD Cache จำเป็นจริง ๆ เหรอ เหมาะกับระบบแบบใด

ใน Synology NAS มีความสามารถนึงที่น่าสนใจคือ การใช้ SSD เป็น Cache สำหรับระบบ ที่ทำให้ Performance ในการอ่านเขียน เร็วขึ้นกว่าเดิมมาก ๆ แน่นอนว่า เราลองละ วันนี้เราจะมาเล่าให้อ่านกันว่า หากใครคิดที่จะทำ มันเหมาะ หรือ ไม่เหมาะกับการใช้งานของเรา...

ฮาวทูย้าย Synology Add-on Package ไปอีก Volume

ฮาวทูย้าย Synology Add-on Package ไปอีก Volume

เรื่องราวเกิดจากการที่เราต้องย้าย Add-on Package ใน DSM และคิดว่าหลาย ๆ คนน่าจะต้องประสบเรื่องราวคล้าย ๆ กัน วันนี้เราจะมาเล่าวิธีการว่า เราทำยังไง เจอปัญหาอะไร และ แก้ปัญหาอย่างไรให้ได้อ่านกัน...