Programming Archive

เรานำแนวคิดของ Continuous Integration มาใช้หรือไม่ ?

วันนี้อ่านหนังสือเรื่อง Continuous Integration ไปเจอชุดคำถามที่น่าสนใจว่า เรากำลังนำแนวคิดและแนวปฏิบัติของ Continuous Integration มาใช้งาน หรือเราเพียงนำเครื่องมือที่เรียกว่า Continuous Integration Tool มาใช้เท่านั้น ดังนั้นลองมาตอบคำถามเหล่านี้กันหน่อย

Read More…

[JUnit 5] มาลองใช้งาน RepeatTest และ DynamicTest

ระหว่างรอรถก็นั่งอ่านเอกสารของ JUnit 5 มีความสามารถใหม่ ๆ เยอะเลย ที่สำคัญน่าจะได้เวลานำมาใช้อย่างจริงจังได้แล้ว จึงลองเล่นสัก 2 features ประกอบไปด้วย RepeatTest DynamicTest ให้ทำงานในรูปแบบ Parameterized มาเขียน code กันดีกว่า

Read More…

สรุปเกี่ยวกับการเข้าซื้อ GitHub ของ Microsoft จาก #movingtogitlab

หลังจากทาง Microsoft ประกาศการซื้อ GitHub อย่างเป็นทางการ ถือว่าสั่นสะเทือนวงการ software development มากพอควร ซึ่งมีทั้งข่าวดี ข่าวร้าย ออกมามากมาย ซึ่งส่งผลดีและผลเสีย หนึ่งในนั้นคือ การย้ายออกจาก GitHub ไปยัง GitLab มี Hashtag ใน Twitter ที่น่าสนใจคือ #movingtogitlab ลองติดตามดูได้ ว่ามีผลกระทบอะไรเกิดขึ้นบ้าง ซึ่งมีความน่าสนใจมิใช่น้อย มาดูกันว่า มีอะไรที่น่าสนใจบ้าง

Read More…

สรุปการแบ่งปันเรื่อง การเริ่มต้นพัฒนาระบบงานด้วยภาษา Go

พอดีได้มีโอกาสไปแบ่งปันความรู้เรื่อง การเริ่มต้นพัฒนาระบบงานด้วยภาษา Go ให้กับน้อง ๆ ที่เข้ามาฝึกฝนในค่าย The SCK SEAL Team นิดหน่อย ซึ่งใช้เวลาในการแนะนำและแบ่งปันไปประมาณ 1-2 ชั่วโมง ประกอบไปเรื่องพื้นฐานดังนี้

Read More…

ว่าง ๆ มาปรับปรุงการทำงานของ Spring Boot ให้เร็วขึ้น

ปัญหาที่พบเจอในการทดสอบระบบที่พัฒนาด้วย Spring Boot เมื่อเริ่มเขียนชุดการทดสอบของระบบที่พัฒนาด้วย Spring Boot นั้น ชีวิตก็จะสบายขึ้นมาเยอะ เนื่องจาก Spring Boot ได้เตรียม Spring Boot Unit test หรือ Integration test มาให้อยู่แล้ว แต่ขั้นตอนการทำงานภายในนั้น มันจะทำการสร้าง context ขึ้นมาทุกครั้ง ดังนั้นผลที่ตามมาคือ “ความช้า” และนี่แหละคือปัญหาที่ต้องเจอ จะแก้ไขหรือปรับปรุงอย่างไร เพื่อให้ทำการทดสอบได้รวดเร็วขึ้น

Read More…

ว่าด้วยเรื่องของ Scope ในภาษา Go

เห็นในกลุ่มภาษา Go นั้นมี quiz เรื่องของ Declaration และ Scope ในภาษา Go รวมไปถึงเรื่องของ Block อีกด้วย อ่าน code ใน quiz แล้วยังงง ๆ เลยไปนั่งดู Specification ของภาษาหน่อย พบว่ามีรายละเอียดเยอะจริง ๆ ดังนั้นลองมาเขียน code กันหน่อย

Read More…

ลดละเลิกการเขียน Log เพื่อ Debug ระบบงานกันเถอะ

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

Read More…

[Java] มาลองใช้งาน Test containers กัน

โดยปกติการทดสอบในระดับ integration test และ component นั้น มักจะทดสอบผ่านระบบจริง ๆ ซึ่งควบคุมได้ยาก ยกตัวอย่างเช่น การทดสอบกับ Database, Data store รวมไปถึงการทดสอบระดับ UI/Acceptance test ซึ่งต้องทดสอบผ่าน browser แน่นอนว่า การจัดการนั้นไม่ง่ายเลย แต่เมื่อเข้าสู่ยุคของ container แล้วนั้น เรื่องต่าง ๆ เหล่านี้จะง่ายขึ้น แต่แลกมาด้วยการเรียนรู้และเครื่องที่แรงขึ้น หนึ่งในเครื่องมือนั้นคือ Test containers ซึ่งเป็น library ที่พัฒนาด้วยภาษา Java 1.8 ที่สำคัญคือ ใช้งานร่วมกับ JUnit ได้เลย เหมาะมากสำหรับการทดสอบระบบงาน

Read More…

ว่าง ๆ มาทำทำความรู้จักกับ Navigation Architecture Component

จากงาน Google I/O 2018 นั้นมีหลายสิ่งอย่างมาก ๆ สำหรับชาว Android จะเห็นได้ว่าทำการสรุปและรวบรวมชุดเครื่องมือต่าง ๆ ไว้ในชื่อใหม่ว่า Android Jetpack ซึ่งช่วยทำให้การพัฒนาง่ายและสะดวกขึ้น ลดจำนวน code ขยะหรือที่ไม่จำเป็นลงไป รวมทั้งช่วยพัฒนาระบบที่มีคุณภาพและเสถียรอีกด้วย บอกได้คำเดียวว่าเพียบ มีทั้งของเก่าและใหม่ มีตัวหนึ่งที่น่าสนใจคือ Navigation หรือ Navigation Architecture Component ดังนั้นมาทำความรู้จักกันหน่อย จะเข้าใจง่ายขึ้น ก็ต้องใช้งานสิ มาเริ่มกันเลย

Read More…

บันทึกการเขียน Unit test สำหรับ RxJava บน Android app ไว้นิดหน่อย

จดบันทึกไว้นิดหน่อยสำหรับการเขียน Unit test สำหรับทดสอบ Android app ที่พัฒนาด้วย Reactive for Java 2.x (RxJava) ซึ่งมีโครงสร้างง่าย ๆ คือ Presenter สำหรับควบคุมการทำงานหลักของระบบ Repository สำหรับจัดการการดึงข้อมูลจาก REST APIs โดยนำ RxJava มาใช้ในส่วนของ Presenter เพื่อทำงานกับการดึงข้อมูลจาก Repository คำถามที่ตั้งไว้คือ จะทำการทดสอบในส่วนของ Presenter อย่างไรดี ? เพราะว่ามีการใช้งานทั้ง Repository หนักกว่านั้นคือ RxJava นั่นเอง ดังนั้นมาเขียนชุดทดสอบกันดีกว่า

Read More…