golang Archive

บันทึกการพัฒนาระบบงานด้วย Angular 6 และ Golang

พอดีเพิ่งทำระบบ web application แบบเร็ว ๆ ซึ่งมี feature ไม่เยอะ จึงเลือกใช้เทคโนโลยีที่ไม่ค่อยใช้งานหรือถนัดมากนัก เพื่อลองฝึกฝน แต่ฝึกบนงานจริง ๆ น่าจะทำให้เราศึกษาได้รวดเร็วขึ้น หรือไม่ก็ล่มไม่เป็นท่า !! โดยเทคโนโลยีที่เลือกใช้งานเป็นดังนี้ Frontend พัฒนาด้วย Angular 6 Backend พัฒนาด้วยภาษา Go จัดการ source code ด้วย Git ทำการ build และ deploy ด้วย Docker (ใช้งาน docker-compose) ทำการ deploy ระบบงานบน Google Cloud แบบฟรี 300 USD เป็นเวลา 1 ปี มาดูว่าการพัฒนาเป็นอย่างไรบ้าง

Read More…

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

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

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…

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

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

Read More…

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

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

Read More…

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

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

Read More…

สรุปแหล่งเรียนรู้และติดตามข่าวสารของภาษา Go

ในกลุ่ม Golang Thailand มีการพูดเรื่องเกี่ยวกับ แหล่งเรียนรู้และติดตามข่าวสารเกี่ยวกับภาษา Go ว่ามีที่ไหนบ้าง ? ซึ่งก็มีแหล่งที่มาเพียบเลย ดังนั้นทำการสรุปไว้นิดหน่อย

Read More…

สิ่งที่น่าสนใจสำหรับ บทความเกี่ยวกับย้ายจาก PHP มายังภาษา Go ของ Kairos

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

Read More…