Practice Archive

[Part 2] มาต่ออีก 4 ข้อ สำหรับการพัฒนาระบบตามแนวคิด 12 Factor

หลังจากที่ลองพัฒนาระบบด้วยภาษา Python ตามแนวคิด The Twelve Factor App มาแล้ว 4 ข้อคือ Codebases Dependencies Configs Backing services ซึ่งยังเหลืออีก 8 ข้อ ดังนั้นมาต่อกันให้จบ โดยทั้ง 8 ข้อนี้จะเข้ากันมาก ๆ กับโลกของ Containerization ในตัวอย่างจะเน้นไปที่ Docker เป็นหลัก มี Kubernetes มาผสมบ้างเล็กน้อย ปล. เขียนไปเขียนมาทำไมมันยาว ดังนั้นเพิ่มแค่ 4 ข้อเป็น 8 ก็แล้วกัน ที่เหลืออีก 4 ข้อ เอาไว้อีก blog มาเริ่มกันเลย ข้อที่ 5 Build, release, run Strictly separate build and run stages [&hellip

Read More…

[Part 1] ว่าง ๆ มาลองพัฒนาระบบด้วยภาษา Python ตามแนวคิด 12 Factor กัน

ช่วงหลังมีการพูดถึง The Twelve -Factor App กันเยอะ แต่ไม่ค่อยบอกหรือแสดงให้ดูว่ามันทำอย่างไรบ้าง ? ดังนั้นเราลองมาพัฒนาระบบงานแบบง่าย ๆ ตามแนวคิดนี้กันดู (ตามความเข้าใจที่มีนะ ผิดถูกก็ตามข้างล่างนี้) มาเริ่มกันดีกว่า ปล. ยิ่งรู้ว่าผิดเร็ว ก็จะทำถูกได้ไว

Read More…

มาดูโครงสร้าง code ของ Google I/O 2018 app for Android กัน

จาก session Architecture Components in Real Life (Android) ในงาน Mobile Conf 2018 มีคำถามหนึ่งที่น่าสนใจคือ ทาง Google ได้ปล่อย source code ของ Google I/O 2018 app ออกมา เหล่า Android developer ได้เข้าไปดู เข้าไปศึกษาหรือไม่ ? คำตอบที่ได้รับกลับมาคือ เงียบ (อาจจะมีคนเข้าไปดูก็ได้ แต่ไม่แสดงตัวเท่านั้นเอง) เป็นสิ่งที่แปลกมาก ๆ นะ (หรือเป็นเรื่องปกติไปแล้วนะ) ดังนั้นเหล่า Android developer มาลองศึกษากันหน่อย ว่า Google I/O 2018 app นั้นเขาพัฒนากันออกมาอย่างไร ? มีโครงสร้างอย่างไรบ้าง ? ดังนั้นมาลองดูกัน

Read More…

วันนี้เราลบ code ที่ไม่ใช้งาน แล้วหรือยัง ?

เพิ่งไปแบ่งปันเรื่องของ Code Quality มีหนึ่งเรื่องที่น่าสนใจคือ dead code หรือ code ที่ไม่ถูก execute หรือ code ที่ไม่ถูกใช้งาน หรือ code ที่ comment ไว้ ทั้ง ๆ ที่ใช้ version control หรือหนักสุดคือ code ที่สร้าง feature ที่ไม่มีผู้ใช้งาน คำถามคือ ทุกวันนี้เรายังดูแลรักษา code เหล่านี้ไว้กันหรือไม่ ? ลองตอบกันหน่อยนะ

Read More…

ระบบที่ดีควรมีสิ่งต่าง ๆ เหล่านี้บ้างนะ

ระหว่างรอรถกลับบ้าน ทำการสรุปสิ่งที่จำเป็นต่อการพัฒนาระบบงาน แต่ในปัจจุบันเราพยายามแยกระบบงานใหญ่ออกเป็น service เล็ก ๆ หรือบางคนอาจจะเรียกว่า Microservices สิ่งที่น่าสนใจคือ ในการพัฒนาระบบงานนั้น เราต้องคำนึงถึงอะไรบ้าง

Read More…

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

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

Read More…

สิ่งที่ควรทำก่อนจะเริ่ม Microservices

ในเรื่องของ Microservices นั้นเรามักจะพูดกันถึง จะออกแบบ และ แยก service ออกมาเป็น Microservices กันอย่างไร ? จะต้องพัฒนาอย่างไร ? จะต้องทดสอบอย่างไร ? จะต้องดูแลอย่างไร ? แต่ก่อนที่จะไปกันไกล ให้กลับมาดูตัวเราเองก่อนว่า มีสิ่งที่ Microservices ต้องการหรือยัง ? ซึ่งเป็นความรู้และสิ่งจำเป็นพื้นฐานอย่างมาก

Read More…

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

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

Read More…

เริ่มต้นเขียน Automation Test กันดีกว่า

มีโอกาสแบ่งปันเรื่องการทดสอบระบบงานแบบอัตโมมัติ (Automation Test) ทั้ง Web, API และ Mobile ใช้การทดสอบเป็นตัวหลักในการขับเคลื่อนการพัฒนา software เป็นสิ่งที่สำคัญและขาดไปไม่ได้เลย ช่วยทำให้เรามีความเชื่อมั่นต่อ code ที่เขียน อีกทั้งลดความกลัวจากการแก้ไข และช่วยให้เรากล้าทดลองทำในสิ่งใหม่ ๆ อีกด้วย แต่สำหรับการเริ่มต้นมันไม่ง่ายเลย จึงทำการสรุปสิ่งที่ควรจะรู้ไว้นิดหน่อย

Read More…

แนะนำ Appraise สำหรับ Visual Testing แบบอัตโนมัติ

ในการพัฒนา software นั้น เรื่อง Look and Feel เป็นสิ่งที่สำคัญมาก ๆ software มีเพียงความสามารถที่ดียังไม่พอ ต้องดูดี สวยงามและใช้งานง่ายอีกด้วย คำถามที่น่าสนใจคือ เราทำการทดสอบกันอย่างไร ? แต่อาจจะกว้างไป เอาแคบลงมาคือ เราทำการทดสอบในส่วนของการแสดงผลอย่างไรบ้าง ? ในเชิงของการทดสอบจะเรียกว่า Visual Testing

Read More…