Menggunakan Go (Golang)
Pengenalan
Go (juga dikenali sebagai Golang) ialah bahasa pengaturcaraan jenis statik, bertaraf kompilasi yang dibangunkan dan diopen source oleh Google. Ia popular dalam kalangan pembangun kerana sintaksnya yang ringkas, kelajuan kompilasi yang sangat pantas, keupayaan pengendalian serentak cemerlang (melalui goroutine
ringan dan mekanisme komunikasi channel
), serta sistem pengurusan sampah terbina dalam yang efisien. Go amat sesuai untuk membina servis rangkaian berprestasi tinggi, sistem teragih, microservices serta alatan baris arahan, dan kini telah menjadi pilihan utama untuk pembangunan aplikasi cloud-native moden dan backend.
Sokongan Go oleh ServBay
ServBay, sebagai persekitaran pembangunan web tempatan yang direka khusus untuk macOS, menyediakan sokongan lancar dan berkuasa untuk pembangun Go. Dengan ServBay, anda boleh memasang, mengurus dan bertukar antara berbilang versi Go dengan amat mudah tanpa perlu mengkonfigurasi persekitaran yang kompleks seperti GOROOT
atau GOPATH
. Ini sangat memudahkan penyediaan dan penyelenggaraan persekitaran pembangunan Go.
ServBay telah memuatkan secara terbina dalam rangkaian alat Go dan menyokong pelbagai versi Go—dari versi lama hinggalah ke versi stabil terbaharu, memenuhi keperluan pelbagai jenis projek anda:
- Go 1.11
- Go 1.12
- Go 1.13
- Go 1.14
- Go 1.15
- Go 1.16
- Go 1.17
- Go 1.18
- Go 1.19
- Go 1.20
- Go 1.21
- Go 1.22
- Go 1.23
- Go 1.24 (dan versi lebih baharu mungkin disokong dalam kemas kini ServBay akan datang)
Sokongan Go Modules
Persekitaran ServBay mengaktifkan serta mengesyorkan penggunaan Go Modules secara lalai untuk pengurusan kebergantungan. Ini ialah penyelesaian standard yang disarankan dan diperkenalkan secara rasmi oleh Go sejak versi 1.11. Dalam terminal ServBay, anda boleh terus menggunakan arahan berkaitan go mod
(seperti go mod init
, go get
, go mod tidy
) untuk mengurus kebergantungan projek tanpa perlu risau tentang tetapan $GOPATH
tradisional.
Prasyarat
- Anda telah memasang dan menjalankan ServBay dengan berjaya pada macOS.
- Memiliki asas pengetahuan pengaturcaraan Go.
- Biasa menggunakan arahan asas dalam Terminal (baris perintah).
Memasang Go
Proses pemasangan persekitaran Go melalui antara muka grafik ServBay (GUI) adalah amat mudah:
- Lancarkan aplikasi ServBay.
- Pada bar navigasi kiri, klik
Perisian
. - Dalam senarai pakej yang dipaparkan, cari kategori
Go
. - Klik pada
Go
untuk mengembangkan senarai versi Go yang disokong oleh ServBay. - Pilih versi Go yang anda perlukan (disyorkan versi stabil terkini, contohnya Go 1.24) dan klik butang
Pasang
di sebelahnya. - ServBay akan secara automatik memuat turun dan menyiapkan pemasangan versi Go tersebut. Masa pemasangan bergantung kepada kelajuan internet anda.
Selesai pemasangan, status versi tersebut akan dipaparkan sebagai telah dipasang, dan anda boleh memasang versi lain atau bertukar antara versi yang telah dipasang mengikut keperluan.
Menggunakan Go
Selepas Go berjaya dipasang, anda boleh terus menggunakan koleksi arahan go
dalam Terminal sistem operasi anda.
Untuk mengesahkan sama ada Go telah dipasang dengan betul dan melihat versi aktif semasa, jalankan:
bash
go version
1
Terminal sepatutnya memaparkan maklumat berikut, menunjukkan versi Go yang sedang diurus oleh ServBay:
go version go1.24.1 darwin/arm64
1
Membina dan Menjalankan Aplikasi Web Go yang Ringkas
Seterusnya, kita akan mencipta sebuah contoh pelayan HTTP Go, dan membinanya serta menjalankan dalam persekitaran ServBay.
Cipta direktori projek: Disarankan untuk mencipta direktori baharu untuk projek Go anda di direktori root laman web lalai ServBay iaitu
/Applications/ServBay/www
. Sebagai contoh, cipta direktori bernamago-servbay-demo
.bashcd /Applications/ServBay/www mkdir go-servbay-demo cd go-servbay-demo
1
2
3Inisialisasi Go Modules: Dalam direktori root projek (
go-servbay-demo
), jalankango mod init
untuk memulakan Go Modules. Untuk jalur modul, anda boleh gunakan pengenal unik berkaitan repositori kod anda. Di sini, gunakan nama direktori sebagai contoh.bashgo mod init go-servbay-demo
1Perintah ini akan menghasilkan fail
go.mod
yang menjejak kebergantungan projek semasa.Tulis kod Go: Cipta fail bernama
main.go
dan tampalkan kod berikut:gopackage main import ( "fmt" "log" "net/http" "os" ) func handler(w http.ResponseWriter, r *http.Request) { hostname, _ := os.Hostname() fmt.Fprintf(w, "Hello from Go on ServBay!\nHostname: %s\nPath: %s\n", hostname, r.URL.Path) } func main() { http.HandleFunc("/", handler) port := "8080" // Menentukan port untuk server mendengar log.Printf("Go web server starting on port %s...", port) log.Printf("Access it at http://localhost:%s", port) // Memulakan pelayan HTTP err := http.ListenAndServe(":"+port, nil) if err != nil { log.Fatalf("Error starting server: %s\n", err) } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27Kod ini mendefinisikan pelayan HTTP ringkas yang mendengar pada port 8080. Bagi semua permintaan masuk, ia akan membalas dengan mesej "Hello from Go on ServBay!", hostname, dan laluan permintaan.
Jalankan aplikasi Go: Pastikan anda masih berada dalam direktori projek di terminal ServBay (
/Applications/ServBay/www/go-servbay-demo
), kemudian jalankan aplikasi Go anda dengan:bashgo run main.go
1Jika berjaya, anda akan melihat log seperti berikut dalam terminal, menandakan pelayan telah dimulakan:
2024/05/20 15:00:00 Go web server starting on port 8080... 2024/05/20 15:00:00 Access it at http://localhost:8080
1
2Akses aplikasi: Buka pelayar web anda dan layari
http://localhost:8080
. Anda sepatutnya dapat melihat respons seperti "Hello from Go on ServBay! Hostname: your-mac-hostname Path: /".
Konfigurasi Reverse Proxy Laman Web ServBay (Sangat Disyorkan)
Walaupun anda boleh akses secara langsung melalui localhost:8080
, dalam pembangunan tempatan, adalah lebih baik menetapkan satu nama domain mudah ingat (seperti go-app.servbay.demo
) dan gunakan web server ServBay (Caddy, Apache, atau Nginx) sebagai reverse proxy. Ini membolehkan aplikasi Go anda boleh diakses seperti persekitaran produksi melalui port HTTP/HTTPS standard, di samping menggunakan ciri-ciri lain ServBay (contohnya auto HTTPS, integrasi dengan servis lain).
- Cipta laman web dalam ServBay:
- Buka GUI ServBay, navigasi ke bahagian
Laman Web
. - Klik butang
Tambah Laman Web
. - Nama Domain: Masukkan nama domain pembangunan tempatan anda, contohnya
go-app.servbay.demo
. - Jenis Laman Web: Pilih Reverse Proxy.
- Alamat IP: Masukkan
127.0.0.1
. - Port: Masukkan
8080
.
- Buka GUI ServBay, navigasi ke bahagian
Simpan dan muat semula konfigurasi: Simpan perubahan konfigurasi laman web di GUI ServBay dan pastikan anda memulakan semula atau memuat semula web server (Caddy atau Nginx) supaya konfigurasi baharu berkuat kuasa.
Akses aplikasi melalui domain: Kini anda boleh melayari
https://go-app.servbay.demo
dalam pelayar untuk mengakses aplikasi web Go anda. Web server ServBay akan mengurus permintaan dan meneruskannya ke aplikasi Go anda secara telus.
Pengurusan Versi Go
ServBay menjadikan pengurusan dan pertukaran antara pelbagai versi Go sangat mudah.
- Tukar versi: Dalam GUI ServBay, pergi ke
Perisian
->Go
dan anda akan melihat semua versi Go yang telah dipasang. Di menu kiri, bukaTetapan
dan tetapkan mana-mana versi Go sebagai lalai. - Pengesahan pertukaran: Selepas menukar, buka semula terminal dan jalankan
go version
untuk mengesahkan bahawa versi yang dinyatakan telah diaktifkan.
Mengurus Versi Go Projek melalui .servbay.config
Selain menukar versi Go secara global, ServBay juga menawarkan kaedah pengurusan versi berdasarkan projek yang lebih terperinci menggunakan fail .servbay.config
di root projek.
Bagaimana ia berfungsi:
Apabila anda cd ke direktori yang mengandungi fail .servbay.config
dalam terminal ServBay, ServBay akan mengesan dan membaca fail tersebut secara automatik. Berdasarkan konfigurasi (seperti GO_VERSION
), sesi terminal semasa akan menggunakan versi Go yang dinyatakan sementara waktu.
Format fail konfigurasi:
.servbay.config
ialah fail teks ringkas dalam format pasangan kunci-nilai. Untuk menetapkan versi Go bagi sesuatu projek, tambahkan baris GO_VERSION
:
ini
# Contoh fail .servbay.config
# Tentukan projek ini menggunakan Go versi 1.22
GO_VERSION=1.22
# Anda juga boleh nyatakan versi alat pembangunan lain
# PHP_VERSION=8.3
# NODE_VERSION=20
# PYTHON_VERSION=3.11
# ... Konfigurasi lain ...
# GOPROXY=https://goproxy.cn,direct
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
Kelebihan:
- Pertukaran versi automatik: Anda tidak perlu menukar versi global; masuk sahaja ke folder projek, versi Go akan bertukar secara automatik mengikut keperluan projek.
- Pengasingan projek: Pastikan setiap projek dibina dan dijalankan pada persekitaran Go yang dijangka, elakkan konflik versi.
- Kerjasama pasukan: Masukkan fail
.servbay.config
ke sistem kawalan versi (seperti Git) supaya semua ahli pasukan mendapat persekitaran Go yang seragam setelah klon projek.
Senario penggunaan:
Misalkan anda mengurus dua projek:
project-a
memerlukan Go 1.12project-b
menggunakan Go 1.22 terkini
Buat fail .servbay.config
di root setiap projek:
/Applications/ServBay/www/project-a/.servbay.config
:iniGO_VERSION=1.12
1/Applications/ServBay/www/project-b/.servbay.config
:iniGO_VERSION=1.22
1
Selepas anda cd ke /Applications/ServBay/www/project-a
dalam terminal ServBay dan jalankan go version
, anda akan lihat Go 1.12.x. Jika cd ke /Applications/ServBay/www/project-b
pula dan jalankan go version
, anda akan dapat Go 1.22.x.
Nota: .servbay.config
hanya mengawal versi asas Go yang digunakan oleh persekitaran ServBay. Untuk pengurusan pakej kebergantungan projek, anda disyorkan terus guna Go Modules (go.mod
).
Soalan Lazim (FAQ)
S: Dapat mesej "command not found" apabila jalankan
go
dalam terminal ServBay?J: Pastikan PATH dalam terminal anda telah dikonfigurasi oleh ServBay. Juga, semak bahawa sekurang-kurangnya satu versi Go telah dipasang dan ada yang ditetapkan sebagai lalai di GUI ServBay di bahagian
Perisian
->Go
.S: Bagaimana mengemas kini Go ke versi terkini dalam ServBay?
J: Semak secara berkala bahagian
Perisian
->Go
dalam ServBay. Jika ada versi baru disokong, ia akan muncul dalam senarai dan anda hanya perlu klik untuk memasang. Selepas pemasangan, tukar ke versi baru melalui GUI untuk digunakan.S: Hadapi masalah rangkaian atau muat turun kebergantungan perlahan saat gunakan Go Modules?
J: Secara lalai, Go Modules memuat turun kebergantungan dari
proxy.golang.org
. Jika anda berada di China atau kawasan dengan sekatan internet, mungkin akan mengalami masalah akses. Anda boleh konfigurasi environment variableGOPROXY
untuk gunakan cermin pantas sepertihttps://goproxy.cn
atauhttps://goproxy.io
. Ini boleh diatur secara global dalam tetapan ServBay atau melalui fail.servbay.config
(contohnyaGOPROXY=https://goproxy.cn,direct
).S: Aplikasi web Go saya gagal hidupkan kerana port telah digunakan (address already in use)?
J: Ini menunjukkan port (misal 8080) telah digunakan oleh proses lain. Anda boleh sama ada menukar port dalam kod Go (seperti 8081, 9000, dsb) atau cari dan tamatkan proses yang menggunakan port tersebut. Dalam macOS, guna arahan
lsof -i :<nombor_port>
(misallsof -i :8080
) untuk cari PID, kemudian tamatkan proses dengankill <PID>
.S: Apakah perbezaan antara fail
.servbay.config
dan pertukaran versi Go global? Mana satu pilihan terbaik?J: Pertukaran versi global (di GUI ServBay) mengubah versi Go untuk seluruh sistem secara lalai. Fail
.servbay.config
pula hanya mengubah versi buat sementara dalam direktori projek tertentu yang ada fail tersebut. Disyorkan gunakan.servbay.config
jika anda mengurus projek perlbagai versi, memastikan setiap projek berjalan dalam persekitaran yang betul dan konsisten. Untuk tetapan biasa, gunakan tukar secara global.
Rumusan
ServBay menawarkan persekitaran pembangunan tempatan yang sangat cekap dan mesra pengguna untuk pembangunan Go (Golang) di macOS. Melalui antara muka grafik yang intuitif, anda boleh dengan mudah memasang, mengurus pelbagai versi Go, serta guna .servbay.config
untuk pengawalan versi projek. Digabungkan dengan pengurusan kebergantungan Go Modules dan ciri reverse proxy serta hosting aplikasi web terbina dalam ServBay, anda boleh membina, menjalankan, dan menguji aplikasi Go anda dengan cepat. ServBay memudahkan pengurusan persekitaran sehingga anda dapat menumpukan masa kepada kod dan inovasi Go dengan lebih produktif.