ว่าด้วยเรื่องของ Goroutine และ Channel

ไปฟังเรื่อง Goroutine, Channel และ Parallelism จากงาน Go Get # 2 จากกลุ่ม Golang Thailand ก็เลยกลับมานั่งสรุปกันนิดหน่อย เพราะว่าเป็นเรื่องที่มีโอกาสใช้งานน้อยมาก ๆ ตั้งแต่ทำ project ด้วยภาษา Go มาเคยใช้เพียง project เดียวเอง เลยกลับมาสรุปเพื่อทำความเข้าใจกันหน่อย โดยเริ่มจากเรื่องง่าย ๆ ก่อนคือ Goroutine และ Channel ซึ่งเป็นเรื่องพื้นฐานสุด ๆ แต่ก็ไม่ง่ายเลยนะ มาเริ่มกันเลย

Read More…

ใส่สีให้กับการทดสอบสำหรับภาษา Python

ปัญหาและความต้องการ หลังจากที่ทำการ run test ที่พัฒนาด้วยภาษา Python ซึ่งใช้งานผ่าน module unittest เมื่อทำการ run ได้แล้วพบว่า ผลลัพธ์ที่ออกมามันไม่สวย นั่นคือไม่มีสีสันอะไรเลย ดูลำบาก

Read More…

ปรับปรุง productivity ด้วย code ที่ดีกันหน่อย

Code ที่ดีนั้นอาจจะไม่ได้สร้างหรือส่งมอบ product ที่ดีเสมอไป แต่ code ที่ดีมันกลับทำให้คนที่ดูแลง่าย และ มีชีวิตที่สงบสุขมากขึ้น คำว่า Code ที่ดีนั้นมีหลายรูปบบ หลายความหมาย ตามแต่ประสบการณ์ ความรู้ และ สิ่งแวดล้อม แต่มุมมองที่น่าสนใจคือ Code ที่ดีมันน่าจะต้องเพิ่มหรือปรับปรุง productivity ให้กับเราสิ จากที่ได้พูดคุยกับเหล่านักพัฒนาก็แนะนำดังนี้

Read More…

[Part 3] ภาคจบสำหรับการพัฒนาระบบตามแนวคิด 12 Factor

มาทำความรู้จักกับ 4 ข้อสุดท้ายสำหรับ The Twelve-Factor App โดยในส่วนนี้จะเป็นส่วนของผู้ดูแลระบบ ประกอบไปด้วย Disposability Dev/prod parity Logs Admin processes มาดูในรายละเอียดกัน

Read More…

[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…

แนะนำหนังสือ online :: Learn Go with Tests

มีหนังสือ online สอนเกี่ยวกับการพัฒนาระบบงานด้วยภาษา Go ที่น่าสนใจเพียบ ยกตัวอย่างเช่น Building Web Application with Golang Go by Example A Tour of Go แต่ก็มีอีกเล่มที่น่าสนใจนั่นคือ Learn Go with Tests

Read More…

สรุปสิ่งที่น่าสนใจจากหนังสือ Accelerate: The Science of Lean Software and DevOps

ช่วงวันหยุดหยิบหนังสือ Accelerate: The Science of Lean Software and DevOps มาอ่าน เป็นหนังสือที่สรุปส่วนประกอบต่าง ๆ ที่ช่วยให้บริษัท IT ขับเคลื่อนได้อย่างดี (high-performance) ทั้งองค์กรและทีม โดยทำการสรุปข้อมูลมาจาก State of DevOps Report ตั้งแต่ปี 2014 จาก State of DevOps Report นั้น ทำให้เข้าใจได้ว่า การนำแนวคิด DevOps นั้น ต้องนำแนวปฏิบัติ (Practice) อะไรมาใช้บ้าง ? วัฒนธรรมขององค์กรต้องเอื้อและสนับสนุนอย่างไร ? เพื่อปรับปรุงการพัฒนาและส่งมอบระบบงานให้เร็วและมีคุณภาพ (Correctness, Performance และ Security) ส่งผลให้ได้รับ feedback เพื่อปรับปรุง

Read More…

ทำการ deploy ระบบงานกับ Istio กัน

หลังจากอธิบายเกี่ยวกับ Istio ไปนิดหน่อย ดังนั้นเพื่อให้เห้นภาพชัดเจนขึ้น มาลองติดตั้ง และ deploy ระบบงานกันดีกว่า โดยใน blog นี้ทำการติดตั้งบน Kubernetes engine ของ Google Cloud เนื่องจากติดตั้งบน local แล้ว memory ไม่พอ !! มาเริ่มกันดีกว่า

Read More…

แก้ปัญหาขนาดหน้าจอของ Google Chrome Headless

ในการทดสอบระบบ web application ผ่าน Robotframework ด้วย Library ชื่อว่า SeleniumLibrary นั้น เราสามารถทดสอบบน Google Chrome แบบ Headless ได้ (selenium 3.8 และ seleniumlibrary 3.1 ขึ้นไปนะ) แต่ปัญหาที่เจอคือ ทำไมทดสอบแบบปกติโดยการเปิด Google Chrome ไม่มีปัญหา แต่เมื่อเปลี่ยนมาใช้ Headless mode มีปัญหา ? คือทดสอบไม่ผ่าน เช่นหา element บางตัวไม่เจอ มาหาคำตอบ พร้อมการแก้ไขกันหน่อย

Read More…