Backend adalah tempat di mana logik, penyimpanan data, dan interaksi dengan perkhidmatan lain berlaku.
Salah satu bahasa pengaturcaraan yang sedang meningkat popular dan sangat powerful untuk tugasan ini ialah Go, atau sering disebut Golang. Dicipta oleh Google, Golang direka bentuk untuk cekap, mudah ditulis, dan sangat baik dalam mengendalikan banyak tugas secara serentak (concurrency).
Dalam penulisan ringkas kali ini, kita akan melihat betapa mudahnya memulakan backend menggunakan Golang, khususnya dengan bergantung kepada pustaka standard (standard library) yang telah tersedia. Anda tidak perlu memasang library luaran yang rumit hanya untuk membuat pelayan / (server ) HTTP yang asas.
Mengapa Golang untuk Backend?
Golang mempunyai beberapa kelebihan yang menjadikannya pilihan menarik untuk pembangunan backend:
- Prestasi: Golang sangat pantas, baik semasa kompilasi mahupun semasa dilaksanakan. Ini penting untuk backend yang responsif.
- Concurrency: Dengan ciri goroutines dan channels, Golang membuat pembangunan aplikasi yang mengendalikan banyak permintaan secara serentak menjadi jauh lebih mudah dan selamat.
- Standard Library yang Lengkap: Seperti yang akan kita lihat, banyak fungsi yang diperlukan untuk backend sudah tersedia dalam standard library (contohnya
net/http
untuk web,encoding/json
untuk JSON,database/sql
untuk pangkalan data). - Sintaks yang mudah: Kod Golang cenderung mudah dibaca dan ditulis, dengan peraturan yang ketat yang menggalakkan konsistensi.
- Deployment yang Mudah: Hasil kompilasi Go adalah binary tunggal tanpa banyak kebergantungan, menjadikannya sangat mudah untuk di-deploy.
Memulakan dengan Pelayan HTTP Sederhana
Jantung aplikasi backend berasaskan web adalah pelayan HTTP. Dengan Golang, ini boleh dibuat hanya dalam beberapa baris kod menggunakan pakej net/http
.
Mari kita cipta fail baru, contohnya main.go
, dan masukkan kod berikut:
package main
import (
"fmt"
"log"
"net/http"
)
func main() {
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
fmt.Fprintln(w, "Hai dari Backend Golang!")
})
port := ":8080"
fmt.Printf("Pelayan berjalan di http://localhost%s\n", port)
err := http.ListenAndServe(port, nil)
if err != nil {
log.Fatal(err)
}
}
Penjelasan Kod
package main
: Menandakan bahawa ini adalah program yang boleh dieksekusi.import (...)
: Mengimport pakej yang kita perlukan.net/http
adalah yang paling penting di sini.func main()
: Fungsi utama yang akan dilaksanakan apabila program bermula.http.HandleFunc("/",...)
: Ini mendaftarkan pengendali handler untuk laluan URL/
. Ini bermakna, setiap kali terdapat permintaan masuk ke laluan/
(contohnya apabila membukahttp://localhost:8080/
dalam pelayar), fungsi anonim yang kita tentukan akan dilaksanakan.- Fungsi pengendali menerima dua parameter:
http.ResponseWriter
(w
) untuk menulis respons, dan*http.Request
(r
) yang mengandungi data permintaan (header, badan, URL, dll). fmt.Fprintln(w, "Helo dari Backend Golang!")
: Ini menulis “Helo dari Backend Golang!” ke dalam respons yang akan dihantar kembali ke pelanggan (pelayar).
- Fungsi pengendali menerima dua parameter:
port := ":8080"
: Mengekod port di mana pelayan akan mendengar. anda boleh menukar kepada port lain jika 8080 sudah digunakan.fmt.Printf(...)
: Mencetak mesej di console untuk memberitahu kita bahawa pelayan sedang berjalan.http.ListenAndServe(port, nil)
: Ini adalah fungsi yang memulakan pelayan. Ia akan “mendengar” (listen) sambungan masuk pada port yang ditentukan.nil
sebagai parameter kedua bermakna kita menggunakanDefaultServeMux
, tempat pengendali-pengendali yang didaftarkan denganhttp.HandleFunc
disimpan.if err!= nil { log.Fatal(err) }
: Ini adalah cara Golang mengendalikan ralat. JikaListenAndServe
gagal (contohnya port sudah digunakan), ia akan mengembalikan objek ralat. Kita semak sama ada ralat itunil
atau tidak. Jika tidaknil
, kita cetak ralat dan hentikan program menggunakanlog.Fatal
.
Cara Melaksanakan
- Simpan kod di atas ke dalam fail
main.go
. - Buka terminal atau prompt arahan di direktori di mana anda menyimpan fail tersebut.
- Jalankan perintah:
go run main.go
- anda akan melihat mesej
Pelayan berjalan di http://localhost:8080
. - Buka pelayar anda dan lawati alamat tersebut. anda sepatutnya melihat teks “Helo dari Backend Golang!”.
Selamat! anda baru sahaja membuat pelayan backend asas menggunakan Golang dan sepenuhnya dengan standard library!
Langkah Seterusnya
Ini hanyalah permulaan. Backend yang sebenar melibatkan banyak perkara lain seperti:
- Menangani laluan atau URL yang berbeza (
/users
,/products
, dll). anda boleh menambah lebih banyakhttp.HandleFunc
atau membuat logik penghalaan yang lebih kompleks dalam pengendali anda. - Menerima data daripada pengguna (contohnya daripada borang atau badan permintaan JSON). Pakej seperti
net/http
sendiri sudah mempunyai ciri untuk menguraikan data, danencoding/json
sangat berguna untuk JSON. - Berinteraksi dengan pangkalan data. Golang mempunyai pakej
database/sql
dalam standard library yang menyediakan antara muka generik untuk bekerja dengan pelbagai pangkalan data, walaupun anda biasanya memerlukan pemandu luaran untuk pangkalan data tertentu (contohnya PostgreSQL, MySQL, dll).
Standard library Golang juga mempunyai pakej untuk banyak tugas ini, jadi anda boleh terus membangunkan tanpa banyak kebergantungan luaran pada permulaan.
Selamat mencuba!