Create & Publish Go Package
Lo pernah gak sih ngerjain project Go, terus ngerasa kayak, “Anjir ini logic udah pernah gue bikin deh di project lain…” tapi tetep lo tulis ulang?
Nah daripada lo wasting time ngoding hal yang sama, mending lo bikin aja custom Go package yang reusable. Jadi tinggal import terus tinggal pake
Step-by-step Cara Bikin Go Package
1. Buat Folder Baru
Pertama-tama, lo bikin dulu folder buat package lo. Misalnya lo mau bikin package buat nge-handle validasi form.
mkdir formvalidator
cd formvalidator
go mod init github.com/Rafli-Dewanto/formvalidator
go mod init ini penting ya, biar package lo punya module path sendiri. Nanti path ini yang bakal lo import di project lain dan pastiin username github lo udah sesuai.
2. Tulis Kode Package-nya
Nah, di dalem folder tadi, lo tinggal bikin file Go sesuai kebutuhan. Misalnya kita bikin validator.go
, inget jangan bikin nama file nya main.go
karena nanti dia bakal jadi program bukan importable package:
package formvalidator
import "strings"
func IsEmailValid(email string) bool {
return strings.Contains(email, "@") && strings.Contains(email, ".")
}
func IsEmpty(input string) bool {
return strings.TrimSpace(input) == ""
}
Keep in mind:
-
Pastiin package-nya bukan main ya karena nanti si go bakal assume kalau code lu itu program bukan importable package begitu juga dengan nama file nya jangan pake main.go
-
Function-function yang mau lo expose ke luar (biar bisa dipake di project lain) harus huruf besar di depan (IsEmailValid, bukan isEmailValid).
3. Publish ke GitHub 🚀
Udah kelar dan dites? Saatnya lo push ke GitHub.
git init
git add .
git commit -m "init formvalidator package"
git remote add origin https://github.com/Rafli-Dewanto/formvalidator.git
git push -u origin master
Done! Sekarang lo udah punya Go package yang bisa di-import di project manapun yang butuh! Tinggal:
package main
import (
"fmt"
"github.com/Rafli-Dewanto/formvalidator"
)
func main() {
email := "rafli@example.com"
if formvalidator.IsEmailValid(email) {
fmt.Println("Email valid 🎉")
} else {
fmt.Println("Email gak valid 💀")
}
}
Gokil gak tuh?
Bonus Tips
- Selalu pake versi tag kalau udah fix, biar orang lain bisa pake versi stabil:
git tag v1.0.0
git push origin v1.0.0
-
Bikin README biar package lo gak cuma bisa dipake lo doang.
-
Tambahin test pake *_test.go file, biar bisa TDD tipis-tipis.
Golang itu enak banget buat bikin modular code. Jadi daripada lo ulang-ulang logic di tiap project, mending lo kumpulin jadi package dan publish. Bisa lo pake sendiri, bisa juga lo share ke temen satu circle (atau Tech Recruiter kalau lo cari kerja 😎).
Yuk mulai dari sekarang, build tools lo sendiri. Karena the best dev is a lazy dev: ngoding sekali, pake berkali-kali. Happy coding bre 🚀