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:

  1. Prestasi: Golang sangat pantas, baik semasa kompilasi mahupun semasa dilaksanakan. Ini penting untuk backend yang responsif.
  2. Concurrency: Dengan ciri goroutines dan channels, Golang membuat pembangunan aplikasi yang mengendalikan banyak permintaan secara serentak menjadi jauh lebih mudah dan selamat.
  3. 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).
  4. Sintaks yang mudah: Kod Golang cenderung mudah dibaca dan ditulis, dengan peraturan yang ketat yang menggalakkan konsistensi.
  5. 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:

main.go
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 membuka http://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).
  • 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 menggunakan DefaultServeMux, tempat pengendali-pengendali yang didaftarkan dengan http.HandleFunc disimpan.
  • if err!= nil { log.Fatal(err) }: Ini adalah cara Golang mengendalikan ralat. Jika ListenAndServe gagal (contohnya port sudah digunakan), ia akan mengembalikan objek ralat. Kita semak sama ada ralat itu nil atau tidak. Jika tidak nil, kita cetak ralat dan hentikan program menggunakan log.Fatal.

Cara Melaksanakan

  1. Simpan kod di atas ke dalam fail main.go.
  2. Buka terminal atau prompt arahan di direktori di mana anda menyimpan fail tersebut.
  3. Jalankan perintah:
    go run main.go
  4. anda akan melihat mesej Pelayan berjalan di http://localhost:8080.
  5. 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 banyak http.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, dan encoding/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!