[Go] Go Lang ฉบับมือใหม่หัดขับ


Go ถูกสร้างโดย Google เพื่อตอบโจทย์การเขียนโปรแกรมให้มีลักษณะดังนี้
  • Static typing and run-time efficiency (like C++)
  • Readability and Usability (like Python or JavaScript)
  • High-performance networking and multiprocessing
  • .....(wiki).....

         จะเห็นว่าไม่มีภาษาไหน สามารถตอบโจทย์นี้ได้ครบเลย Java ก็ performance ไม่ดี,  C ถึงแม้จะเร็วแต่ก็อ่านยากเกินไป หรือแม้แต่ภาษาใหม่ๆ ที่ลู่เข้าสู่ functional language ที่ว่าเข้าใจได้ง่าย แต่ Go ก็มองว่า OOP มันซับซ้อนและเงื่อนไขจุกจิกก็มีอยู่มาก

         Cross compiling เป็นความสามารถนึงที่ Go มีเหนือภาษาอื่นๆ ซึ่ง Go สามารถ build executable binary สำหรับแต่ละ OS ได้เลย

         Go มี concept ว่า ไฟล์ที่ได้มานั้นต้องสามารถเอาไปใช้งานเป็น Application ได้ทันที (ไม่ต้องการ core libraray เพิ่มเติม) ดังนั้นแล้ว ข้อเสียของ Go ก็คือ executable file จะมีขนาดใหญ่กว่าการ build จากภาษา C ที่คาดหวังว่า library พื้นฐานจะต้องมีอยู่แล้ว

Gopher

เข้าสู่การทดลอง

การติดตั้ง

  • ติดตั้ง Go (Download)
    *คนที่ไม่อยากติดตั้งบนเครื่องไปลองเขียน Online ได้ที่ https://play.golang.org
  • เมื่อติดตั้งแล้ว ให้ทำความรู้จักกับ 2 path นี้ไว้ด้วย
             GOROOT => directory ที่ install Go (C:\Go, /usr/local/go)
             GOPATH => directory ที่รวม package ต่างๆ (%userprofile%\go, $HOME/go)
  • ติดตั้ง (Visual Studio Code) **อย่าลืมติดตั้ง plugins ที VS Code เตือนด้วยนะ
  • สร้างไฟล์ main.go
package main

import (
 "fmt"
)

func main() {
 fmt.Println("Hello, playground")
}

  • VS Code จะเตือนให้เราติดตั้ง plugin เพิ่มเติม เราก็เออ-ออ-ห่อหมกไป
Go เป็นของ Google แต่ Microsoft มาทำ plugin บน VS Code ให้นะเอ้อ

         ติดตั้ง Analysis Tools ด้วย เพื่อให้ VS Code เก่งขึ้นไปอีก เช่น formatter จะจัดโค้ดอัตโนมัติเมื่อมีการ save file ลดปัญหา conflict code ที่เกิดจากแต่ละคนลายมือโค้ดไม่เหมือนกัน

Source Code ตัวอย่าง

ตัวอย่าง Syntax เพื่อให้ได้เห็นรูปแบบของภาษา
**ก่อนจะก๊อปไปลองเล่น มีข้อนึงที่อยากให้จำไว้ให้ดี คือเรื่อง "Naming Convention" เพราะชื่อ function อักขระแรก จะมีความหมายต่อการกำหนดการเข้าถึงด้วย (access modifier)

รันโปรแกรมทดสอบ

  • function main() เป็นจุดเริ่มต้นการทำงานของโปรแกรม (เหมือนกับหลายๆ ภาษา)
  • เขียนคำสั่งใน Terminal เพื่อทดสอบ
$ go build
สร้างไฟล์ executable binary สามารถ click-to-run ได้เลย
$ go run
สร้างไฟล์ binary และ execute ทันที

         จริงๆ แล้ว Go เป็นภาษาที่ได้รับความนิยมในหมู่ Backend Developer หรือใช้สำหรับสร้าง services / microservices เนื่องจาก Go มี performance ที่ดีซึ่งไว้จะอัพเดตให้ฟังกันต่อโพสหน้านะครับ

Facebook Comment

Recent Posts

Popular post of 7 days

Portal คืออะไรกันนะ???

มาตรฐานการตั้งชื่อตัวแปร (Naming Convention)

วิธีการสมัคร Apple Developer Program และ Enterprise Program ฉบับลงมือเอง

Popular

[Java] Java 8 DateTime ใหม่ ไฉไลกว่าเดิม

Portal คืออะไรกันนะ???

มาตรฐานการตั้งชื่อตัวแปร (Naming Convention)

[Java] ความแตกต่างระหว่าง Overloading กับ Overriding

เรื่องของ ++i กับ i++

ลืมรหัสปลดล็อค Android เข้าเครื่องไม่ได้ มีทางออกครับ

[Java] Java Static Variable และ Static Method

Push Notification คืออะไร มีวิธีทำอย่างไร (No Code)

พิมพ์ซองจากรายชื่อ excel ด้วยวิธี Mail Merge

[Android] เปิดเครื่องไม่ได้ โลโก้ค้าง (Boot Loop)