Practice Archive

เขียน Unit Test กันดี ๆ หน่อยนะ

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

Read More…

[แปล] ทำความเข้าใจเกี่ยวกับ TDD และ Unit test กันอีกสักหน่อย

เช้านี้นั่งอ่านบทความเก่า ๆ ที่เก็บเอาไว้คือ 5 Common Misconceptions About TDD & Unit Tests อธิบายเกี่ยวกับความเข้าใจผิดเกี่ยวกับ TDD และ Unit Test จึงทำการแปลและสรุปเนื้อหาบางส่วนไว้นิดหน่อย

Read More…

[Tips] แนะนำการทดสอบแบบอัตโนมัติสำหรับ Mobile app

ความท้าทายสำหรับการทดสอบ Mobile app ประกอบไปด้วย การทดสอบบน device จริง ๆ และหลากหลาย การทดสอบแบบ parallel เพื่อทำให้การทดสอบรวดเร็วขึ้นมาก การจัดการ code ของการทดสอบ เช่นลด code ที่ซ้ำซ้อน รวมไปถึงการ reuse การทดสอบบน environment ที่เหมือนจริง การทดสอบบน environment ต่าง ๆ เช่น ความเร็วของ network, สถานะของ battery การทดสอบเมื่อมี interrupt ต่าง ๆ เช่น มีสายเรียกเข้า, มี notification และ การทำงานใน background process การทำ stress testing เช่นทำการทดสอบหรือใช้งาน app เป็นเวลานาน ๆ เพื่อดูการจัดการ resource ของ app

Read More…

ว่าด้วยเรื่องของ source code

เรื่องที่ถกเถียงกันประจำสำหรับการเขียน code ประกอบไปด้วย Tab vs Space ใช้อะไรดี ? ใช้ 2 หรือ 4 space แทน Tab หรือไม่ ? เขียน {} หรือไม่ ? เขียน { ในบรรทัดไหน ? Naming convention เป็นอย่างไร  camel case หรือ snake case ? ตั้งชื่อต่าง ๆ เป็นอย่างไร ? ถ้าเขียน test จะตั้งชื่ออย่างไรดี

Read More…

[Android] ขอรณรงค์ให้ใช้ Retrofit สำหรับจัดการ RESTful APIs เถอะครับ

คำถามสำหรับ Android Developer มีใครที่ยังจัดการ RESTful API เองบ้าง ? เช่น ยังเขียนการติดต่อไปยัง RESTful API ด้วย HTTPClient​ เอง? ยังต้องมาเขียน code จัดการ Request/Response กันเอง ? ยังเขียนการ mapping ไปมาระหว่าง JSON/XML กับ POJO class เอง ? ยังเขียน AsyncTask ใช้เอง

Read More…

มาทำแบบทดสอบเรื่อง Continuous Integration (CI) กัน

จากบทความเรื่อง Continuous Integration Certification นั้น มีแบบทดสอบการใช้งาน CI ที่น่าสนใจ ดังนั้นลองมาทำแบบทดสอบกันหน่อย เริ่มได้เลย

Read More…

ทำไม Developer ควรให้เวลากับการลบ code ของตัวเองทิ้งไปบ้าง ?

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

Read More…

ว่าด้วยเรื่อง Spaghetti Pattern ในชุดการทดสอบ

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

Read More…

สิ่งที่น่าสนใจจากบทความเรื่อง Last Line Effect

จากบทความเรื่อง Last Line Effect ทำการศึกษาผลกระทบที่มักเกิดกับการ Copy-and-Paste code ซึ่งแน่นอนว่า developer ส่วนใหญ่ชอบใช้งาน แถมใช้งานกันบ่อย ๆ อีกด้วย และบ่อยครั้งพบว่าการกระทำแบบนี้ก่อให้เกิดความผิดพลาดขึ้นมา หนึ่งในข้อผิดพลาดนั้นก็คือ code ใน block หรือบรรทัดท้าย ๆ นั่นเอง มาดูผลการศึกษากัน

Read More…

Developer ต้องเรียนรู้และฝึกฝนอยู่อย่างสม่ำเสมอ

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

Read More…