[Day #1] 7 วัน ฉันจะเขียน Golang ให้ได้!

Max Veerapat Kumchom
Grean Developers Family
2 min readJul 1, 2018

--

สวัสดีครับผมแมกซ์นะครับ ขี้โม้คนเดิม มาพร้อมกับความตั้งใจลมๆแล้งๆ ว่าจะเขียน Golang ให้ได้ ใน 7 วัน เริ่มจาก 0 เลย และหวังว่า 7 วันหรือ 7 ตอนต่อจากนี้ไป จะเรียนรู้อะไรได้ไม่มาก เป้าหมายคืออาจจะรู้จักและเขียนได้ (คงไม่ใช่เขียน เป็น)พร้อมกับเขียน Medium เป็นบันทึกการเรียนรู้ของตัวเองไว้ ใครผ่านมาอ่าน ก็ได้จะได้ประโยชน์บ้างหรือเอาเป็นแรงผลักดัน ว่าไอ้คนแบบผมมันยังเริ่มได้ และความรู้จากบทความนี้อาจจะมีข้อผิดพลาด เพราะคนเขียนก็เพิ่งเริ่มเรียนเหมือนกัน 55 🤣

TL;DR ไปเอาความตั้งใจมาจากไหน ต้องบอกก่อนเลยว่าเคยอยากเขียน Golang มานานแล้ววววว นานจนลืมไปแล้วว่าอยากเขียนอ่ะ จนวันหนึ่งมันไม่ได้แล้ว จะมาพูดว่าอยากเขียนเป็นๆ อยู่แบบนี้แต่ไม่เริ่มสักที ก็เลยชาเลนจ์ตัวเองสักหน่อย ว่าจะเขียน Medium ไปด้วยเลย ในมุมมองส่วนตัว ทำไมถึงอยากเขียน Golang จริงๆผมก็ไม่ได้จะเซียนภาษาใดภาษาหนึ่งอยู่เลย C ก็พอได้ Javascript/HTML/CSS ก็พอเอาอยู่ Java ลืมหมดไม่ได้จับนาน เป็นเป็ดน้อย ที่อยากเรียนรู้อะไรใหม่ๆตลอดเวลา อยากเขียนได้หลากหลาย ไม่ยึดติดกับภาษาใด เพราะมองว่าภาษาเป็นเหมือน อาวุธ ภาษาบางภาษาเหมาะกับการ รบ แบบหนึ่งเป็นอย่างดี อีกภาษาเหมาะกับการ รบ อีกแบบ แล้วถ้าเป็นเซียนดาบ วันหนึ่งมี ปืน มาให้ใช้ จะไม่ใช้มันหรอ ? นั่นแหละครับ เพราะเทคโนโลยีทุกวันนี้มันเปลี่ยนแปลงอย่างรวดเร็ว ของที่ดี ในปีเดือนวันที่แล้ว อาจจะมีของที่ดีกว่า! 🤗

โม้พอละมาเข้าเรื่อง Go ? Golang ? Go เป็นภาษาโปรแกรม ภาษาหนึ่งถูกสร้างขึ้นโดยทีมของ Google เป็นภาษาใหม่ Open source ด้วยมีฟีเจอร์เจ๋งๆมากมาย memory safety, garbage collection, structural typing and CSP-style concurrent programming อันนี้ก๊อบมา ยังไม่เข้าใจ แต่คงจะได้สัมผัสในตอนต่อๆไปแน่ ออกแบบมาให้ใช้กับ Hardware ในยุคปัจจุบันได้เต็มประสิทธิภาพ ที่สำคัญมันน่าจะเป็นที่นิยมในอนาคต ปัจจุบันก็ฮิตละนะ โดยส่วนตัวมองว่ามันต่อยอดการเขียน Application รองรับการ Scale ได้ เอาไปทำ Docker image Deploy กับ Kubernetes เอออีกอย่างคือมันเขียนแล้ว Compile ได้หลาย OS และเป็นแบบ Executable binary รันได้เลยอ่ะ อย่างแจ่ม โดยเขายังโม้อีกว่า Fast Fun Productive อีกด้วยนะเออ 🤓

ขั้นตอนการเตรียมการ อยากแรกเลยก่อนเริ่มเขียน เตรียมของให้พร้อม

  1. ทำการติดตั้ง Go Programming Language ให้เราสามารถเรียกใช้ go เพื่อการ build run test get สิ่งต่างๆมาใช้ได้ ติดตั้งเสร็จ อย่าลืมเช็คค่า Environment Variable Path ของ %GOPATH% %GOROOT% ว่าถูกตั้งค่าเรียบร้อยหรือยังหลักจากนั้น ลองสั่ง go version ดู ถ้ามีอะไรออกมาก็แสดงว่าเรียบร้อย
  2. ใช้ Visual Studio Code เขียนครับ เพราะเครื่องมือนี้เหมาะมาก มาพร้อมกับ Extension Go ที่จะช่วยให้การเขียน Go เป็นไปอย่างราบลื่น ใช้เหอะ 🤭
  3. ใช้ Git Bash อันนี้เป็นทางเลือกครับ เพราะผมเขียนบน Windows และ cmd มันก็ง้องแง่งเกินไป แถมยังเชื่อมกับ VSCode ได้ดี ด้วยการ Settings
    “terminal.integrated.shell.windows”: “C:\\Program Files\\Git\\bin\\bash.exe”

Hello World Golang… เข้าสู่พิธีศักดิ์สิทธิ์ ของเหล่าโปรแกรมเมอร์ ก่อนจะเรียนรู้ภาษาอะไรเราต้องสั่งมัน hello, world! ให้เป็นซะก่อน

  1. เริ่มต้นด้วยการสร้างไฟล์ main.go ขึ้นมาครับ บรรทัดแรกเป็นการตั้งชื่อ package ของเราครับในที่นี้ชื่อว่า main
  2. ทำการ import “fmt” ซึ่งเป็น package หนึ่งของ go คล้ายการ #include <stdio.h> ของภาษา C นะครับในที่นี้ต้องการใช้ Println จาก fmt
  3. ทำการประกาศฟังชั่น main() โดยภายในสั่ง Println(“hello, world!”)
  4. ทำการสั่ง run โปรแกรมด้วยได้ผลลัพธ์คำว่า hello, world!
$ go run main.go
hello, world!

5. ทำการสั่ง build โปรแกรมและได้ผลลัพธ์เป็นไฟล์ main.exe

$ go build main.go$ ./main.exe
hello, world!

6. ทำการสั่ง run โปรแกรมผ่าน main.exe ได้ผลลัพธ์คำว่า hello, world! เช่นกัน

สำหรับวันนี้ ก็จบไปแล้วนะครับสำหรับ Day#1 ได้ลองรันโปรแกรมภาษา Go เป็นที่เรียบร้อย สั่ง go run go build ได้ .exe แต่ยังไม่ได้ลอง go test ครับมาดูกันว่าภาษานี้เขียน test ง่ายยังไง มันจะชวนให้เรามาใช้หลักการเขียนแบบ TDD ได้ดีขนาดไหน มารอติดตามชมกันในตอนถัดไปนะครับ 🤩

--

--