go Archive

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

Golang :: ถ้าไม่ close body ของ response จะเกิดอะไรขึ้น ?

จากที่พูดคุยเรื่อง Memory leak สำหรับการใช้งาน package net/http ในภาษา Goซึ่งมี 2 เรื่องคือ ถ้าไม่ปิด body ของ request จะเกิดอะไรขึ้น ? ถ้าไม่ปิด body ของ response จะเกิดอะไรขึ้น

Read More…

สวัสดี Go module proxy

เห็นใน Go 1.13 beta 1 นั้นทำการกำหนดค่า default ของ GOPROXY ให้ จะวิ่งไปที่ https://proxy.golang.org และ direct (ออกไปยัง GitHub, bitbucket ตรง ๆ) ที่สำคัญ สามารถใส่ comma(,) ได้ด้วย นั่นคือกำหนด proxy ได้มากกว่า 1 นั่นเอง ดังนั้นเรามาลองทำความรู้จักและใช้งานกันหน่อย

Read More…

เรื่อง Project structure ของระบบที่พัฒนาด้วยภาษา Go

จาก course Practical Go นั้นหนึ่งในเรื่องที่น่าสนใจอีกแล้ว คือ Project structure นั่นเอง เนื่องจากเป็นเรื่องที่มีการพูดคุยใน community เยอะมาก ๆ ที่สำคัญมีหลากหลายแนวทางมาก ๆ อยู่ที่ว่าใครจะมองและวางออกมา มาดูว่า มีคำแนะนำอะไรดี ๆ กันบ้าง

Read More…

เก็บตกเรื่องการออกแบบ package สำหรับภาษา Go

จาก course Pratical Go ที่ไปเรียนมานั้น มีเรื่อง Package design หรือการออกแบบหรือวาง package ในระบบที่พัฒนาด้วยภาษา Go ว่ามีแนวคิดและอย่างไร ออกแบบอย่างไร รวมทั้งหน้าที่ความรับผิดชอบ มาดูกันว่ามีอะไรบ้าง

Read More…

สรุปเรื่องของ Principle 3 ข้อของภาษา Go

จาก course Practical Go นั้นในช่วงเริ่มต้น ทำการอธิบายเรื่องของ Principle guideline ของภาษา Go ซึ่งประกอบไปด้วย 3 เรื่องคือ Clarify Simplicity Productivity เรื่องนี้เคยเรียนและได้ยินจาก course Ultimate Go ที่เรียนเมื่อ 2 ปีก่อน ทั้ง 3 เรื่องนี้มีความสำคัญมาก ๆ เหมือนเป็นเข็มทิศนำทางของการพัฒนา software เลย มาดูในรายละเอียดกัน

Read More…

ว่าด้วยเรื่องการจัดการ Error ถ้ามันเยอะก็ลดสิ

จากการมาเรียน Workshop Practical Go ในงาน GopherCon 2019 ที่ประเทศสิงคโปร์ มีหลายเรื่องที่น่าสนใจ ประกอบไปด้วย Idiomatic code Package และ project structure API design Error handling Testing นิดหน่อย ส่วนเรื่อง concurrency นั้นไม่ได้สอนเพราะว่า เวลาหมดก่อน เรื่องที่ผมให้ความสนใจเรื่องแรกคือ Error handling เนื่องจากใน Go 2 นั้น มีการพูดถึงปัญหาและแนวทางการปรับปรุงเรื่องนี้ให้ดีและง่ายขึ้น

Read More…