สวัสดีครับสําหรับบทความนี้เป็นเรื่องราวเกี่ยวกับการเริ่มต้นเรียนรู้ภาษา Go ว่ามีความเป็นมาอย่างไร และเริ่มต้น Coding ด้วยภาษา Go จะต้องเริ่มต้นอย่างไร
Go เป็นภาษาที่ถูกเริ่มต้นพัฒนาในปี 2007 โดย Robert Griesemer, Rob Pike และ Ken Thompson และเปิดตัวในปี 2009 โดยเปิดเป็น Open Sorce และได้รับความนิยมขึ้นมาเรื่อยๆจนถึงปัจจุบัน เนื่องจากภาษา Go เป็นภาษาที่เกิดมาที่หลังจึงทําให้นําเอาข้อดี ข้อเสียของภาษาอื่นๆมาปรับใช้ทําให้ภาษา Go เขียนง่าย, กระชับ และมีประสิทธิภาพที่ดี
คือมีการแปล Source Code ทั้งหมดให้กลายเป็น ภาษาเครื่อง (Executable File) ซึ่งเครื่องคอมพิวเตอร์สามารถนำไปรันได้ทันที ไม่ต้องแปลคำสั่งใหม่ทุกครั้งที่รัน เหมือนพวก Node.js, Java ฯลฯ ทําให้ทํางานได้เร็ว และเบามากๆ
ภาษาโกมีการใช้ Garbage Collector สำหรับเคลียร์ตัวแปร หรืออ็อบเจคที่ไม่ถูกใช้งานแล้ว ออกจากหน่วยความจำ โดยเราไม่ต้องไปจัดการเอง
ภาษา Go เป็น Static language หมายความว่าการประกาศตัวแปรจะต้องระบุชนิดของข้อมูลเสมอ และสามารถตรวจสอบชนิดของข้อมูลได้ตั้งแต่ขั้นตอน Compile ซึ่งจะไม่เหมือนกับภาษาอื่นๆที่เป็น Dynamic-Type เช่น Python, JavaScript, PHP ซึ่งถ้าไม่ได้ระวังอาจจะเกิด Bug หรือ Error บน Production ได้

เราจะเริ่มต้นด้วยการ Download Compiler ของ Go มาติดตั้งในเครื่องก่อนครับ โดยเข้าไปโหลดได้ที่เว็บของ Go โดยตรงที่นี่ครับ https://golang.org/dl/
เมื่อติดตั้งเรียบร้อย ก็ได้ถึงเวลาเขียนโปรแกรมแรกด้วยภาษา Go กันครับ Hello Go
ให้สร้างไฟล์ main.go ขึ้นมา และเขียน Code ดังนี้
package main
import "fmt"
func main() {
fmt.Println("Hello Go")
}
หลังจากนั้นสามารถสั่งรันโปรแกรมได้ด้วยคำสั่งนี่ครับ
$ go run main.go
ก็จะเห็นผลลัพธ์เป็นคําว่า Hello Go ขึ้นมา
ถ้าหากต้องการจะ Build ออกมาเป็นไฟล์ Binary หรือ compile เป็นภาษาเครื่อง เพื่อนําไปรันใช้งานจริงๆ ก็สามารถใช้คําสั่งนี้ได้เลยครับ
$ go build main.go
หลังจากใช้คําสั่งนี้ Compiler ของ Go ก็จะแปลง Code ของเราเป็นภาษาเครื่อง และได้เป็นไฟล์ Binary เพื่อนําไปรันได้เลย
ถึงจุดนี้เราก็ได้เรียนรู้เกี่ยวกับภาษา Go เบื้องต้น และได้ลองเขียนโปรแกรมแรกกันไปแล้ว สําหรับในบทความต่อไปเราก็จะไปทําความรู้จักกับ Go module โดยสามารถอ่านต่อได้เลยครับที่นี่ Go EP.2 ทําความรู้จักกับ Go module
ที่มา:
ถ้าต้องการดูว่า โปรแกรมที่เราสนใจ เปิดใช้งานไฟล์ไหนบ้าง หรือเปิด socket อะไรบ้าง สามารถดูได้ด้วยคําสั่งนี้
ในปัจจุบันมี web server อยู่สองเจ้าที่ได้รับความนิยมคือ apache2 และ nginx สองเจ้านี้จะมีขอดีข้อเสียงต่างกัน nginx จะมีข้อดีคือ สามารถรองรับ user concurrent และ request static file ได้ดีกว่า apache2 ส่วน apache2 มีข้อดีคือ PHP ซึ่ง PHP ของ nginx นั้น จะทำงานผ่านโมดูล FastCGI อีกทีหนึ่ง ซึ่งจะได้ Performance ที่ช้ากว่า mod_php ของ apache2 ที่ทำงานแบบ
การ setting wifi ของ raspberry pi มีวิธีดังนี้ เริ่มแรก scan wifi ก่อนเพื่อดูว่า มี wifi ตัวไหนที่สามารถเชื่อมต่อได้บ้าง ด้วยคําสั่งนี้