clean-code Archive

แนะนำวิธีการเพื่อปรับปรุงการเขียน code ให้ดีขึ้น

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

Read More…

สรุปเรื่องของ Code Quality จาก Code Climate

นั่งดู VDO เรื่อง Code Quality Lessons Learned จาก CodeClimate.com ตั้งคำถามที่น่าสนใจเกี่ยวกับ Code Quality ไว้ดังนี้ Code Quality คืออะไร ? ใช้อะไรวัดค่าความซับซ้อนของ code ? ทำไม code ของ project เก่า ๆ ถึงดูแลยากนักล่ะ ? ขนาดของ code ในแต่ละ Pull request สำหรับการ review ควรเป็นเท่าไรดี ? เมื่อไรที่ code แย่ ๆ ไม่ใช่ปัญหา ? อะไรบ้างที่เป็นตัวขัดขวาง Clean code ? เท่านี้ก็น่าสนใจแล้ว จึงทำการสรุปไว้นิดหน่อย ส่วนตัวเต็ม ๆ ลองไปฟังจาก VDO ได้ครับแค่ 1 [&hellip

Read More…

เมื่อ MVC ย่อมาจาก Massive ViewController

เมื่อวานนั่งดู Code การพัฒนา iOS ด้วยภาษา Swift โจทย์เดียวกันจาก developer 4 คน แต่โครงสร้างของ code ที่ออกมานั้นเหมือนกัน นั่นคือเป็น MVC(Model View Controller) ในรูปแบบของ Apple ซึ่งส่วนใหญ่จะนำไปสู่ MVC ที่ย่อมาจาก Massive ViewController มากกว่านะ !! และนั่นคือความหายนะที่กำลังมาเยือนนักพัฒนาโดยทั้งรู้และไม่รู้ตัว

Read More…

นักพัฒนาที่ดีควรหลีกเลี่ยงการตั้งชื่อที่แย่ ๆ

อ้างอิงข้อความจากคุณ Phil Karlton There are only two hard things in Computer Science: cache invalidation and naming things. รวมทั้งข้อมูลจากผลสำรวจเรื่อง The hardest problem in programming is what to name your variables and functions พบว่าเรื่องที่ยากที่สุดสำหรับนักพัฒนา software คือ การตั้งชื่อของตัวแปร function/method, class และอื่น ๆ อีกมากมาย โดยรวมคือการตั้งชื่อให้สื่อความหมายนั่นเอง (Meaningful Name)

Read More…

เมื่อนักพัฒนาไม่สามารถควบคุมความซับซ้อนของ code ได้ !!

จากบทความเรื่อง Why it happens to your code again and again? อธิบายการพัฒนาระบบ web application ด้วย RoR (Ruby on Rails) ซึ่งเป็น framework หลักของการพัฒนาระบบด้วยภาษา Ruby โดยในช่วงแรกของการพัฒนาระบบนั้นจะราบรื่นและรวดเร็ว ไม่ว่าจะเป็นการเพิ่ม gem หรือ library ต่าง ๆ เข้าไป ทุกอย่างมันแจ่มมาก ๆ แต่เมื่อเวลาผ่านไปเรากลับพบว่า

Read More…

ว่าด้วยเรื่องของ Code Metric คือสิ่งที่ต้องปรับปรุงอย่างต่อเนื่อง

มาดูตัวอย่างของภาพที่ Developer หลาย ๆ คนอาจจะเห็นและพบจนชิน เมื่อ Developer เปิด source code บน IDE หรือ Editor ต่าง ๆ แล้วทำการ compile และ run อาจจะพบเจอกับ Warning หรือ คำเตือนต่าง ๆ จาก compiler จำนวนมาก !! คำถามที่น่าสนใจคือ จะทำอย่างไรต่อไปดีล่ะ ? จะทำการแก้ไข ? จะปล่อยไว้อย่างนั้น ? จะไม่สร้างมันขึ้นมาอีก ? Developer จะทำอย่างไรต่อไป

Read More…

วิธีเขียน code ด้วยภาษา Java ที่ยากต่อการทดสอบ !!

เรามักได้ยินว่า developer ควรเขียน code ที่อ่านง่าย ควรเขียน code ที่ดูแลรักษาได้ง่าย ควรเขียน code ที่ทดสอบได้ง่าย แต่มันไม่ใช่เรื่องง่ายเลยที่จะเขียน code แบบนั้นขึ้นมา ดังนั้นเรามาดูกันดีกว่าว่า code ที่มันตรงกันข้ามเป็นอย่างไร ? และใครกันนะที่ชอบเขียน code แบบนี้ออกมา

Read More…

ว่าด้วยเรื่อง Clean Swift Architecture

วันนี้ได้อ่านบทความต่าง ๆ จาก Clean Swift จึงทำการสรุป และ แปลไว้อ่านกันนิดหน่อย ซึ่งน่าจะมีประโยชน์สำหรับนักพัฒนาอย่างมาก มาเริ่มด้วยเรื่อง Clean Swift คืออะไร ? เป้าหมายหลักของ Clean Swift Architecture คือ แก้ไขปัญหา Massive View Controller ผลที่ตามมาคือ เมื่อลูกค้าถามว่า ต้องใช้เวลาเท่าไรในการแก้ไข Bug ? ต้องใช้เวลาเท่าไรในการเพิ่ม feature ใหม่เข้าไป

Read More…

ลองดู code ที่เขียนหน่อยสิว่า มัน DRY หรือ WET กัน ?

DRY ย่อมาจาก Don’t Repeat Yourself เป็นแนวคิดสำหรับการลดจำนวน code ที่ซ้ำซ้อน WET ย่อมาจาก Write Everything Twice เป็นแนวคิดที่ตรงข้ามกับ DRY โดยสิ้นเชิง คำถามคือ ในปัจจุบัน developer เขียน code กันแบบไหน ระหว่าง DRY กับ WET ? ถ้าตอบว่า WET !!! แนะนำให้พยายาม ลด ละ เลิก เพื่อทำให้ code มัน DRY หรือลดจำนวน code ที่มันซ้ำซ้อนในหลายๆ จุดนั่นเอง

Read More…

สรุปสิ่งที่ได้แบ่งปัน และ ได้รับในงาน Code Mania 11

วันนี้มีโอกาสไปแบ่งปันในงาน Code Mania 11 :: Raise the bar จัดโดยสมาคมโปรแกรมเมอร์ไทย โดยพูดเรื่อง บุกป่าฝ่าดงอีฟฟฟ เพื่ออธิบายวิธีการปรับปรุง code ที่มันยุ่งเหยิงให้ดีขึ้น รวมทั้งความรู้ต่าง ๆ ที่ได้รับกลับมา จึงทำการสรุปไว้นิดหน่อย

Read More…