Kaynak kontrolünde silinmiş faydalı bir kod olup olmadığı nasıl belirlenir?


9

Yani bu soruyu okuyordum Referanssız kodu kaldırmalı mıyım?

Tavsiyelerin bazıları, daha sonra gerekmesi durumunda kaynak referans kontrolü için referans gösterilmediğinden referanssız kodu silmekti.

Silinen bu kodu, daha sonraki bir sürümünüzün (veya başka bir programcının) daha sonra bulabilmesi için nasıl düzenlersiniz? Ayrı bir dal mı oluşturuyorsunuz veya bir şekilde kaynak kontrolünde mi etiketliyorsunuz?

Daha önce silinmiş kodu daha önce kaynak denetiminden diriltmedim, çoğunlukla sadece canlı koddaki değişiklikleri izlemek için kullandım. Daha önce başkasının deneysel çalışmasını içerdiğinde şubelere başvurdum, bu yüzden belki de bu bagajda silinmiş kodun ilginç bölümlerini işaretlemek için iyi bir yoldur?


Hangi vcs'den kaçınmak istiyorsun? svn
gnat

svn aklımda ne var, ama herhangi bir kaynak kontrolü için geçerli olabilir, sanırım?
Peter Smith

Diyorsunuz ki: "Aklımda olan şey, bir cevaba tepki olarak iptal edilmiş veya ertelenmiş projeler" Sanırım sorunuzu düzenlemelisiniz çünkü bu "referanssız kod" dan oldukça farklı.
Pieter B

Yanıtlar:


6

Bir dalda denemeler ve henüz kesin sonuçta yeniden entegre edilecek olan çözüm değildir sürece, genellikle yok silinen kod bakın.

Sen, üzerinde olabilir çok nadir vesileyle açıkça belli belirsiz sahip bir sorunu çözmek hatırlama olduğunu kaldırılan kodu için kazmak elimizde . Ancak, silinen kodu görmenin daha tipik nedeni, bir uygulamanın geçmiş koduna veya davranışına ilişkin geçerli kod veya davranışıyla ilgili bir şey anlamak için biriktirme planına bakmanızdır.

Özellikle ...

  • genel bir kod incelemesi yapmak / bir refactoru anlamak
  • böcek X tanıttı taahhüt arıyor
  • merakınızı tatmin etmek / bir hatayı çözen taahhüdü aramak
  • bir özelliği veya benzer bir özelliği yeniden uygulama
  • anlayış kod veya veri görünüyor öyle biri yok koduyla birlikte çalışır

... vb.

Ve bu durumlarda, genellikle eski kodu yeniden diriltmezsiniz. Şu anda gördüğünüz bir şeyi , bağlam veya yönlendirme için kaldırılan kodu kullanarak anlıyorsunuz .


4

Sanırım cevap: Programcıların büyük çoğunluğu silinen koda başvurmakla ilgilenmiyor. Birkaç nedenden dolayı. Aklıma gelen bazı nedenler:

  • Muhtemelen en önemlisi, saf tembellik ...

  • Birçoğu bazı kodları yeniden diriltme ihtiyacını hiç hissetmedi, bu yüzden onları diriliş kodunu kolaylaştırmak için motive eden herhangi bir deneyimleri yok.

  • Silinen kodların çoğu bir nedenle silinir. Genellikle, başka, daha iyi, işlevsel olarak eşdeğer veya daha güçlü bir kodla değiştirilir. Neden biri düşük kodu yeniden canlandırmak istesin ki?

    Bunun da yine psikolojik bir sorun olduğuna dikkat edin: Çoğu programcı çalışmalarının sonuçlarıyla gurur duyuyor. Nasıl değiştirdiklerinde hala bir değer olduğu akla nasıl geldi?

  • Çoğu kod tamamen silinmediği, ancak değiştirildiği için, geçişte değiştirilen arabirimler, yeni kodun getirdiği bazı gerilemeler nedeniyle gerçekten silinen kodu izlemeniz gerekiyorsa yeterli bilgi sağlar.

Ancak, ölü kod için bu saygısızlığın arkasına ne kadar az ya da çok geçerli neden koyabileceğinizden bağımsız olarak, bunun gerçekten programcılar açısından bir "umursamadığınızı" düşünüyorum. Ve silinen şeyleri bir şekilde veya başka bir şekilde işaretlemeye çalışsanız bile, bu çaba ile tamamen göz ardı edilmeye hazır olun ...


Sanırım nedenini cevaplamaya çalışacağım. Kod değiştirilirse, kısa bir süre sonra mantıklıdır, silinmiş kod artık gerçekten gerekli değildir. Aklımda kalanlar iptal edilmiş veya ertelenmiş projeler. Özellikle büyük miktarda işlevselliğin geliştirildiği veya değiştirildiği, ancak sonuçta tam olarak tamamlanmadığı ve mevcut üretimde kullanılmadığı kişiler.
Peter Smith

1
@PeterSmith: Bu kod için ayrı dallar oluşturmalısınız. Bu durumda, yine de çalışma dalında bulunmadığından kodu silmeye gerek yoktur.
JacquesB

@JacquesB'nin söylediklerine ek olarak, hiç kullanılmayan bir kodunuz varsa, oldukça hızlı bir şekilde modası geçme eğilimindedir. Bir yıl sonra ölü bir dalı canlandırabilirsiniz, beş yıl sonra sıfırdan yeniden başlamanız gerekir. Ölü dal hala bir fikir kaynağı olarak yararlı olabilir, ancak kodun kendisi artık kullanılamaz.
cmaster

1

Bu soru muhtemelen "VCS checkin'lerinizin hata veritabanına ve sistem gereksinimlerinize karşı izlenebilirliğini nasıl sürdürüyorsunuz?"

İnsanların Kaynak kontrolünden kodu diriltmeye gittikleri zamanlar, bir şeyin istemeden kırıldığını ve geri getirilmesi gerektiğini öğrendiğiniz zamanlar olma eğilimindedir.

Bu senaryoda, kaldırılan kodun belirli bir parçasını arayan biri için en önemli şey, gereksinimler veritabanına ve hata izleme aracına bakarak kolayca izleyebilmeleridir; çünkü belirli bir gereksinimi veya işlevselliği tanımlayan kelimeleri arıyor olmaları muhtemeldir. Kaynak dosyanın adını veya kaldırılan sınıfı / işlevi bilmeleri olası değildir.

Eğer yayınlanmadan önce çıkarılması gereken bazı ilginç / deneysel kodu izlemek istiyorsanız, sadece "Kullanılmayan kodu şunun için kaldır ..." satırları boyunca bazı "hata" biletleri ile izleyebilirsiniz . Veya Prototip özelliği için sisteme yeni bir bilet türü ekleyin .

Soruyu doğrudan yanıtlamak için - silinen kodu izlemek için VCS sisteminizde dallar / etiketler kullanmayın - değişiklik izleme aracınızı kullanın.


0

Tavsiye, "her ihtimale karşı" kod tabanında eski kodu tutan insanlar için tasarlanmıştır. Kod kaynak kontrolünde hala var olacağından, onu silmekle korkmamalısınız. Silinen kodu gerçekten böyle düzenlemezsiniz, çünkü asıl mesele artık buna gerek olmadığıdır. Sadece taahhütte nelerin değiştirildiğini ve silindiğini gösteren bir taahhüt mesajı eklersiniz. Silinmiş kod için en alakalı tamamlama mesajı, kodun tekrar eklendiği mesaj değil, ilk eklendiği mesajdır.

"Deneysel çalışma" gerçekten farklı bir konudur. Bunun için ayrı bir şubeniz olmalı.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.