go Archive

[Golang] การจัดการ Timezone กับ Docker container ที่สร้างจาก Scratch image

ใน Golang 1.15 นั้นทำการเพิ่ม timezone database เข้ามา ซึ่งอยู่ใน package time/tzdata ผลที่ตามมาคือ ไม่ต้องกังวลกับการจัดการ Timezone database อีกต่อไป เพียงแค่ทำการกำหนดว่า ระบบของเราอยู่ใน Timezone ไหนเท่านั้นเอง ทำให้เราทำงานกับพวกเวลาได้อย่างถูกต้องแล้วมาลองดูการใช้งานง่าย ๆ กัน

Read More…

สวัสดี Go 1.15

หนึ่งสิ่งที่ทำการปรับปรุงใน Golang 1.15 นั่นก็คือ Linkerส่งผลให้ขนาดของ binary ที่สร้างออกมานั้นมีขนาดลดลงอย่างมาก โดยเปรียบเทียบกับ version 1.14 แล้ว ขนาดจะลดไป 5-10% กันเลยทั้ง library ที่ถูกประกาศ แต่ไม่ถูกใช้งาน หรืออาจจะใช้งานในขณะ runtime เท่านั้น ยิ่ง binary มีขนาดเล็กลงมาก ก็ย่อมส่งผลประโยชน์ต่อการพัฒนาและ deploy มากด้วยเช่นกัน

Read More…

เขาบอกว่า ไฟล์ binary ที่ได้จาก Go 1.15 ขนาดเล็กลงมาก ๆ

จาก Tweet ของคุณ Brad Fitzpatrick บอกว่าไฟล์ binary ที่ได้จากการ build ของ Go 1.15 ที่จะออกมาใน release ต่อไป ขนาดของไฟล์ลดลงไปเกือบ 50% เพื่อให้หายข้องใจก็ลองดูหน่อย ว่าเป็นจริงไหม

Read More…

Golang :: บันทึกการใช้งาน module จาก private Git repository

ปัญหา ต้องทำการเก็บและใช้งาน Go module แบบ private แน่นอนว่า มีทั้งภายในและภายนอกองค์กร ปัญหาที่เจอคือ ทำอย่างไรดี

Read More…

[Golang] มาดูหน่อยว่า go มีเครื่องมืออะไรให้ใช้งานบ้าง

คำถามที่น่าสนใจเกี่ยวกับ go command ของภาษา Go คือ มีอะไรให้ใช้บ้าง ? คำตอบคือ มีเยอะมาก ๆ ใช้ไม่น่าหมด แต่มาดูสิ่งที่น่าจะเป็นประโยชน์ และใช้งานบ่อย ๆ กันดีกว่า

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…

ใน 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…

[Golang] ว่าง ๆ มาทำ Integration test ด้วย TestContainer กัน

หลังจากก่อนหน้านี้ เขียนอธิบายการทำ Integration test ด้วย TestContainer กับภาษา Javaตอนนี้ทางผู้พัฒนาได้เพิ่มสำหรับภาษา Go เข้ามาให้แล้ว ชื่อว่า TestContainer Goจะรอช้าทำไม ลองไปใช้งานกันหน่อย

Read More…