Developing Project with Many Coder

Agas Yanpratama
PDB+R
Published in
4 min readMar 19, 2019
Team Coding Illustration

Halo, pembaca Medium PDB+R yang baik hati dan tidak sombong. Saya, Agas Hustler dari tim PDB+R sekarang akan bercerita tentang Developing Project with Many Coder. Pada story ini akan dibahas beberapa hal yaitu : Apa version control system yang tepat digunakan? Apakah bisa memakai Google Drive? Kenapa git yang digunakan? Flow pengembangan software menggunakan git?

Why use Git?

Git Playlist

Dalam pengembangan perangkat lunak di dalam tim, ada hal-hal yang harus diperhatikan yaitu pengerjaan beberapa fitur dalam waktu yang sama, anggota tim tidak selalu online dalam mengerjakan fitur, dan tiap pengembangan di dalam project yang sama harus bisa dijalankan terlebih dahulu pada local sebelum diunggah ke repositori online agar bisa dijalankan di server.

Salah satu tools yang bisa digunakan adalah git. Git merupakan sebuah VCS (Version Control System) yang berfungsi untuk mempermudah pengembangan perangkat lunak bagi developer yang mengerjakan project tersebut. Tidak hanya menyimpan tiap versi pengembangan secara online, tetapi bisa juga dilakukan di komputer sendiri atau offline. Hal ini memudahkan pengembangan software dikarenakan tiap project code yang ada terisolasi terlebih dahulu agar mudah dalam pengembangannya. Konsep isolasi ini sangat penting karena tidak mungkin kita mencoba menjalankan fitur yang dibuat, tetapi code berbarengan dengan orang lain yang mungkin masih error.

Git menyimpan versi yang ada dalam bentuk commit, dari commit yang ada jika menurut developer sudah jalan dengan baik di local, maka bisa diunggah ke repositori online dan bisa juga menjalankan project yang dibuat kedalam server. Jika dalam versi yang dibuat ada kesalahan dan ingin kembali ke versi sebelumnya kita bisa menggunakan command revert.

Salah satu fitur utama

Merge merupakan salah satu fitur untuk menyatukan dua branch yang berbeda, ketika ada konflik di suatu file maka git akan memberikan merge conflict yang harus diselsaikan terlebih dahulu sebelum melanjutkan development yang sedang dikerjakan, karena biasanya jika ada merge conflict program yang dibuat tidak bisa berjalan dengan baik.

Git Flow

Git Flow Illustration

Git Flow merupakan sebuah model atau metode branching dengan menggunakan git yang dikembangkan oleh Vincent Driessen. Git Flow, sesuai dengan kebutuhan saat ini dimana coder harus berkolaborasi dalam mengembangkan sebuah perangkat lunak. Git Flow mengharuskan kita benar-benar memisah branch, tiap branch yang ada pada project memiliki fitur masing-masing. Berikut fungsi masing-masing branch yang ada pada sebuah repositori Git:

  • Master : Branch yang berisi code software yang sudah siap digunakan oleh client.
  • Hotfix : Branch yang akan digunakan jika ada bug di branch master dan harus diperbaiki secepat mungkin.
  • Staging atau Release: Branch tempat menyatukan fitur-fitur lain yang telah dibuat oleh developer dan biasanya sudah bisa di tes dan di jalankan oleh server.
  • Coldfix : Branch yang akan digunakan jika ada bug di branch staging dan sebaiknya diperbaiki sebelum developer yang menggabungkan fitur yang menyebabkan bug mengerjakan fitur lain.
  • Feature : Branch tempat developer mengembangkan sebuah fitur baru untuk software yang sedang dikembangkan.
  • Develop : Branch yang fungsinya mirip dengan staging dan tidak wajib ada branch ini, tetapi dengan adanya branch develop bisa memastikan terlebih dahulu apakah penggabungan fitur berhasil dan semua fitur yang ada dipastikan terlebih dahulu apakah sudah berfungsi dengan baik.

Keuntungan

Banyak hal yang bisa didapat jika kita menggunakan git flow, berikut keuntungannya:

  • Pengembangan Paralel : Dengan memisahkan branch yang sedang dikembangkan dan yang sudah selesai fiturnya. Hal ini memudahkan pengembangan karena ketika fitur sudah berjalan dengan baik, maka developer bisa menggabungkannya ke staging.
  • Kolaborasi : Git memudahkan kita karena tidak hanya satu developer yang mengembangkan sebuah fitur, tetapi dua developer bisa bekerja sama mengembangkan fitur yang sama.
  • Release and Staging Area : Karena pengembangan dan rilis berbeda, maka branch yang sudah siap rilis, bisa langsung di tes dan dijalankan. Fitur yang baru juga langsung siap di tes dan dijalankan di server ketika sudah ada pada area ini.
  • Emergency Fixes : Karena ada branch hotfix dan coldfix maka kita bisa memastikan bug yang sedang diperbaiki tidak tercampur dengan fitur yang sedang dikerjakan

Penutup

Dalam pengembangan software secara tim sebaiknya kita menggunakan sebuah Version Control System, selain memudahkan untuk menggabungkan fitur — fitur yang sedang dikerjakan oleh tiap orang, banyak keuntungan yang bisa didapatkan jika menggunakan version control system, dan biasanya perusahaan IT besar dalam mengembangkan sebuah perangkat lunak menggunakan version control system.

Version Control System yang sedang trend adalah Git, tidak hanya karena open-source (Gratis), penggunaan git sesuai dalam pengembangan software kecil maupun besar. Git Flow hadir sebagai metode branching yang terstruktur sehingga memudahkan pengembangan perangkat lunak bagi client dan developer.

--

--