Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

มาเขียนโค้ดแย่ๆ กันเถอะ

3,471 views

Published on

Slide at Java Boot Camp Thailand ครั้งที่ 2
เรื่อง มาเขียนโค้ดแย่ๆ กันเถอะ

Published in: Technology

มาเขียนโค้ดแย่ๆ กันเถอะ

  1. 1. มาเขียนโค้ดแย่ๆ กันเถอะ @somkiat
  2. 2. SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance ทำไมต้อง JAVA http://spectrum.ieee.org/computing/software/top-10-programming-languages
  3. 3. SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance คำเตือน เรื่องต่างๆ ที่จะพูดต่อไปนี้ เป็นเรื่องตลกทั้ง๤ิ้น ไม่ใ๡่แนวปฎิบัติที่ดีเลย
  4. 4. SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance คุณคือ Maintenance Programmer Maintenance Programming ทําการเขียน
  5. 5. SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance เชื่อเถอะว่า มันก็ยากต่อการทําความเข้าใจเ๡่นกัน ถ้าโค้ดมันเขียนยาก
  6. 6. SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance แต่สิ่งที่มักพบเจอ
  7. 7. SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance มาเขียนโค้ดกัน http://hdwallpapers-download.com/best-girl-generation-image-06.html
  8. 8. SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance ชื่อนั้นสำคัญไฉน "นามนั้น๤ําคัญไฉน กุหลาบถึงเรียกขานด้วย๡ื่อใด ก็ยังคงความหอมเ๡่นเดิม" William Shakespeare
  9. 9. SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance A B C D E F G A Boy Can Do Every Thing For Girl http://www.urbandictionary.com/define.php?term=LMNOP&defid=7311415
  10. 10. SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance ชื่อที่ไม่สื่อความหมาย flag count process handle run data input output perform doIt routine
  11. 11. SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance ใช้ชื่อย่อ Str = String Usr = User Frm = Frame/Form Eff = Efficiency Txt = Text
  12. 12. SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance ไม่สนใจ Coding Convention i_love_you NUMBER_Format Idontcareanything
  13. 13. SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance ชื่อกับสิ่งที่ทำไม่ตรงกัน isValid() writeFile() process()
  14. 14. SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance ตั้งชื่อแบบ Hungarian lAccountNumber arrNumber fnFunction MonAM FriPM
  15. 15. SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance ซ่อนการทำงานเยอะๆ Comment โค้ดทิ้งไว้ ไม่ยอมลบ ตั้ง๡ื่อคล้ายๆ กัน เ๡่น method1(), method2() สร้าง overload method จํานวนมาก ใ๡้ AOP เยอะๆ
  16. 16. SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance การเขียน Comment Comment ไม่ตรงกับการทํางานโค้ด Comment อธิบายขั้นตอนการทํางานอย่างละเอียด อัตรา๤่วนของ comment มากกว่า code
  17. 17. SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance การออกแบบ ใ๡้ type case ไม่ต้องทําการ validate ข้อมูล ไม่มีการ encapsulate ข้อมูล และการทํางาน Copy-and-paste ใ๡้ตัวแปรชนิด Global และ Static
  18. 18. SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance เขียนโค้ดให้ดูวุ่นวาย ใ๡้ magic number เยอะๆ เ๡่น if( status == 1 ) ใ๡้ if-else, switch-case เยอะๆ ไม่ต้องใ๡้ {} ๤ําหรับ block code ที่มีบรรทัดเดียว ทําการ Override กันหลายๆ ๡ั้น ดูมีภูมิ ไม่ชอบ throw exception
  19. 19. SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance การทดสอบโค้ดที่เขียน ไม่ต้องทดสอบ ไม่เขียน test case การทดสอบมัน๤ําหรับคนขี้ขลาด ใ๡้ Debug
  20. 20. SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance http://multiple-sclerosis-research.blogspot.com/2013/09/bad-posts.html
  21. 21. SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance http://www.nspyre.ro/files//clean-code-1-728.jpg
  22. 22. SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance http://xprogramming.com/articles/too-much-of-a-good-thing/
  23. 23. SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance http://xprogramming.com/articles/too-much-of-a-good-thing/
  24. 24. SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance โค้ดที่ดีเป็นอย่างไร ตรงตามความต้องการของลูกค้า ๤ิ่งที่ออกแบบ ต้องอยู่ในโค้ด ไม่มีโค้ดที่๢้ํา๢้อน แต่ละ๤่วนต้องมีขนาดเล็ก
  25. 25. SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance อ่านซะ
  26. 26. SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance http://www.gfi.com/blog/the-41-dumbest-security-decisions/
  27. 27. SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance T E S T F R A M E W O R K http://en.wikipedia.org/wiki/List_of_unit_testing_frameworks
  28. 28. SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance http://cheqbook.com/wp-content/uploads/2014/03/simple-accounting-software.jpg
  29. 29. SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance

×