golang Archive

ลองใช้งาน Go Vulnerability Management ในการตรวจสอบเรื่องความปลอดภัย

ทางทีมพัฒนา Go ได้ปล่อย Go Vulnerability Management ออกมาเมื่อปลายปี 2022ซึ่งมีเป้าหมายเพื่อตรวจสอบความปลอดภัยของ codeที่เขียนด้วยภาษา Go รวมทั้ง 3-party library ต่าง ๆว่าอาจจะเสี่ยงหรือมีช่องโหว่ในการโจมตีหรือไม่โดยได้ปล่อย CLI tool ทซึ่งเป็น opensource มาให้ใช้งานชื่อว่า vulncheck

Read More…

Go 1.20​ :: การใช้งาน multiple error

หนึ่งใน feature ของการจัดการ Error ใน Go 1.20 นั้นคือการจัดการ multiple error ด้วย function Join() ใน errors packageและสามารถตรวจสอบด้วย function Is() ด้วยน่าจะช่วยให้การจัดการ error สะดวกขึ้นมาดูตัวอย่างการใช้งานง่าย ๆ

Read More…

Go 1.20 การ convert จาก slice มาเป็น array

ใน Go 1.20 นั้นมีการเปลี่ยนแปลงตัวภาษานิดหน่อยหนึ่งในนั้นคือ การ convert ข้อมูลจาก slice มาเป็น arrayซึ่งเป็นความรู้ใหม่เล็ก ๆ ที่น่าสนใจ

Read More…

Go 1.20 :: ปรับปรุงการแปลงค่าจาก array ไปเป็น string

เช้านี้เห็นในกลุ่ม Go กำลังพูดคุยเกี่ยวกับ Go 1.20 ว่าในการแปลงค่าจาก array ไปเป็น string นั้นเร็วขึ้นอย่างมากและลดการจองพื้นที่ในหน่วยความจำลงไปอย่างมากโดยใช้ function ชื่อว่า String() ใน package unsafeมาดูตัวอย่างการใช้งานกัน

Read More…

แก้ไขปัญหา Too many connection ของ MySQL ในระบบที่เขียนด้วยภาษา Go

เช้านี้เจอปัญหาจากระบบหนึ่งที่พัฒนาด้วยภาษา Goซึ่งพบเจอ error ว่า “Error 1040: Too many connections”ตั้งแต่เปิดระบบให้บริการมา ยังไม่เคยเจอ error นี้เลยแต่เมื่อไปดูเรื่องของ traffic การใช้งาน พบว่าใช้งานสูงขึ้นอย่างมากซึ่งคิด ๆ ดูแล้ว ก็เป็นเรื่องที่ดีเลย ที่เจอ error นี้ดังนั้นไปดูปัญหา และ re-produce ปัญหากันหน่อยเพื่อจะได้แก้ไขปัญหาได้ง่าย และ ถูกต้องมากขึ้น

Read More…

ลองใช้งาน Ddosify สำหรับ performance testing ระบบงานกัน

วันนี้ได้ลองใช้งาน Ddosify เป็นเครื่องมือสำหรับการทำ performance testing ระบบงานซึ่งพัฒนาด้วยภาษา Go และยังมี Docker image รวมทั้ง Docker extension ให้ใช้งานกันแบบง่าย ๆโดยจะสนับสนุน HTTP protocol ทั้ง 1 และ 2สามารถเขียน scenario การทดสอบได้ด้วย JSON file

Read More…

แก้ไขปัญหา ‘stdlib.h’ file not found ของ Go บน MacOS

ปัญหาที่พบเจอหลังจากทำการ upgrade MacOS ใหม่พบว่าภาษา Go จะเจอปัญหาว่า “‘stdlib.h’ file not found” ส่งผลทำให้ไม่สามารถ download หรือ test หรือ ทำอะไรไม่ได้เลย

Read More…

Golang :: มาแล้วสำหรับ Proposal: Structured Logging

เพิ่งเห็นว่าใน Go มี proposal ที่น่าสนใจคือ Structured loggingทำให้เราสามารถเขียน log ในรูปแบบที่มีโครงสร้างได้ง่ายขึ้นรวมทั้งเลือกได้ด้วยว่าจะให้มีโครงสร้างในรูปแบบใดเช่น text และ JSON เป็นต้น

Read More…

หนังสือใหม่ Go in Action, Second Edition

เพิ่งเห็นว่า Go in Action, Second Edition เพิ่งปล่อยออกมาในรูปแบบ MEAP แล้ว ซึ่งเป็นการปรับปรุงจาก edition แรกโดยเน้นที่การนำไปใช้งาน real use case ต่าง ๆและ ปรับปรุงตามความสามารถใหม่ ๆ ของภาษา Go

Read More…

Golang :: เปลี่ยนมาใช้ zap สำหรับจัดการ logging

ว่าง ๆ นั่งเปลี่ยน logger จากที่ใช้งาน logrus มาเป็น zapโดยสิ่งที่ต้องการให้เหมือนเดิมคือ Log message ในรูปแบบของ JSON Log ออกไปทั้ง file แบบแยกรายวัน และออกที่ console เก็บเฉพาะ log level = error เท่านั้น

Read More…