Mempertimbangkan bagaimana perangkat lunak dikembangkan selama siklus rilis (implementasi, pengujian, perbaikan bug, rilis) saya berpikir bahwa seseorang harus dapat melihat beberapa pola dalam garis kode yang diubah dalam basis kode; misalnya menjelang akhir proyek, jika kode menjadi lebih stabil, orang akan melihat bahwa lebih sedikit baris kode yang dimodifikasi per unit waktu.
Sebagai contoh, orang dapat melihat bahwa selama enam bulan pertama proyek, rata-rata adalah 200 baris kode per hari, sedangkan selama bulan terakhir itu adalah 50 baris kode per hari, dan selama minggu terakhir (tepat sebelum DVD produk dikirimkan), tidak ada baris kode yang berubah sama sekali (pembekuan kode). Ini hanya contoh, dan pola yang berbeda dapat muncul sesuai dengan proses pengembangan yang diadopsi oleh tim tertentu.
Lagi pula, apakah ada metrik kode (ada literatur tentang mereka?) Yang menggunakan jumlah baris kode yang dimodifikasi per unit waktu untuk mengukur stabilitas basis kode? Apakah mereka berguna untuk merasakan jika suatu proyek mencapai suatu tempat atau jika masih jauh dari siap untuk dirilis? Apakah ada alat yang dapat mengekstrak informasi ini dari sistem kontrol versi dan menghasilkan statistik?
sumber
Jawaban:
Satu ukuran yang dijelaskan Michael Feather adalah, " Set Aktif Kelas ".
Dia mengukur jumlah kelas yang ditambahkan terhadap yang "ditutup". Penjelasan tentang penutupan kelas sebagai:
Dia menggunakan langkah-langkah ini untuk membuat grafik seperti ini:
Semakin kecil jeda antara dua garis semakin baik.
Anda mungkin dapat menerapkan ukuran serupa ke basis kode Anda. Sangat mungkin bahwa jumlah kelas berkorelasi dengan jumlah baris kode. Bahkan dimungkinkan untuk memperluas ini dengan memasukkan baris-kode-per ukuran kelas, yang dapat mengubah bentuk grafik jika Anda memiliki beberapa kelas monolitik besar.
sumber
Selama ada pemetaan fitur yang relatif konsisten ke kelas, atau dalam hal ini, sistem file Anda dapat mengaitkan sesuatu seperti gource ke dalam sistem kontrol versi Anda dan dengan cepat memahami di mana sebagian besar pengembangan difokuskan (dan dengan demikian bagian mana dari kode yang paling tidak stabil).
Ini mengasumsikan Anda memiliki basis kode yang relatif rapi. Jika basis kode adalah bola lumpur, Anda pada dasarnya akan melihat setiap bagian kecil yang dikerjakan karena saling ketergantungan. Yang mengatakan, mungkin itu sendiri (pengelompokan saat bekerja pada fitur) adalah indikasi yang baik dari kualitas basis kode.
Ini juga mengasumsikan bahwa bisnis Anda dan tim pengembang secara keseluruhan memiliki beberapa cara untuk memisahkan fitur dalam pengembangan (baik itu cabang dalam kontrol versi, satu fitur pada suatu waktu, apa pun). Jika, misalnya, Anda sedang mengerjakan 3 fitur utama pada cabang yang sama, maka metode ini menghasilkan hasil yang tidak berarti, karena Anda memiliki masalah yang lebih besar daripada stabilitas kode di tangan Anda.
Sayangnya, saya tidak punya literatur untuk membuktikan maksud saya. Ini semata-mata didasarkan pada pengalaman saya menggunakan gource pada basis kode yang baik (dan tidak begitu baik).
Jika Anda menggunakan git atau svn dan versi gource Anda adalah> = 0,39, ini sesederhana menjalankan gource di folder proyek.
sumber
Penggunaan frekuensi garis yang dimodifikasi sebagai indikator untuk stabilitas kode setidaknya dipertanyakan.
Pada awalnya, distribusi dari waktu ke waktu garis yang dimodifikasi, sangat tergantung pada model manajemen perangkat lunak proyek. Ada perbedaan besar dalam model manajemen yang berbeda.
Pada kedua, korban dalam asumsi ini tidak jelas - adalah jumlah yang lebih rendah dari garis yang dimodifikasi yang disebabkan oleh stabilitas perangkat lunak, atau hanya karena tenggat waktu berakhir dan pengembang memutuskan untuk tidak membuat beberapa perubahan sekarang, tetapi untuk membuatnya setelah melepaskan?
Pada ketiga, sebagian besar garis dimodifikasi ketika fitur baru diperkenalkan. Tetapi fitur baru tidak membuat kode tidak stabil. Itu tergantung pada keahlian pengembang dan pada kualitas desain. Di sisi lain, bahkan bug serius dapat diperbaiki dengan sedikit perubahan garis - dalam hal ini, stabilitas perangkat lunak meningkat secara signifikan, tetapi jumlah baris yang diubah tidak terlalu besar.
sumber
Robustness adalah istilah yang berkaitan dengan fungsi yang benar dari set instruksi, bukan kuantitas, verbositas, kesederhanaan, kebenaran tata bahasa dari teks yang digunakan untuk mengekspresikan instruksi tersebut.
Memang sintaks itu penting dan harus benar tetapi apa pun di luar itu, karena berkaitan dengan fungsi yang diinginkan dari instruksi dengan melihat 'metrik' dari instruksi ini mirip dengan merencanakan masa depan Anda dengan membaca pola daun teh di bagian bawah Anda secangkir teh.
Ketegaran diukur dengan cara tes. Tes unit, tes asap, tes regresi otomatis; tes, tes, tes!
Jawaban saya atas pertanyaan Anda adalah bahwa Anda menggunakan pendekatan yang salah dalam mencari jawaban atas salah satu kekokohan. Ini adalah herring merah bahwa baris kode berarti lebih dari kode yang ditempati baris. Anda hanya dapat mengetahui apakah kode melakukan apa yang Anda inginkan jika Anda menguji apakah itu melakukan apa yang Anda perlukan.
Silakan kunjungi kembali harness pengujian yang tepat dan hindari mistisisme metrik kode.
Semoga sukses.
sumber