Bagaimana cara menentukan apakah ada kode yang dihapus berguna dalam kontrol sumber?


9

Jadi saya membaca pertanyaan ini. Haruskah saya menghapus kode yang tidak direferensikan?

Beberapa saran adalah menghapus kode yang tidak direferensikan karena kode tersebut dalam kontrol sumber untuk referensi jika diperlukan nanti.

Bagaimana Anda mengatur kode yang dihapus ini sehingga versi Anda yang lebih baru (atau programmer lain) dapat menemukannya nanti? Apakah Anda membuat cabang terpisah atau menandainya dalam kontrol sumber, entah bagaimana?

Saya belum pernah menghidupkan kembali kode yang dihapus dari kendali sumber sebelumnya, saya sebagian besar hanya menggunakannya untuk melacak perubahan pada kode yang masih hidup. Saya telah mereferensikan cabang sebelumnya ketika mereka memuat karya eksperimental orang lain, jadi mungkin itu cara yang baik untuk menandai bagian kode yang menarik yang dihapus di trunk?


vcs apa yang kamu minta avout? Kedengarannya seperti svn
nyamuk

svn adalah apa yang ada dalam pikiran saya, tetapi dapat diterapkan pada kontrol sumber apa pun, saya pikir?
Peter Smith

Anda mengatakan: "Apa yang ada dalam pikiran saya adalah proyek yang dibatalkan atau ditunda" sebagai reaksi terhadap jawaban. Saya pikir Anda harus mengedit pertanyaan Anda karena itu sangat berbeda dari "kode tidak direferensikan".
Pieter B

Jawaban:


6

Kecuali jika Anda bereksperimen di cabang dan belum yakin solusi mana yang pada akhirnya akan diintegrasi kembali, Anda biasanya tidak merujuk pada kode yang dihapus.

Anda mungkin, pada kesempatan yang sangat jarang , secara eksplisit menggali kode yang dihapus yang Anda ingat samar-samar menyelesaikan masalah yang Anda miliki saat ini . Namun, alasan yang lebih umum Anda akan melihat kode yang dihapus adalah ketika Anda melihat melalui jaminan untuk memahami sesuatu tentang kode atau perilaku aplikasi saat ini sehubungan dengan kode atau perilaku historisnya.

Secara khusus, Anda mungkin ...

  • melakukan review kode umum / memahami suatu refactor
  • mencari komit yang memperkenalkan bug X
  • memuaskan keingintahuan Anda / mencari komit yang memecahkan bug
  • menerapkan kembali fitur atau fitur serupa
  • memahami kode atau data yang sepertinya berfungsi bersama dengan kode yang tidak ada

... dll.

Dan dalam kasus itu, Anda biasanya tidak membangkitkan kode lama. Anda hanya memahami sesuatu yang Anda lihat sekarang menggunakan kode yang dihapus untuk konteks atau panduan.


4

Saya kira, jawabannya adalah: Sebagian besar programmer tidak peduli untuk referensi kode yang dihapus. Untuk beberapa alasan. Beberapa alasan yang muncul di benak saya adalah:

  • Mungkin yang paling penting, kemalasan murni ...

  • Kebanyakan tidak pernah merasa perlu untuk menghidupkan kembali beberapa kode, sehingga mereka tidak memiliki pengalaman yang memotivasi mereka untuk membuat kode kebangkitan lebih mudah.

  • Sebagian besar kode yang dihapus dihapus karena suatu alasan. Biasanya, ini digantikan oleh beberapa kode lain yang lebih baik, setara secara fungsional, atau lebih kuat. Mengapa ada orang yang ingin menghidupkan kembali kode inferior?

    Perhatikan bahwa ini juga merupakan masalah psikologis lagi: Sebagian besar programmer cukup bangga dengan hasil pekerjaan mereka. Bagaimana mungkin terlintas dalam pikiran bahwa masih ada nilai dalam apa yang mereka gantikan?

  • Karena sebagian besar kode tidak sepenuhnya dihapus, tetapi diganti, antarmuka yang telah diubah dalam transisi menyediakan informasi yang cukup jika Anda benar-benar perlu melacak kode yang dihapus karena beberapa regresi yang diperkenalkan oleh kode baru.

Tapi, terlepas dari seberapa banyak atau kurang alasan yang sah Anda dapat mengabaikan kode mati ini, saya pikir itu benar-benar hanya "tidak peduli" pada bagian dari programmer. Dan bahkan jika Anda mencoba menandai barang yang dihapus dengan beberapa atau cara lain, bersiaplah untuk sepenuhnya diabaikan dengan upaya itu ...


Saya kira saya akan mencoba menjawab mengapa. Jika diganti kode, masuk akal setelah waktu singkat, kode yang dihapus tidak lagi benar-benar diperlukan. Yang lebih saya pikirkan adalah proyek dibatalkan atau ditunda. Terutama yang di mana sejumlah besar fungsionalitas dikembangkan atau diubah, tetapi pada akhirnya tidak sepenuhnya selesai dan tidak digunakan dalam produksi saat ini.
Peter Smith

1
@PeterSmith: Anda harus membuat cabang terpisah untuk kode tersebut. Maka tidak perlu menghapus kode, karena tidak ada di cabang kerja.
JacquesB

Menambah apa yang dikatakan @JacquesB, jika Anda memiliki kode yang tidak digunakan sama sekali, itu cenderung menjadi usang agak cepat. Anda mungkin dapat menghidupkan kembali cabang mati setelah satu tahun, setelah lima tahun Anda harus memulai kembali dari awal. Cabang mati mungkin masih berguna sebagai sumber ide, tetapi kode itu sendiri kemungkinan tidak dapat digunakan lagi.
cmaster - mengembalikan monica

1

Pertanyaan ini mungkin kembali pada "Bagaimana Anda menjaga keterlacakan checkin VCS Anda terhadap database bug dan persyaratan sistem Anda?"

Saat-saat ketika orang pergi untuk menghidupkan kembali kode dari kontrol Sumber cenderung saat-saat ketika Anda mengetahui bahwa ada sesuatu yang tidak sengaja rusak dan perlu dibawa kembali.

Hal paling penting dalam skenario itu bagi seseorang yang mencari sedikit kode yang dihapus adalah bahwa mereka dapat dengan mudah melacaknya dengan melihat melalui database persyaratan dan alat pelacakan bug; karena mereka cenderung mencari persyaratan tertentu, atau kata-kata yang menggambarkan fungsionalitas. Mereka tidak mungkin mengetahui nama file sumber atau kelas / fungsi yang dihapus.

Jika Anda ingin melacak beberapa kode eksperimental / menarik yang harus dikeluarkan sebelum rilis, Anda bisa melacaknya dengan beberapa tiket "bug" di sepanjang baris "Hapus kode yang tidak digunakan untuk ..." . Atau mungkin memperkenalkan jenis tiket baru ke sistem untuk fitur Prototipe .

Jadi untuk menjawab pertanyaan secara langsung - jangan gunakan cabang / tag di sistem VCS Anda untuk melacak kode yang dihapus - gunakan alat pelacak perubahan Anda.


0

Saran ini ditujukan bagi orang yang menyimpan kode usang dalam basis kode "untuk berjaga-jaga". Karena kode masih akan ada dalam kontrol sumber, Anda tidak perlu takut menghapusnya. Anda tidak benar-benar mengatur kode yang dihapus seperti itu, karena intinya adalah bahwa itu tidak diperlukan lagi. Anda hanya menambahkan pesan komit yang menunjukkan apa yang diubah dan dihapus di komit. Pesan komit yang paling relevan untuk kode yang dihapus adalah pesan pada saat kode tersebut pertama kali ditambahkan, bukan pesan ketika itu dihapus lagi.

"Kerja eksperimental" benar-benar masalah yang berbeda. Anda harus memiliki cabang terpisah untuk itu.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.