Mengenai kawalan versi, saya menyokong untuk membuat banyak komitmen yang kecil dan fokus berbanding yang besar.
Dan semasa saya masih hidup, saya akan membuat perubahan kecil kepada bumi.
— Arnab yang Takut
Matlamatnya bukan hanya untuk membuat komitmen kecil, tetapi untuk menjadikannya fokus dan bermatlamat. Setiap komit harus mewakili satu perubahan logik kepada pangkalan kod.
Pada penghujung hari, kami mungkin mencapai perubahan yang sama, tetapi komitmen kecil membantu kami mengurus masa dan memastikan tugas kami selesai dengan betul, sambil meninggalkan maklumat berguna untuk masa hadapan.
Pecahkan projek besar kepada tugas yang lebih kecil. Ini ialah kemahiran pengurusan projek tradisional yang merupakan bahagian penting untuk menggunakan masa anda dengan baik dan menghasilkan hasil yang berjaya. Undang-undang Parkinson mencadangkan bahawa tugasan berkembang untuk mengisi masa yang diperuntukkan, jadi dapat mengenal pasti lebih banyak tugasan yang lebih kecil membantu mengehadkan masa rayapan.
Fikirkan tentang cara tugasan diterjemahkan ke dalam mesej komit deskriptif. Jika tugasan atau mesej bertindih atau serupa, bolehkah anda menggabungkan tugasan tersebut? Jika tidak, kenal pasti perbezaan utama untuk membezakannya. Petua Pro: Jika perkataan "dan" muncul dalam mesej komit anda atau memerlukan beberapa ayat untuk dijelaskan, komitmen anda harus dipecahkan.
Pastikan komitmen anda meninggalkan projek dalam keadaan berfungsi. Walaupun tidak selalu mungkin, garis panduan ini sangat membantu apabila berbilang pembangun bekerja pada satu repo. Apabila kami membiarkan projek berfungsi, kami boleh membuat dan menggabungkan cawangan dengan lebih kerap dan mengehadkan konflik. Dan, sekiranya anda perlu membatalkan perubahan, anda berkemungkinan besar akan membiarkan aplikasi berfungsi.
Semak perubahan anda sendiri sebelum membuat komitmen untuk memastikan fokus. Kadang-kadang kita dapati perubahan oportunistik atau terlepas pandang terhadap tugas utama. Walaupun kami tidak mahu kehilangan cerapan dan kemas kini tersebut, terdapat beberapa cara untuk mengasingkan perubahan dalam alat kawalan versi dan IDE untuk memastikan komitmen yang berbeza.
Apabila bilangan komitmen meningkat, mungkin sukar untuk memastikan komitmen anda bermakna. Pertimbangkan untuk menggunakan gaya seperti Conventional Commits untuk kejelasan dan konsistensi.
Faedah komitmen kecil menjadi jelas dalam beberapa bidang utama:
Komit yang kecil dan terfokus lebih mudah difahami dan disahkan. Penyemak boleh melihat komitmen yang berbeza secara berasingan dan menumpukan pada butiran yang berkaitan untuk setiap unit kerja yang lebih kecil.
Komitmen yang lebih kecil mengurangkan risiko keletihan pengulas dan menghasilkan kualiti keseluruhan yang lebih tinggi.
Minta pengaturcara menyemak 10 baris kod, dia akan menemui 10 isu. Minta dia membuat 500 baris dan dia akan berkata ia kelihatan bagus.
– Giray Özil
<script> // Detect dark theme var iframe = document.getElementById('tweet-306836785739210752-603'); if (document.body.className.includes('dark-theme')) { iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=306836785739210752&theme=dark" } </script>
Komitmen kecil memudahkan untuk mengenal pasti tempat isu diperkenalkan. Dengan komitmen berbutir, anda boleh menggunakan alat seperti git dua dua dengan lebih berkesan untuk mengenal pasti masalah. Setelah kecacatan dikenal pasti, komitmen kecil membantu kami mengehadkan risiko dan skop ujian menukar kod sedia ada.
Setiap komitmen harus menceritakan kisah tentang satu perubahan. Apabila komitmen kecil, cerita itu menjadi lebih jelas dan lebih bermakna kepada pembangun masa depan, termasuk diri anda sendiri.
Apabila umur projek semakin meningkat, sejarah komit boleh memberitahu kami tentang laluan yang diambil dan ditinggalkan, tentang ralat yang diselesaikan dan risiko yang perlu diketahui. Lebih baik dan lebih spesifik mesej komit, lebih mudah untuk memahami sejarah projek.
Apabila komitmen kecil, bukan sahaja risiko penggabungan konflik daripada perubahan bertindih berkurangan, tetapi ia juga lebih mudah untuk menyelesaikan konflik dengan perubahan yang lebih kecil.
Seperti yang dinyatakan sebelum ini, jika berlaku kesilapan, mengembalikan komitmen kecil adalah kurang berisiko berbanding cuba membuat asal perubahan besar yang saling berkaitan.
Kod tidak terikat adalah seperti mempunyai dokumen yang tidak disimpan. Lebih banyak masa berlalu antara baris kod yang diubah suai dan didaftar masuk, lebih banyak peluang untuk kehilangan perubahan itu. Pemadaman secara tidak sengaja; menimpa; gagal menyimpan perubahan sebelum menukar cawangan; menetapkan semula cawangan dan bukannya fail...terdapat banyak cara kita boleh kehilangan kerja.
Saya mengawal versi moden seperti Git, percabangan boleh dikatakan percuma. Walaupun git stash boleh berguna dalam secubit, ia memerlukan usaha yang hampir sama untuk mencipta cawangan sementara yang boleh digabungkan menjadi ciri atau cawangan penyelenggaraan sekiranya ia akhirnya bernilai.
Perubahan komited boleh ditolak ke cawangan atau percabangan repo pada pelayan, membenarkan orang lain melihat dan mengusahakannya secara kolaboratif dan memastikan sistem setempat anda bukan satu titik kegagalan yang boleh merugikan anda.
Apabila membuat banyak komit kecil dalam cawangan ciri, mungkin diingini untuk mencantumkannya menjadi satu komit pada penghujungnya, sebaik-baiknya menggunakan permintaan tarik supaya anda tidak kehilangan sejarah diskret yang sangat membantu semasa semakan kod.
Saya lebih suka menyimpan sejarah, tetapi ia juga bergantung pada skop dan kekerapan gabungan ini.
Kami selalunya tidak memerlukan setiap perubahan kecil untuk diwakili pada akhirnya, tetapi jika komitmen tidak berkongsi leitmotif – satu tema yang menyeluruh – maka ia mungkin tidak sepatutnya dipecahkan bersama-sama.
Ini berkaitan dengan manfaat Sejarah Lebih Bersih. Semasa kerja sedang dijalankan, mesej berasingan ini mungkin memudahkan untuk mengesan kesilapan atau ketidakkonsistenan dalam semakan kod:
refactor: JIRA-12345 - Replace guards with optional chaining refactor: JIRA-12354 - Replace logical OR with nullish coalescing
Setelah kerja itu disahkan dan sedia untuk digabungkan, satu komitmen yang terbantut boleh mewakili mereka:
refactor: JIRA-12345 - ES2020 update
Jika cawangan anda termasuk beberapa komitmen pemfaktoran semula, pertimbangkan untuk menggabungkan dan memusnahkannya sebelum anda melakukan kerja tambahan pada projek anda. Itu membolehkan pemfaktoran semula diwakili sebagai satu komitmen dalam sejarah yang lebih luas sambil kekal berasingan daripada kerja projek.
Ini mengasingkan lagi risiko tugas yang berbeza ke dalam catatan sejarah yang berasingan dan menggalakkan jangka hayat cawangan yang lebih pendek, jadi
Perlu membiasakan diri jika anda tidak terbiasa dengan gaya tersebut, tetapi komitmen kecil boleh membantu meningkatkan kualiti kod dan proses pembangunan anda.
Berlatih membuat komitmen yang lebih kecil. Seperti hampir semua kawalan versi, hasil kerja anda hari ini mendatangkan faedah untuk diri sendiri dan orang lain, tetapi hari itu boleh datang lebih awal daripada yang anda jangkakan.
Atas ialah kandungan terperinci Buat Komitmen Kecil. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!