Practice Archive

ความเข้าใจผิดเกี่ยวกับ Unit test คือทำแล้วไม่มี Bug !!

เมื่อหลายวันก่อนพูดคุยเกี่ยวกับ Unit testing เลยได้มีโอกาสแลกเปลี่ยนมุมมองต่อการเขียนและการนำมาใช้งานนิดหน่อย ซึ่งสิ่งหนึ่งที่น่าสนใจคือ ความเข้าใจผิด ยกตัวอย่างเช่น ถ้าเรามี Unit tests แล้ว bug ของระบบจะไม่มี ถ้าเรามี Unit tests แล้วคุณภาพของระบบต้องดีแน่ ๆ รวมทั้ง code ด้วย ถ้า Unit tests มันไม่มีประโยชน์อะไร ก็ไม่ต้องทำ เลยนำมาอธิบายไว้นิดหน่อย

Read More…

วันนี้นักพัฒนาเขียน TODO และ FIXME ใน code แล้วหรือยัง ?

วันนี้นั่งดู code ช่วงบ่ายในขณะที่ฝนกำลังถล่ม กทม เจอชุด comment ที่น่าสนใจ ซึ่งนักพัฒนาทุกคนน่าจะเคยเห็นผ่านตามาแล้ว ทั้งเกิดจากการ generate แบบอัตโนมัติจาก IDE ทั้งเขียนจากคนอื่น รวมทั้งตัวเราเองด้วย นั่นคือ TODO และ FIXME คำถามที่น่าสนใจคือ มันคืออะไร ? เขียนไว้ทำไม ? ทำไมไม่มีใครมาลบมันออก ? มาหาคำตอบกัน

Read More…

ปัญหาจากการนำ DevOps มาประยุกต์ใช้งาน

จากบทความเรื่อง Why DevOps Efforts Fail ? เป็นเรื่องเกี่ยวกับปัญหาเมื่อนำเอา DevOps มาประยุกต์ใช้ จึงนำมาแปลและสรุปไว้นิดหน่อย เป้าหมายของ DevOps นั้นเรียบง่ายมาก ๆ คือ ส่งมอบ software ให้ราบรื่น ส่งมอบ software ให้รวดเร็ว ส่งมอบ software ที่มีความน่าเชื่อถือ ส่งมอบ software ที่มีคุณภาพ

Read More…

สรุปสิ่งที่น่าสนใจจาก paper เรื่อง Continuous Deployment of Mobile Software at Facebook (Showcase)

อ่านบทความเรื่อง Rapid release at massive scale จาก Facebook แล้วไปเจอ paper ที่ทาง facebook เขียนไว้คือ Continuous Deployment of Mobile Software at Facebook (Showcase) ตามจริงมี paper ที่เกี่ยวข้องอีกหลายฉบับเลย ใน paper ฉบับนี้มีความน่าสนใจในเรื่อง Release cycle ของ mobile app ทั้ง iOS และ Android การจัดเก็บข้อมูลต่าง ๆ ที่เกี่ยวกับการ release และ deployment การทดสอบระบบงาน มีการสรุปข้อมูลต่าง ๆ ของการพัฒนาอีกด้วย ดังนั้นมาดูกันนิดหน่อย

Read More…

ว่าด้วยเรื่องการทดสอบระบบงานกับ Database

มีคำถามเกี่ยวกับการทดสอบระบบงานกับพวก Database ชนิดต่าง ๆ ทั้ง RDBMS (Relational DataBase Management System) ทั้ง NoSQL เช่น Document, Key-value, Column และ Graph อีกทั้ง Time series ว่าจะทดสอบกันอย่างไรดี ? ต้องทำการ mock/stub database ไหม ? ต้องเขียน code อย่างไรเพื่อให้ทดสอบได้ง่าย (Testable) ? ต้องทำอย่างไร

Read More…

เกร็ดเล็กเกร็ดน้อยสำหรับ Android Developer มือใหม่

ช่วงนี้มีโอกาสมาสอนการพัฒนา Android app สำหรับมือใหม่ เหมือนกับการมาแบ่งปันประสบการณ์ในการพัฒนาระบบงาน ว่ามีสิ่งใดที่ต้องศึกษา ต้องรู้ ว่ามีสิ่งใดที่ควรศึกษา ว่ามีสิ่งใดที่ไม่ควรทำ เลยสรุปไว้เป็นข้อ ๆ ไว้นิดหน่อย เผื่อจะมีประโยชน์กันบ้าง

Read More…

สรุป Podcast ที่น่าสนใจสำหรับนักพัฒนาไว้นิดหน่อย

การเรียนรู้เรื่องต่าง ๆ อย่างต่อเนื่องสำหรับนักพัฒนา ไม่ว่าจะเรียนรู้จากหนังสือ ต่าง ๆ ไม่ว่าจะเรียนรู้จาก web/blog/article ต่าง ๆ ไม่ว่าจะเรียนรู้จาก course online ไม่ว่าจะเรียนรู้จาก podcast ไม่ว่าจะเรียกรู้ทางช่องทางใด ๆ ก็ตาม เป็นสิ่งที่จำเป็นและสำคัญอย่างมาก ดังนั้นจึงสรุป Poscast ที่น่าสนใจและที่ติดตามอยู่ไว้นิดหน่อย ใครสนใจก็ลองไปฟังหรือ download มาฟังเล่น ๆ ดูนะครับ น่าจะสะดวกสำหรับการฟังด้วยโทรศัพท์ มันสนุกดีนะ

Read More…

อะไรคือตัวการสำคัญที่ขัดขวางการทำ CI/CD

แนวคิด Continuous Integration และ Continuous Delivery/Deployment นั้น เป็นสิ่งที่สำคัญมาก ๆ สำหรับการพัฒนา software มันไม่ใช่เรื่องของ process เพียงอย่างเดียว มันไม่ใช่เรื่องของ tool เพียงอย่างเดียว มันไม่ใช่เรื่องของ culture เพียงอย่างเดียว มันไม่ใช่เรื่องของทีมพัฒนาเพียงอย่างเดียว แต่มันคือเรื่องของการเปลี่ยนจาก requirement มาเป็นสิ่งที่อยู่ในคนใช้หรือสร้างคุณค่าให้กับลูกค้าและบริษัทนั้น ๆ อย่างต่อเนื่องและมีคุณภาพ

Read More…

เราควรสร้าง Environment ต่าง ๆ ของระบบงานตอนไหนกัน ?

สิ่งที่น่าสนใจในการพัฒนา software คือ เราทำการเตรียม environment ต่าง ๆ เช่น ทั้ง Dev, Test/QA, UAT, Staging, Pre-Prod และ Prod กันตอนไหน ? ที่สำคัญคือ แต่ละ environment นั้นเหมือนหรือต่างกัน ? ซึ่งสิ่งต่าง ๆ เหล่านี้มันสะท้อนความสัมพันธ์ระหว่าง Development team และ Pre/Production team ว่าเป็นอย่างไร

Read More…

งานของ Developer เสร็จตอนไหน ?

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

Read More…