5. Kawalan versi dan pengaturan kedudukan
Kod sumber perlu disimpan menggunakan sistem kawalan versi (VCS) supaya perubahan tersebut boleh dijejak sepanjang masa.
Ia memberikan keupayaan untuk:
- kembali kepada versi terdahulu bila-bila masa anda inginkan
- merekodkan perubahan dan sebab anda melakukannya, untuk membantu pembangun masa depan memahami proses tersebut
- mengusahakan perubahan yang selari sebagai pasukan sebelum menggabungkannya bersama
Git ialah VCS yang disyorkan. Ini disokong melalui panduan MAMPU pada kawalan versi di sini. Dalam peristiwa yang tidak mungkin berlaku, terdapat keperluan untuk melencong daripada standard ini. Sila berbincang dengan pemilik projek.
5.1 Melakukan Komitmen
Melakukan komitmen bermaksud membuat suatu set perubahan yang kekal. Anda perlu:
- menulis mesej komitmen yang jelas
- menggabungkan perubahan mengikut tujuannya
- menyemak perubahan baharu
5.1.1 Mesej Komitmen
Menulis mesej komitmen yang baik adalah penting. Bukan sahaja untuk diri anda, tetapi juga untuk pembangun lain pada projek anda. Ini merangkumi:
- pembangun baharu (atau tiada baru-baru ini) yang ingin bangkit untuk mempercepatkan kemajuan
- pihak luar yang berminat yang ingin mengikuti kemajuan projek
- orang ramai di tempat awam (ingat, kami mengekod di tempat terbuka) yang ingin melihat kerja kami, atau belajar daripada amalan kami
- mana-mana pembangun masa depan (termasuk diri anda) yang ingin melihat sebab perubahan dilakukan
Mengabadikan konteks di sekitar perubahan yang membolehkan orang ramai untuk memahami sebab keputusan pelaksanaan tertentu dilakukan, sama seperti rekod keputusan senibina. Kita menjadi lebih baik kepada diri kita pada masa depan.
Kandungan
Mesej komitmen yang baik secara pendeknya meringkaskan “perkara” untuk tujuan imbasan, tetapi juga merangkumi “sebab”. Jika “perkara” dalam mesej tidak mencukupi, terdapat perbezaan sebagai jatuh balik. Ini tidak betul untuk “sebab” perubahan – ini boleh menjadi lebih sukar atau mustahil untuk dibina semula, tetapi sering kali sangat penting.
Contoh
Set cache headers
pilihan:
Set cache headers
IE 6 was doing foo, so we need to do X. See http://example.com/why-is-this-broken for more details.
5.2 Perkara untuk dijauhkan daripada kawalan versi
Maklumat sensitif tidak sepatutnya disimpan dalam sistem kawalan versi. Ini perlu disediakan melalui persekitaran tempat sistem tersebut berjalan, cth. pemboleh ubah persekitaran, storan rahsia.
Beberapa contoh maklumat sensitif:
- Kunci API
- Nama pengguna & Kata laluan
- Rentetan sambungan pangkalan data