golang Archive

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

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

Read More…

ทำความรู้จักกับ embed package ใน Go 1.16

ใน Go 1.16 นั้นจะมี core library ใหม่เพิ่มเข้ามา ชื่อว่า Embedded filesโดยจะอยู่ใน package embed และมี package ใหม่ชื่อว่า io/fs สำหรับการอ่านไฟล์แบบ read-onlyในการเข้าถึงไฟล์ง่าย ๆ ด้วยการใช้ directive go:embedเพื่อความเข้าใจ มาดู codeกัน

Read More…

คำถาม :: ทำการ Reload ระบบงานที่พัฒนาด้วยภาษา Go กับ Docker ?

มีคำถามที่น่าสนใจคือ ถ้าเราพัฒนาระบบด้วย Go ร่วมกับ Docker แล้ว ต้องการทำให้ระบบงาน reload อัตโนมัติ เมื่อทำการเปลี่ยนแปลง code โดยไม่ต้อง restart Docker container ใหม่ ต้องทำอย่างไร

Read More…

มาลองใช้งาน Digital Ocean App Platform

เพิ่งเห็นทาง DigitalOcean ปล่อย PaaS (Platform as a Service) ใหม่ออกมาในชื่อว่า DigitalOcean App Platform ช่วยทำให้ผู้ใช้งานสามารถ deploy ระบบงานได้ง่ายและสะดวกมากขึ้น โดยมีแนวคิดง่าย ๆ  คือ Focus on Code, Not Servers ดังนั้นมาลองใช้งานกันหน่อยว่า ง่ายจริงไหม

Read More…

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

[Golang] สรุปการใช้งาน environment variable

สำหรับการจัดการพวกค่า configuration ต่าง ๆ ของระบบงาน จาก 12-factor นั้นแนะนำให้จัดการผ่าน environment variable เพื่อแยกระหว่าง code และ configuration ต่าง ๆ ออกจากกันในแต่ละ environment และช่วยลดปัญหาเรื่อง security อีกด้วย

Read More…

[Golang] แก้ไข banner ของ Echo framework

ไปนั่งดูแนวทางในการเปลี่ยน banner ของการ start ระบบที่พัฒนาด้วย Echoพอไปนั่งไล่ดู code และ issue เกี่ยวกับเรื่องนี้ซึ่งมี Issue#1286 ทำเรื่องนี้ก็เห็นแนวทางที่ทีมพัมนาเขาแนะะนำว่าไม่ต้องแก้ไขที่ตัว Echo นะเพียงแค่ทำการ disable banner ไปก่อนจากนั้นก็ print สิ่งที่ต้องการเอง ก็เท่านั้นเองคิดอะไรให้มากมายไปทำไม มานั่งคิดดี ๆ ก็ง่ายและสะดวกดีด้วยนะ เลยบันทึกแนวคิดไว้เตือนตัวเองนิดหน่อย

Read More…

Vite 0.12.0 ได้นำ esbuild มาใช้งาน

จาก blog เรื่องสวัสดี Vite แปลว่า เร็ว อ่านว่า วิท (vit)ในตอนนี้ได้ออก version 0.12.0 มาแล้วซึ่งได้นำ esbuild เข้ามาใช้สำหรับการแปลง TypeScript รวมไปถึง JSX และ TSX มาเป็น JavaScript codeแน่นอนว่า esbuild มันทำงานเร็วมาก ๆ

Read More…

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

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

Read More…