golang Archive

Golang :: แก้ไขปัญหาเรื่องของ coverage report นิดหน่อย

ปัญหาที่พบเจอ เมื่อทำการทดสอบ และสร้าง coverage report ออกมาด้วยคำสั่ง จะเกิดปัญหาประมาณนี้ ทำให้ไม่สามารถสร้างรายงานของ code coverage ในรูปแบบ HTML ได้ ดังนั้นเรามาแก้ไขปัญหากันหน่อย

Read More…

[Golang] มาทำการ optimize code ด้วยการทำ benchmark และ profiling กัน

จากงาน Golang meetup ครั้งที่ 1 ของกลุ่ม Golang Thailand มีการพูดถึงเรื่องการทำ profiling ทั้ง CPU และ Memory ทำการวิเคราะห์และหา code ที่ใช้ทรัพยากรมากเกินไป เพื่อทำการปรับปรุงประสิทธิภาพการทำงานของ code ให้ดีขึ้น ดังนั้นลองมาฝึกกันหน่อยสิ

Read More…

ว่าด้วยเรื่องการใช้งาน Context package ของภาษา Go

จากงาน GopherCon Singapore 2017 มี session อธิบายเกี่ยวกับการใช้งาน Context package โดยที่ context นั้นสามารถส่งค่าต่าง ๆ ระหว่าง process ใน request scope ซึ่งสามารถกำหนดค่าต่าง ๆ ใน context ได้ดังนี้ เช่น withCancel() withDeadline() withTimeout() withValue() โดยตัวอย่างที่ใช้ context บ่อย ๆ คือการสื่อสารระหว่าง client-server ตัวที่ชัดที่สุดคือ การใช้งาน context ร่วมกับ net/http package ถ้าฝั่ง server ทำงานช้าเกินเวลาที่กำหนด จะส่งสัญญาณยกเลิกการทำงานกลับมา แต่มาเริ่มด้วย code ง่าย ๆ กันดีกว่า

Read More…

สรุปเรื่อง Interface และ Composition design จาก Ultimate Go Workshop

มีโอกาสมาเรียน course Ultimate Go Workshop จากงาน GopherCon Singapore โดยมีหัวข้อต่าง ๆ ดังนี้ Ultimate Go Language mechanic Software design Concurrency Profiling ซึ่งเป็นเรื่องพื้นฐานแบบลึกมาก ๆ เนื่องจากลงไปถึง philosophy ของตัวภาษา Go ว่าเป็นอย่างไร ? ตั้งแต่เรื่อง integrity, readability, simplicity ไปจนถึง Productivity vs Performance Correctness s Performance

Read More…

ทำไมถึงใช้ภาษา Go ?

จาก post นี้ใน facebook เรื่องเกี่ยวกับการนำภาษา Go มาใช้ในการพัฒนาระบบงาน สิ่งที่สำคัญคือ มีเหตุผลอะไรที่ถึงนำภาษา Go มาใช้งาน ในส่วนของ API service และ Backend ดังนั้นมาสรุปเหตุผลไว้นิดหน่อย จากมุมมองที่ใช้มาบ้างเล็กน้อย อาจจะไม่ถูกแต่คิดว่า มันดีกว่าเดิมอย่างแน่นอน มาเริ่มกันเลย

Read More…

มาทดสอบ RESTful API ด้วยการเขียนเอกสารในรูปแบบ Markdown กัน

จากการพูดคุยเรื่องการทดสอบ RESTful API ที่ Facebook มีการพูดถึง Silk ซึ่งเป็น framework สำหรับการทดสอบ RESTful API ด้วยการเขียนเอกสารในรูปแบบ Markdown ดังนั้นจึงลองนำมาใช้งานแบบขำ ๆ กันหน่อย

Read More…

Feature ที่น่าสนใจในภาษา Go 1.8 (beta 2)

ภาษา Go 1.8 กำลังจะถูกปล่อยตัวเต็ม ๆ ออกมาในเดือนหน้า ตอนนี้อยู่ในสถานะ beta 2 ซึ่งมี feature ที่น่าสนใจมากมาย ตัวอย่างเช่น HTTP/2 Push HTTP Server graceful shutdown Plugins Default ของ GOPATH Go bug เป็น command สำหรับส่ง bug report ไปยัง Github Issue เรามาลองใช้งาน feature ใหม่ ๆ กันหน่อย

Read More…

ใครบ้างที่นำภาษา Go ไปใช้งาน​ ?

คำถามที่น่าสนใจสำหรับภาษา Go คือ ใครบ้างที่นำภาษา Go ไปใช้พัฒนาระบบงาน ? มันเป็นภาษาโปรแกรมที่คนรู้จักน้อยมากนะ จะดีหรอ ? ถ้ามีปัญหาขึ้นมาใครจะช่วยล่ะ ? มันเป็นภาษา Hipster มากเลยนะ ? เป็นภาษาใช้สำหรับการสร้างระบบงานเฉพาะทางหรือเปล่านะ ? ก่อนอื่นมาดูกันหน่อยว่ามีบริษัทไหนบ้างนะ ที่นำภาษา Go ไปพัฒนาระบบ

Read More…

มาดูกันว่าระบบ 500px.com จัดการรูปภาพมากกว่า 500 TB ได้อย่างไร

จากบทความเรื่อง How 500px serves up over 500TB of high res photos เห็นว่าน่าสนใจเลยนำมาแปล และ สรุปกันหน่อย โดยเป็นการอธิบายภาพรวมของ ทีมพัฒนาระบบ 500px ว่าเป็นอย่างไร ? โครงสร้างของระบบว่าเป็นอย่างไร ? ซึ่งสามารถรองรับข้อมูลรูปภาพคุณภาพสูง โดยมีขนาดรวมกันมากกว่า 500TB ได้อย่างไร

Read More…

ปีที่ 6 ของภาษา Go

Google พยายามที่จะหาภาษาโปรแกรมอื่นมาแทนที่ภาษา C นั่นก็คือภาษา Go จากการพัฒนามากว่า 6 ปี ในวันนี้ทางทีมพัฒนาภาษา Go ก็ได้ปล่อย Go 1.5 ออกมา ซึ่งตัดส่วนการทำงานที่เป็นภาษา C ออกไป และแทนที่ด้วยภาษา Go ทั้งหมด !!

Read More…