Practice Archive

สรุปการแบ่งปันเรื่อง Automated Deployment สำหรับ Mobile App

เพิ่งไปแบ่งปันเรื่องระบบ Automated deployment สำหรับ Mobile app มา โดยประกอบไปด้วยส่วนต่าง ๆ เช่น ระบบ API หรือ Backend ระบบ Mobile หรือ Frontend ทั้ง Android และ iOS มีทั้ง process และเครื่องมือที่ใช้งาน จึงนำมาสรุปไว้นิดหน่อย มาเริ่มกันเลย

Read More…

จะหลีกเลี่ยง code ที่ … อย่างไรดี ?

ปัญหาที่นักพัฒนาพบเจอเป็นประจำก็คือ Legacy code (Code ที่ไม่มี test) ซึ่งมีคุณสมบัติเฉพาะตัวนั่นก็คือ พังง่าย !! อาการประมาณว่า แก้ไขตรงนั้นนิดตรงนี้หน่อยแล้วส่วนอื่นพังไปด้วย !! เหมือนกับการแก้ไข bug เพียงตัวเดียวแล้วได้ bug มาอีกเป็นฝูง โดย code เหล่านี้นักพัฒนาต้องเจ็บตัวกันมาทุกคน ไม่ว่าจะมากหรือน้อยก็ตาม เพื่อทำการแก้ไข และ ปรับปรุง code เหล่านี้ให้ดีขึ้น คำถามที่น่าสนใจคือ แล้วเราจะหลีกเลี่ยง code แบบนี้ได้อย่างไร

Read More…

ประโยคที่ต้องถูกตีความ เมื่อนักพัฒนาพูดออกมา

ฝนตกช่วงค่ำ ๆ เลยเปิดบทความอ่านเล่น ๆ เจอบทความที่น่าสนใจเรื่อง Software Engineer Cheat Sheet ว่าด้วยเรื่องการแปลความหมายจากสิ่งที่นักพัฒนา software พูดกัน ว่าจริง ๆ แล้วมีความหมายอย่างไร มีหลายข้อที่โดนใจเลยสรุปไว้นิดหน่อย ว่าแต่มีข้อไหนโดนใจคุณบ้างล่ะ

Read More…

ทำความรู้จักกับ 3R principle

อ่านเจอบทความเรื่อง 3R principles of programming เป็นแนวปฏิบัติ 3 อย่างเพื่อช่วยทำให้ code ที่เหล่านักพัฒนา software สร้างขึ้นมา มีความ clean มีความง่ายต่อการอ่าน มีความง่ายตอการทำความเข้าใจ มีความง่ายต่อการดูแลรักษา ไม่ซับซ้อนมากนัก จึงทำการแปลและสรุปส่วนที่น่าสนใจมานิดหน่อย

Read More…

สรุปเรื่อง Story Weight Reduction Toolkit

จากบทความเรื่อง Story Weight Reduction Toolkit ทำการอธิบายวิธีการแบ่งแยกงานใหญ่ ๆ ออกเป็นงานย่อย ๆ ซึ่งทำให้เราสามารถทำการประเมินได้ง่ายขึ้น ซึ่งทำให้เราสามารถจัดการได้ง่ายขึ้น ซึ่งทำให้เราสามารถพัฒนาระบบงานได้ดีขึ้น จึงนำมาแปลและสรุปสิ่งที่น่าสนใจไว้นิดหน่อย

Read More…

อย่าถามว่าต้องทำการ Refactor code หรือไม่ แต่ให้ลงมือทำไปเลย

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

Read More…

อย่าลืมจัดการกับ Error response ของ API นะ มันสำคัญมาก ๆ

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

Read More…

ทำไมสิ่งที่ออกแบบกับสิ่งที่สร้างมักแตกต่างกัน ?

วันนี้อ่านบทความเรื่อง Java legacy hairball: refactoring case-study ทำการอธิบายถึงการ refactor legacy code ว่ามีแนวคิดและขั้นตอนอย่างไรบ้าง ? ซึ่งมีความน่าสนใจอย่างมาก จึงนำมาสรุปไว้นิดหน่อย

Read More…

อย่าปล่อยให้ code มีกลิ่นที่ไม่ดี !!

สิ่งที่นักพัฒนาที่ดีพึงมี คือ มีจมูกที่ดี หมายความว่าต้องหัดดมกลิ่นของ code ว่า code เหล่านั้นมีกลิ่นที่ไม่ดี ไม่พึงประสงค์หรือไม่ ? ซึ่งเราจะเรียกว่า Code Smell แต่ปัญหาหลัก ๆ คือ เหล่านักพัฒนานั้น จมูกไม่ค่อยดีนะสิ มักจะไม่ได้กลิ่นอะไรจาก code เลย !! ดังนั้นสิ่งแรกที่นักพัฒนาควรทำคือ อ่าน และ ศึกษา รูปแบบของ code ที่ไม่ดีจากหนังสือ Refactoring : Improving the Design of Existing code มาดูกันว่า Code Smell ที่เจอบ่อย ๆ มีลักษณะอย่างไรบ้าง

Read More…

Performance Testing :: อย่าประเมินพลังของผู้ใช้งานต่ำเกินไป

ปัญหาเรื่องระบบล่มเนื่องมาจากผู้ใช้งานเข้ามาใช้ระบบจำนวนมากพร้อม ๆ กัน เป็นปัญหาที่ผมคิดว่า นักพัฒนาพบเห็นประจำ เช่น Pizza Hut ออก promotion 1 บาท Pokémon Go ล่ม ระบบลงทะเบียนล่ม AirAsia ล่มสำหรับ promotion BIG SALE ระบบจองตั๋วต่าง ๆ ล่ม ดังนั้นสิ่งที่ควรต้องเตรียมตัวไว้เสมอคือ การทดสอบปริมาณการใช้งานแบบพุ่งสูงอย่างรวดเร็ว (Spike Traffic) เพื่อให้เราสามารถรับมือกับปัญหาต่าง ๆ ได้อย่างรวดเร็ว มิฉะนั้นระบบไฟไหม้อย่างแน่นอน

Read More…