สวัสดี vgo (Versioned Go) จาก Go version ล่าสุด

เนื่องจากอยากลองใช้งาน vgo ทำหน้าที่จัดการ dependency หรือ library ต่าง ๆ เห็นบอกว่าเป็น feature ที่จะเพิ่มเข้ามาใน Go 1.11 ดังนั้นจึงไปลองเล่น feature นี้กันหน่อยว่าเป็นอย่างไร ว่าแล้วก็เริ่มกันเลย

Read More…

บันทึกการ publish ระบบที่พัฒนาด้วย Angular 6 ขึ้น Github Pages

พอดีต้องทำการให้ส่งงานที่พัฒนาด้วย Angular 6 ขึ้น Github Pages ซึ่งพบว่า Angular 6 มีสิ่งที่เปลี่ยนไปนิดหน่อย เลยทำการสรุปขั้นตอนไว้นิดหน่อย ดังนี้

Read More…

มาลองใช้งาน Cotton สำหรับทดสอบ RESTful API กัน

วันนี้ได้ลองใช้งาน Cotton เป็นเครื่องมือสำหรับการทดสอบ RESTFul API ได้รับแรงบันดาลใจมากจาก Silk (คนทำน่าจะเลิกทำหรือดูแลไปแล้ว) ดังนั้นทางพี่อูเลยพัฒนา Cotton ขึ้นมา ซึ่งยังคงเขียน test case ในรูปแบบไฟล์ Markdown เช่นเดิม เพิ่มเติมคือความสวยงามและการใช้งานที่ง่ายขึ้น ดังนั้นเรามาลองใช้งานกัน

Read More…

เรียนรู้ภาษา Go สำหรับ NodeJS Developer

เห็นว่า NodeJS กำลังร้อนแรง เลยขอนำเสนอวิธีการเรียนรู้ภาษา Go สำหรับ NodeJS Developer กันหน่อย (เกี่ยวกันไหมนะ ?) ซึ่งเป็นการเรียนรู้ตามสิ่งที่ชาว NodeJS ต้องรู้และใช้งานเป็นปกติ แต่มาดูกันว่า ถ้าใช้ภาษา Go ต้องทำอย่างไรบ้าง น่าจะทำให้เรียนรู้ง่ายขึ้น

Read More…

ว่าด้วยเรื่องของ Law of Demeter

หลังจากทำการ review code ไปนิดหน่อย พบว่าได้เจอ code ที่น่าสนใจ เนื่องจากจะขัดกับ Law of Demeter พอควร ผลที่ตามมาคือ code ทำงานได้ แต่มีการเรียกต่อกันเป็นทอด ๆ ยาวมาก ๆ ยกตัวอย่างเช่น game.Board.Size.X และ g.Board.Slots[i][j].Number เป็นต้น แต่ตามจริงเราต้องการเพียงค่าสุดท้ายเท่านั้นเอง ทำไมเราต้องเขียน code ยาวขนาดนี้กันด้วย ? น่าคิดมาก ๆ หรือเราคิดว่า มันคือเรื่องปกติ เพราะว่า โครงสร้างของระบบเราเป็นแบบนี้ ? ดังนั้นมาปรับปรุง code ชุดนี้กันหน่อยดีไหม

Read More…

เครื่องมือสำหรับจัดรูปแบบ code และ naming convention ในภาษา Go

เรื่องของรูปแบบ code และ naming convention เป็นสิ่งที่สำคัญมาก ๆ โดยในภาษา Go นั้นไม่ได้มีกฏเรื่องนี้มากนัก แต่ก็ได้สร้างเครื่องมือมาตรฐานสำหรับการจัดการมาให้ นั่นก็คือ gofmt ซึ่งนักพัฒนาภาษา Go น่าจะใช้กันทุกคน ไม่ว่าจะพิมพ์เอง ไม่ว่าจะให้ทำงานแบบอัตโมัติ หรือ ทำงานผ่าน Editor/IDE ต่าง ๆ เช่นทำการจัดรูปแบบ code ให้เมื่อทำการบันทึกเป็นต้น ผลที่ตามมาคือ รูปแบบของ code เหมือนกัน ไม่ต้องมาเถียงกัน และยังทำให้ code อ่านง่ายขึ้นอีกด้วย

Read More…

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

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

Read More…

สรุปเรื่องของการพัฒนา Testable application ด้วยภาษา Go

มีโอกาสมาแบ่งปันความรู้เรื่อง การพัฒนาระบบด้วยภาษา Go ให้พัฒนาได้ง่าย ให้ทดสอบได้ง่าย ให้ดูแลได้ง่ายขึ้น โดยสิ่งที่แบ่งปันประกอบไปด้วย เรื่องของโครงสร้างที่ต้องชัดเจน เรื่องของหน้าที่การทำงานของแต่ละส่วน เรื่องแนวคิดในการทดสอบ เพื่อเพิ่มความมั่นใจที่มีต่อระบบ เรื่องแนวทางการพัฒนาด้วยภาษา Go เรื่องของเครื่องมือและ library ต่าง ๆ ที่นำมาใช้งาน

Read More…

ว่าด้วยเรื่องของ Burnout Programmer

เพิ่งคุยเล่น ๆ กับกลุ่ม programmer นิดหน่อย ได้พูดคุยเรื่องของ Burnout Programmer ว่าเป็นอย่างไร ? เป็นเรื่องที่น่าสนใจมาก ๆ และมันอาจจะกลายเป็นปัญหาและวิกฤติได้เลย (หรือเป็นอยู่แล้ว) ประเด็นหลัก ๆ ที่คุยกันคือ ปัญหาของการ burnout มีอะไรบ้าง

Read More…

สรุปเนื้อหาในช่วงบ่ายของงาน React Bangkok 3.0.0

เนื่องจากเนื้อหาของงาน React Bangkok 3.0.0 นั้นเยอะและแน่นมาก จึงทำการแยกเนื้อหาในช่วงบ่ายออกมาเป็น blog ที่สอง ดูรายละเอียดของ session ช่วงเช้าได้ ซึ่งประกอบไปด้วยหัวข้อดังนี้ การจัดการ State ด้วย MobX Animating in React (ภาษาอังกฤษ) ว่าด้วยเรื่อง React Design Pattern ประสบการณ์ในการใช้งาน Expo และ GraphQL ประสบการณ์การพัฒนาระบบงานด้วย React ของ Telenor การ Tuning performance ของ React app การทดสอบสำหรับ React app ว่าด้วยเรื่องการจัดการ State ของ React app ประเด็นคือเลือกใช้แต่ละอย่างด้วยเหตุผลอะไร ทำการสรุปแบบสั้น ๆ ไว้นิดหน่อย มาดูกันเลย

Read More…