Cara Mengelola Konfigurasi Git dengan Baik
(insight.infograb.net)-
Menetapkan satu strategi branch
- Jika anggota tim dengan beragam keahlian bekerja bersama, pendekatan workflow bisa saling bertabrakan
- Untuk mencegah hal ini, pemimpin harus menetapkan satu strategi branch dan menyebarkannya ke semua orang
- Keputusan workflow branch dapat berbeda tergantung berbagai faktor seperti ukuran tim, tingkat pengalaman, kebutuhan skalabilitas, dan batasan pekerjaan
- Tim pengembang bisa mengikuti workflow yang sudah ditentukan, tetapi juga dapat membuat workflow yang sesuai dengan kebutuhan tim
- Hal-hal yang dicakup workflow
- Workflow terpusat: ada satu repository dan satu branch master. Ada risiko perubahan tertimpa
- Feature branch: setiap kali menambahkan fitur baru, buat branch baru. Commit terkait fitur dilakukan di feature branch tersebut
- Git Flow: bentuk yang lebih ekstrem dari feature branch. Pengembangan dengan Git Flow memiliki branch pengembangan terpisah selain master. Mendukung branch fitur, rilis, dan hotfix. Pengembangan dilakukan di branch pengembangan, lalu dipindahkan ke branch rilis, kemudian di-merge ke branch master
- Pengembangan task-branch: GitLab Flow adalah contoh jenis pengembangan ini. Ini adalah bentuk pengembangan berpusat pada fitur yang menggabungkan feature branch dengan pelacakan isu. GitLab Flow menggunakan branch khusus terpisah untuk memelihara beberapa lingkungan seperti staging, uji operasi, dan produksi. Ini memastikan perubahan yang di-commit diuji di seluruh lingkungan
- Dampak terhadap kolaborasi:
- Ketika semua orang selaras dalam workflow yang sama, risiko menimpa kode atau merusak branch master berkurang
- Semua pekerja menjadi akrab dengan proses pengembangan dan deployment sehingga anggota tim dapat lebih mudah berkontribusi pada pekerjaan satu sama lain
- Strategi branch yang jelas dan ringkas mengarah pada siklus positif dalam me-merge kode baru dan mengembangkan proyek
- Lingkungan seperti ini membantu anggota tim menjadwalkan rapat serta mengelola tenggat waktu dan beban kerja
- Dampak masing-masing workflow terhadap kolaborasi
- Workflow terpusat: efektif untuk tim kecil (kurang dari 5 developer) yang dapat berkomunikasi dengan baik agar dua developer tidak mengerjakan kode yang sama secara bersamaan
- Feature branch dan GitFlow: menghubungkan lebih banyak tim karena memerlukan lebih banyak code review, aturan push, approver kode, dan pengujian yang lebih luas
- Pengembangan task-branch: memungkinkan anggota tim memecah requirement menjadi potongan fitur kecil yang diteruskan ke task branch. Workflow ini mencakup praktik kolaborasi seperti code snippet, code review, dan unit test. Jika pengujian gagal, anggota tim bekerja sama untuk mencari tahu apa yang salah
-
Commit sering dalam unit kecil
- Jika terlalu memprioritaskan tingkat penyelesaian, Anda bisa jadi hanya membuat commit besar saat proyek hampir selesai
- Jika melewatkan verifikasi fungsi sederhana dan langkah-langkah kecil, Anda bisa mengembangkan fungsi yang salah atau menghabiskan waktu ke arah yang keliru
- Lakukan commit setiap kali ada pengujian yang dapat dijalankan dan kode yang berfungsi
- Anda perlu menyederhanakan proyek menjadi langkah-langkah kecil dan menemukan cara mencapai tujuan besar melalui commit yang sering
- Dampak terhadap kolaborasi:
- Jika budaya commit sering terbentuk, semua orang memiliki visibilitas ke repository kode sehingga mudah mengetahui apa yang sedang dikerjakan anggota tim lain
- Jika hasil kerja dibagikan melalui feature branch atau merge request, pekerjaan duplikat dari anggota tim lain dapat dicegah
- Walaupun belum siap ditinjau, tetap perlu sering melakukan push ke feature branch
- Dengan membagikan pekerjaan sebelum selesai, diskusi dan feedback menjadi lebih aktif sehingga kualitas bisa ditingkatkan bahkan sebelum code review
- Jika pekerjaan dibagi ke beberapa commit, ini bisa menjadi informasi berguna bagi developer dan tim lain saat meninjau kode di masa depan
- Cara sebuah fitur dikembangkan dapat diidentifikasi dengan jelas per commit
- Riwayat perubahan yang tidak terkait dapat dibiarkan apa adanya, sementara rollback ke titik waktu tertentu atau membatalkan hanya perubahan kode tertentu dapat dilakukan secara selektif
-
Menulis pesan commit yang detail
- Pesan commit harus mencerminkan bukan hanya isi commit, tetapi juga niat developer
- Pesan commit harus menjelaskan alasan terjadinya perubahan
- Contoh pesan commit yang baik: “Menggabungkan template untuk mengurangi kode duplikat pada layar pengguna”
- Kata-kata seperti ‘perubahan’, ‘peningkatan’, ‘perbaikan’, ‘restrukturisasi’ dalam pesan commit bukanlah informasi yang berguna
- Dampak terhadap kolaborasi:
- Pesan commit yang detail meningkatkan transparansi dan memberikan visibilitas progres, sehingga membantu anggota tim, pelanggan, dan kontributor di masa depan memahami proses pengembangan
- Saat melakukan code review, pesan commit membantu mengikuti prosedur berulang dan memeriksa perubahan yang muncul setelah rilis, diskusi, atau perubahan requirement
- Pesan commit yang rinci membantu tim QA dan keamanan mengidentifikasi area bermasalah saat memeriksa kode serta membantu membatalkan perubahan tertentu
- Jika pesan commit ditulis dengan detail, pekerjaan duplikat antaranggota tim dapat dicegah dan keterlambatan kerja diminimalkan, sehingga laju kemajuan proyek dapat dijaga stabil
-
Mengembangkan dengan menggunakan branch
- Mengembangkan di branch sama dengan bekerja pada salinan status saat ini dari branch tertentu
- Dengan menggunakan branch, Anda dapat mengubah kode tanpa memengaruhi codebase utama
- Riwayat perubahan dikelola di dalam branch
- Saat kode sudah siap, kode dapat di-merge ke branch master
- Coding di branch memungkinkan pendekatan pengembangan yang lebih terstruktur
- Draf yang sedang dikembangkan dapat dipisahkan dan dikelola secara terpisah dari kode master yang stabil dan telah melalui pengujian
- Dampak terhadap kolaborasi:
- Memungkinkan anggota tim mencoba solusi inovatif dan eksperimen untuk memecahkan masalah kompleks
- Tim pengembang dapat melakukan tantangan kreatif tanpa rasa khawatir akan memengaruhi branch master
- Sebelum di-merge ke branch master, tim dapat berkolaborasi untuk memverifikasi bahwa solusi berfungsi dengan baik
- Tim operasi, QA, dan keamanan dapat meninjau kode sebelum deployment, sehingga semua anggota mendapat kesempatan menyampaikan ide dan mendiskusikan potensi masalah sebelum rilis
-
Melakukan code review secara rutin
- Menjamin perbaikan berkelanjutan dan mencegah kode yang tidak stabil
- Saat ada kode yang perlu ditinjau, code review harus diminta kepada rekan, anggota tim, atau ahli domain yang memahami proyek dengan baik
- Hal-hal yang perlu diperhatikan saat melakukan code review:
- Jelaskan perubahan apa yang diperlukan
- Berikan alternatif, tetapi anggap developer sudah mempertimbangkannya
- Bahkan dalam proses pemecahan masalah, tetap perlu mencari cara untuk menyederhanakan kode
- Dampak terhadap kolaborasi:
- Code review menghadirkan sudut pandang lain terkait pemecahan masalah dan implementasi
- Menjadi sepasang mata lain untuk menemukan bug, masalah logika, atau potensi corner case
- Membantu meredakan masalah yang mungkin muncul saat melewati isu-isu sulit menuju rilis
- Solusi masalah dapat ditinjau, opini dapat diberikan, dan review dapat dilakukan melalui kolaborasi antaranggota tim
- Anda dapat mempelajari berbagai metode coding, pengetahuan workflow, dan cara baru memecahkan masalah
Belum ada komentar.