Fundamentals {2/100}

Kali ini kita akan belajar tentang hal-hal dasar tentang Golang, apabila kita melihat dokumentasinya, hal-hal yang saya tulis disini ada di How to Write Go Code.

#Code Organization

Programmer Go biasanya menaruh semua code mereka di dalam satu workspace. Sebuah workspace berisi banyak repository. Setiap repository memiliki satu atau lebih package. Setiap package terdiri dari satu atau lebih Go source. Path ke package direktori akan menentukan import path ke package tersebut.

Golang berbeda dari bahasa pemrograman lain, dimana biasanya di bahasa pemrograman lain setiap project akan memiliki workspace yang terpisah.

#Workspace

Workspace dalam golang adalah direktori hierarki, dimana ia memilki 3 direktori root yaitu src, pkg, dan bin.

  • Direktori src berisi file Go source.
  • Direktori pkg berisi object package.
  • Direktori bin berisi executable commands(File yg bisa dieksekusi).

Go tool akan membuild code Golang dan akan menghasilkan file binary ke direktori pkg atau bin.

Berikut adalah contoh workspace (Diambil dari dokumentasi Golang).

bin/
hello # command executable
outyet # command executable
pkg/
linux_amd64/
github.com/golang/example/
stringutil.a # package object
src/
github.com/golang/example/
.git/ # Git repository metadata
hello/
hello.go # command source
outyet/
main.go # command source
main_test.go # test source
stringutil/
reverse.go # package source
reverse_test.go # test source
golang.org/x/image/
.git/ # Git repository metadata
bmp/
reader.go # package source
writer.go # package source
... (many more repositories and packages omitted) ...

Dari contoh diatas kita bisa melihat sebuah workspace memiliki 2 repository (example dan image). Repository example memiliki 2 command (hello dan outyet) dan satu library (stringutil). Repository image memiliki package bmp dan beberapa package lainnya.

Command dan library dibuat oleh source packages yang berbeda, kita akan mempelajarinya nanti.

#The GOPATH Environment Variable

GOPATH environment variable menspesifikasikan lokasi dari workspace kita, menurut dokumentasi yang ada di situs Golang, hanya ada satu environment variable yang harus di set ketika mendevelop suatu aplikasi dengan Golang, variable itu adalah GOPATH environment variable. Cara mengeset GOPATH environment variable sudah saya tulis di tulisan sebelum ini.

#Import Paths

Import path adalah sebuah string yang akan mengidentifikasi lokasi sebuah package yang ingin kita import.

import "fmt"

Kita bisa mengimport package yang ada di workspace kita atau dari remote repository.


Apabila ada kesalahan atau kekurangan, silahkan dikoreksi, because I’m not a Golang expert, I’m only a man in a silly red sheet.