golang Archive

ลองทำการ build/deploy ระบบที่พัฒนาด้วย OpenFaaS

ระบบงานี่พัฒนาด้วย OpenFaaS นั้น ในการ build และ deploy จะสร้าง container image ในรูปแบบของ OCI นั่นทำให้เราสามารถ deploy ระบบได้หลากหลายวิธี ยกตัวอย่างเช่น Docker Docker + Buildkit Buildkit standalone Img Pouch Podman Buildah K3s Kanico เยอะไปไหนนะ ? แต่เรามาลอง deploy ด้วยบางตัวกันนิดหน่อย

Read More…

Golang :: เจอปัญหาเรื่อง concurrency กับข้อมูลที่เก็บใน Map

วันนี้ทำการเขียน RESTful API ด้วยภาษา Go ซึ่งมีการใช้ข้อมูลร่วมกัน จัดเก็บในรูปแบบของ map การทำงานนั้นเป็นปกติมาก ๆ แต่เมื่อทำการลองยิง performance ดูหน่อยเท่านั้น ก็เจอ Runtime error ดังนี้ fatal error: concurrent map read and map write

Read More…

มาลองเขียน Kong plugin ด้วยภาษา Go กันหน่อย

VDO งาน Kong Summit 2019 ที่ทางนเรศแชร์มาใน facebook มีหลายอย่างที่น่าสนใจ เรื่องที่ผมสนใจคือ การเขียน Kong plugin ด้วยภาษา Go ซึ่งจะมีใน Kong gateway 2.0 นั่นเอง โดยจะอยู่ใน session Keynote:: Announcing Kong Gateway 2.0 ดังนั้นว่าง ๆ มาลองเล่นดูหน่อย

Read More…

[Golang] :: ไม่ใช้งาน for loop

พอดีเพิ่งลองทำ project ส่วนตัว เพื่อแก้ไขปัญหาบางอย่างของตัวเอง ซึ่งทำการเขียน code ด้วยภาษา Go นี่แหละ มีขั้นหนึ่งต้องทำการ filter ข้อมูลที่อยู่ใน array/slice ปกติก็ใช้งาน for loop กับ if statement นี่แหละ แต่ก่อนหน้านี้ เพิ่งเขียน JavaScript มา ซึ่งมีพวก map/reduce/filter อะไรพวกนี้ให้ แล้วในภาษา Go ละ มีไหมนะ

Read More…

แปลและสรุปเรื่อง Practical Persistence in Go: Organising Database Access

ช่วงว่าง ๆ เห็นบทความเรื่อง Practical Persistence in Go: Organising Database Access ไม่แน่ใจว่าใคร share มา แต่เมื่อได้อ่านและลองทำตามแล้วพบว่า มีสิ่งที่น่าสนใจและน่าเรียนรู้มาก ๆ จึงทำการแปลและสรุปไว้อ่านนิดหน่อย มาเริ่มกันเลย

Read More…

ย้อนกลับไปดูวันแรกของภาษา Go

วันที่ 10 พฤศจิกายนที่ผ่านมา ครบรอบ 10 ปีของภาษา Goทำให้นึกถึงวันแรกที่ภาษา Go ถูกปล่อยออกมาให้ใช้งานซึ่ง blog แรกที่ทางทีมพัฒนาภาษา Go เขียนขึ้นมา คือ Hey! Ho! Let’s Go!ใครยังจำได้บ้าง

Read More…

[Golang] ทำการ export metric ต่าง ๆ ออกมาในรูปแบบของ Prometheus

จากที่ทำการแบ่งปันเรื่องการพัฒนาระบบงานด้วยแนวคิด Microservices ด้วย Java technology มีคำถามว่า ระบบงานที่พัฒนาด้วยภาษา Go นั้น สามารถ export metric หรือค่าตัวเลขต่าง ๆ ของระบบงานที่พัฒนาได้หรือไม่ ทั้ง CPU/IO/Memory/Process  รวมไปถึงการ custom metric ต่าง ๆ ของระบบงานอีก

Read More…

ใน Go 1.13 มีอะไรที่น่าสนใจบ้าง ?

ผ่านมา 6 เดือนทางทีมพัฒนาก็ได้ปล่อย Go 1.13 ออกมาให้ใช้งาน ซึ่งมีหลายเรื่องที่น่าสนใจ แต่หนึ่งในนั้นคือ เรื่อง commpatability กับ Go 1 เสมอ (แต่ถ้า Go 2 ก็ไม่แน่นะ) มาดูว่ามีอะไรบ้าง ? การปรับปรุงเรื่อง number literal เรื่องของ Error wrapping สำหรับจัดการ error ในการ download module ต่าง ๆ จะผ่าน Go module mirror และ Go checksum database แล้ว เปิดใช้งาน TLS 1.3 by default แต่ก็สามารถปิดได้ด้วยการกำหนด tls13=0 

Read More…

Golang :: มาทำ Live-reload เมื่อ code เปลี่ยนแปลง

ว่าง ๆ เขียนโปรแกรมด้วยภาษา Go อยากให้โปรแกรมที่เขียนทำการ reload ทันที หลังจากที่ทำการเปลี่ยนแปลง code  นั่นคือทำการ build และ run ใหม่นั่นเอง มาลองหาวิธีกันดู

Read More…

หนังสือแนะนำการเขียน code ด้วยภาษา Go ให้ปลอดภัยจาก OWASP

เพิ่งเห็นว่าทาง OWASP (Open Web Application Security Project) ได้ปล่อยหนังสือเกี่ยวกับ Web Application Secure Coding Practice ด้วยภาษา Go ออกมา โดยเนื้อหายังรวมไปถึงการพัฒนา web application ด้วย ดังนี้

Read More…