ขั้นตอนการเขียนโปรแกรมแบบขำ ๆ จาก Programming Geek

เช้านี้เปิดไปเจอรูปอธิบายเรื่องขั้นตอนการเขียนโปรแกรม (How to Program ?) จาก Programming Geek ซึ่งอธิบายไว้ว่าการเขียนโปรแกรมประกอบไปด้วย 4 ขั้นตอนคือ 1. Google the fucking problem 2. Open a StackOverflow link 3. Copy and paste the code 4. If did not work, go to step 2. If did work, go to step 1 ปิดท้ายด้วย FAQ ที่น่าสนใจ คำถาม :: What if there is no code ? [&hellip

Read More…

เขียน 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…

[Swift] มาทำการ refactor code พวก Singleton กันหน่อย

ใน code สำหรับ iOS ที่พัฒนาด้วยภาษา Swift นั้น พบว่ามีการเขียน code ในรูปแบบ Singleton เยอะมาก ๆ แน่นอนว่า วิธีการนี้มันมีทั้งข้อดีและข้อเสีย เช่น พัฒนาได้ง่าย ใช้งานง่าย ยากต่อการทดสอบ ยากต่อการ reuse state เปลี่ยนได้ตลอด ขอบเขตการทำงานเป็น global ไป ๆ มา ๆ ข้อเสียเยอะนะเนี่ย !! ดังนั้นจึงเป็นเหตุผลว่า ทำไมควร ลด ละ เลิก หรือถ้าต้องการใช้งานจริง ๆ ก็ควรระมัดระวังให้มากเข้าไว้ แต่ถ้าเป็น code ที่มีอยู่แล้วละ ? การจะทำการลบ code เหล่านี้ทิ้ง น่าจะเป็นงานช้างแน่ ๆ ดังนั้นเรามาหาวิธีการอยู่กับ Singleton กันเถอะ นั่นคือการ refactor code นั่นเอง [&hellip

Read More…

[Swift] ลดการเขียน code ซ้ำ ๆ ด้วย Sourcery กันหน่อย

ในการ coding นั้นเรื่องของ copy-and-paste รวมทั้ง code ที่ต้องเขียนซ้ำไปซ้ำมา บางครั้งเป็น code ที่ไม่ควรจะต้องมี แต่ด้วยโครงสร้างของภาษาก็จำเป็นต้องเขียน ทำให้เสียเวลาในการพัฒนาระบบไปอย่างมาก นั่นแสดงว่าเราได้ปฏิบัติตัวขัดแย้งกับ DRY principle อย่างมาก DRY ย่อมาจาก Don’t Repeat Yourself ดังนั้นเรามา ลด ละ เลิก กันบ้างแถอะ หนึ่งในนั้นคือ การ generate code จาก template ซึ่งในบทความนี้ขอแนะนำ Sourcery

Read More…

[Robot Framework] มาสร้าง report สวย ๆ ด้วย Allure Report Framework กัน

พอดีเห็นว่ามีคนพัฒนา Library สำหรับช่วยสร้างผลการทำงานจาก Robot Framework ให้อยู่ในรูปแบบของ Allure Report Framework ชื่อว่า Robot Framework Allure Report แต่ยังไม่ทำการสร้างไฟล์ report สวย ๆ นะ เป็นเพียงไฟล์ xml และไฟล์ property กาก ๆ เท่านั้น ดังนั้นต้องทำการสร้าง report หน้าสวย ๆ เอง ผ่าน Allure Command line ต่อไป มาดูตัวอย่างการติดตั้งและใช้งานกันนิดหน่อย

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…

[Android] ถ้าอยากเขียน log แนะนำ Hugo นะ

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

Read More…

สิ่งที่มาแทนที่ @RequestMapping ใน Spring framework 4.3.6 กัน

วันนี้เปิดดูเอกสารของ Spring framework 4.3.6 พบว่า มี feature ที่น่าสนใจคือ Annotation ใหม่ ๆ ซึ่งมาแทนที่ @RequestMapping ซึ่งใช้งานยากน่าดู ที่สำคัญสั้นกว่าเดิมมากมาย ดังนั้นจึงทำการสร้าง annotation ใหม่แยกตาม HTTP Method ดังนี้ @GetMapping @PostMapping @PutMapping @DeleteMapping @PatchMapping ซึ่งทำให้ใช้งานได้ง่ายขึ้นมาก แถมไม่สับสนอีกด้วย

Read More…

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

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

Read More…