April 24, 2013

Best Practices untuk Organisasi Direktori Proyek Go di Github / BitBucket / Assembla / etc


Saat sudah membuat proyek pengembangan software menggunakan Go dan akan dipublikasikan ke server penyedia repository Git (seperti github.com, bitbucket.org, atau assembla.com), kita harus menentukan struktur direktori yang baik dari proyek kita. Berdasarkan panduan dari How to Write Go Code (http://golang.org/doc/code.html), tiap proyek kita bagi menjadi beberapa direktori:
  1. src: berisi source code
  2. pkg: berisi paket object code yang telah dikompilasi (pustaka)
  3. bin: binary executable
Jika untuk diri sendiri, barangkali ini sudah selesai. Jika proyek akan kita publikasikan ke git repo, struktur akan sangat berpengaruh. Initialisasi git seharusnya tidak dilakukan di $GOPATH, tetapi di src/. Perhatikan, pada contoh berikut ini $GOPATH adalah root directory dari proyek tempat file test.go berada:


Saya sudah mempunyai account github, dan root directory saya di github adalah http://github.com/bpdp, dengan demikian, saat membuat proyek, misalnya namanya adalah goarangodb, maka proyek tersebut akan berada di http://github.com/bpdp/goarangodb. Untuk kasus seperti ini, source code dari proyek kita sebaiknya diletakkan di $GOPATH/src/github.com/bpdp/goarangodb, sekaligus goarangodb menjadi nama paket. Inisialisasi git dilakukan di direktori $GOPATH/src/github.com/bpdp/goarangodb.

Mengapa harus demikian? Pada saat melakukan go get http://github.com/bpdp/goarangodb, artiffak dari proyek tersebut (source code, README, dll) akan diletakkan di direktori $GOPATH/src/github.com/bpdp/goarangodb. Dengan demikian, kita sebagai pengembang akan mempunyai situasi yang sama dengan deevloper yang meng - go get proyek kita.


0 comments:

Posting Komentar