% 80'den fazla değişiklik yaparsam sınıf dosyasındaki yazar adını değiştirmeli miyim?


18

Otomatik kullanıcı arayüzü testleri için mevcut java test sınıfları setini yeniden düzenliyorum. Bazen sınıf dosyasında büyük değişiklikler yapmak ya da tamamen yenilemek sonunda. Bu bana tüm sınıfı yeniden yazdığımda yorum bölümündeki yazar adını benim olarak değiştirmem gerektiğini düşündürüyor.

Açgözlü müyüm? yoksa birinin ismimi görmesi ve şüpheler olması durumunda bana sorması faydalı olur mu?


17
Sürüm kontrolü mü kullanıyorsunuz? Ben taahhüt günlükleri yazarlık için daha güvenilir bir izleme mekanizması olarak bulmak (eğer herhangi bir meşru bulmak gerekiyor ...)
rwong

5
Kodun herhangi bir değeri varsa ad orada olmalıdır. Yani irtibat kişisi. Sorumluluk vb. Ve böyle bir durumda, bitiş tarihi ve yeni ad eklenmiş olarak yapıştırın.
Bağımsız

15
Sınıf dosyalarında bir autor ismine sahip olmanın amacı nedir?
BЈовић

2
Dosyanın yazar adı için yer tutucusu varsa, değişiklik günlüğü için de yer tutucusuna sahip olma olasılığı yüksektir. İsmimi orijinal yazar yerine değişiklik günlüğüne koyardım. Her neyse, kendi parmak izlerimi yazdığım kod üzerinde asla bırakmam, sadece patronumdakiler.
mouviciel

1
adlarını yazar olarak bırakıp aşağıya "yeniden yazılmış / yeniden düzenlenmiş ad tarihi" yazan bir satır ekleyerek sorun
Ryathal

Yanıtlar:


15

Gerçekten bağlıdır ...

Başka birisinin daha sonra orijinal yazara sormak isteyebileceğine dair hafif bir şans olduğunu düşünüyorsanız, adını kodda bırakın. Birinin size şahsen sormak isteyebileceğini düşünüyorsanız, isminizi bırakın. Ve her ikisinin de mümkün olabileceğini düşünüyorsanız, her iki ismi de (ya da ... çalışmasına göre "gibi bir yorum) girin.

Tabii ki, işyerinizde kaynak kontrolü kullanımı zorunlu olduğunda ve kaynaklara erişmenin tek yolu bu olduğunda, karışıklığı kaydedin ve her yazar yorumunu kaynaktan çıkarın. Örneğin, işyerimde, kaynak denetiminde kaynaklara herhangi bir ad yazmak için uğraşmadığımız birçok kaynak dosyamız var. Dosyadan kimin sorumlu olduğunu veya geçmişte olduğunu ya da belirli bir değişiklikten haberdar olmak istersem, TortoiseSVN bana bunun için kolayca bir günlük oluşturacaktır.

Öte yandan, bazı adamlar tarafından yazılmış, diğer adamlara (bazıları yıllar boyunca şirketten ayrıldı) geçen ve hepsi kaynak kontrolü kullanmadan çok fazla değiştirilmiş VBA makrolarımız var. Neyse ki, bu dosyaların yorumları genellikle yazar adları ve bir tür geçmiş günlüğü içerir.


13

OP'nin yazarın adının dosya başlığında bile olup olmadığını sorduğu başka bir gönderiyle karşılaştım ve yanıt verenlerin en az 2 / 3'ü adın listelenmemesi gerektiğini ve sürüm kontrolünü kullanmanız gerektiğini söyledi. sadece dosyayı kimin değiştirdiğini takip edin. Bu gönderiye ne olduğunu bilmiyorum, ama şimdi bulamıyorum. <- (dolayısıyla anonim "OP")

Şahsen, dosya başlığında listelenen yazarı yararlı buluyorum ama biraz farklı bir nedenden dolayı (ve bu ortamlarındaki diğer kişilerle ilgili olmayabilir). Topluluğun sahipliğini uygulamaya çalışsak ve genellikle projenin çeşitli bölümlerinde çalışıyor olsak da, kodun belirli alanlarını diğerlerinden çok daha yakından tanıyan birkaç ekip üyemiz var. Birisi (özellikle gelen ve giden çok sayıda müteahhit) daha önce hiç görmedikleri bir dosyayı açtığında, yazar gidilecek kişi olur. Tek katılımcı ya da çoğunluk katkısı olmayabilir, ancak adının en üstte olması, kod hakkındaki bilgi / bilgiyi ekibin geri kalanına dağıtmada belirli bir sorumluluğa sahip olduğunu kabul eder. Birden fazla kişinin gerçekten katkıda bulunduğunu ve sorumlu hissettiğini başlıkta birden fazla kişi listeleyebiliriz.

Bir dosya hakkında bir sorum olduğunda ve birincil veya en bilgili kişiyi tanımlamak için sürüm kontrolüne başvurmak zorunda kaldığımda sinir bozucu buluyorum. Sonra hepsi kodun ne yaptığını gerçekten bilerek inkar gibi bir adam diğerine gidiyor ... sadece içeri girmek ve bir ya da iki hata düzeltmek zorunda kaldı.

Bu uygulama ekibimizde işe yarıyor çünkü elimizden ayrılma yok. Bir kişi ayrılmadıkça veya farklı bir ekibe geçmedikçe, bu kod / proje kişiyle ve ekibimizle kalacaktır. Açıkçası, kodu koruyan insanlar, onu yazanlarla aynı değilse, o zaman kimse başlıkta listelenen umurunda olmaz.

Dosya başlıkları hakkındaki görüşüm ışığında, dosyanın% 80'ini değiştirdiyseniz ve şimdi herhangi bir soru için go-to adam olduğunuzu düşünüyorsanız (ve muhtemelen bu şekilde hissetmelisiniz), evet, git ilerleyin ve dosya başlığını adınızın üzerine gelecek şekilde güncelleyin. Önceki kişiyi kaldırma konusunda kötü hissediyorsanız, isimlerini de orada bırakabilirsiniz, en azından şimdilik. Her zaman orijinal yazara sorabilirsiniz ve eminim ki adı değiştirdiğinizden bir parça sakıncası yoktur, çünkü dosyanın kendisinin% 80'ini değiştirmeyle ilgili zor bir his olmadığını varsayıyorum.

GÜNCELLEME: Bulunan bu yazı . Ağustos ayından itibaren bir şeyi nasıl geri çektiğimi bilmiyorum. Pragmatik Programcı'yı okumayı bitirdim ve son bölümde yazarlar imzalama işi ve hesap verebilirlik hakkında konuştular (diğer yazı bundan bahsetti, bu yüzden baktım). Kitap mükemmel bir mantıklı ve şimdi düşündüğüme göre, belki de yazar olarak listelenen, söz konusu dosyanın tüm kod incelemelerine dahil edilmesi gerektiği takım politikasını tanıtmalıyız. SVN'de dosyayı en son veya en çok kim değiştirdiği önemli değil, yazarın sahibi ve kaleci.


1
Puanlarını görüyorum ama kim "OP"?
Tarun

Bir proje sayfası veya herkesin görmesi için iletişim bilgilerinin yerleştirilebileceği dahili bir wiki olabilir. Bu bilgileri (dokümantasyon ve irtibat kişileri) kaynak kontrolüne sokmanın zorluğu ... dallanma ve birleşme sırasında ortaya çıkar.
rwong

@Tarun: OP = "orijinal poster" (yani soruyu soran kişi). Çevrimiçi tartışma forumlarında kullanılan bir ifadedir.
sleske

@Tarun ile hemfikir olun, gönderinin bağlantısı cevabınızı perspektif haline getirmeye yardımcı olacaktır. Sanırım bu mu?
yannis

1
@rwong: Dallanma ve birleştirme sırasında neden bir sorun var? Normalde bir değişikliği birleştiren kişi bunu anlamalıdır (aksi halde, neden değiştirirler?). Yani kütükteki kişi soracak olan kişi.
sleske

5

Yazarın adını çok kullanışlı bulmuyorum. Bu sorunun gösterdiği gibi, genellikle tek bir yazar yoktur, bu nedenle "yazar" adını vermek mümkün değildir.

Elbette, büyük katkılarda bulunan tüm kişilerin bir listesini de ekleyebilirsiniz, ancak bunu revizyon kontrol günlüğünden zaten alabilirsiniz - peki anlamı nedir?

Projemde, çoğu dosyada yazar bilgisi yok. Bir sorunuz varsa, günlüklere bakarsınız ve genellikle işin çoğunu bir veya iki kişinin yaptığı açıktır, bu yüzden onlara sorarsınız.

Düzenle

Yanıt, sürüm denetimini kullanan bir proje varsayar. VC'yi (sürekli olarak) kullanmazsanız, bir yazar (liste) koyarsanız ve belki de dosyaya bazı değişiklik geçmişi uygulanabilir bir geçici çözüm olabilir. Yine de, muhtemelen VC'yi mümkün olduğunca çabuk kullanmaya başlamalısınız, bu durumda yukarı bakın :-).


so what's the point?Bir vcs altında olmayan projeler, bir noktada farklı bir vcs'ye taşınan projeler (maalesef tüm taşıma şemaları maalesef geçmiş geçişine izin vermez) ve aynı anda birden fazla vcs kullanan projeler - bazı FLOSS projeleri bunu benimser bir vcs ile sınırlamadan insanların katkıda bulunmasını kolaylaştırmak için bir yaklaşım (svn insanlar git zor bul, git insanlar svn kullanılamaz buluyoruz ve biz her ikisinde de gülmek hg insanlar)
yannis

1
@YannisRizos: Tamam, bu doğru. Herhangi bir yazılım projesinin sürüm kontrolünü kullanacağını varsaydım. Cevabımı düzenledi.
sleske

Ve elbette diğer puanlarım, dahil olan vcs ne olursa olsun, bazı küçük vcs-fu ile kolayca çözülmelidir. Fakat pratikte maalesef nadiren öyleler.
yannis

2

Dosya önemli ölçüde değiştirildiyse, dosyaya bir şey bilen biri olarak dosyaya adınızı eklemek kabul edilebilir olmalıdır.


1

Kaynak dosyanın yaratıcısı kaynak dosyada her zaman (IMHO) belirtilmelidir / olmalıdır. Bu, iyi bir başlık yorumuyla, yazarın kaynağı neden geliştirdiğini ve kodunu yazmak için ne düşündüğünü göstermelidir. Kodun koruyucusuna gelince, kaynak kontrol izlemesi için koruyucunun adını eklemek çok önemlidir.

Yazarın IMHO adında yine kodun kaynak sürümünü, sürüm kontrol sisteminin dışında , değişikliğin gerçekleştiği ilk tarihi ve değişiklik istek numarasını içermelidir . Bunun nedeni, VCS'yi değiştirme kararı ortaya çıkarsa, kodun sürümünün geçmişi, yazarın kim olduğu ve geliştiricilerin başvurabileceği değişiklik talep numarası (eğer bakıcı neden ne yaptığını bilmeleri gerekiyorsa) o yaptı). Böylece organizasyonumuzda formatımız aşağıdaki gibidir:

/**
 * $comment
 * <p />
 * $cr_number, $date, $author, $description 
 **/

3
"Eğer VCS değiştirme kararı ortaya çıkarsa, kodun versiyonunun geçmişi vardır" Umarım hiçbir aklı başında kuruluş, VCS'yi tarihi taşımadan (en azından yakın tarih) geçirmeyi bile düşünmez. Sonuçta, VCS kullanmanın noktası budur.
sleske

1
Tamamen katılmıyorum. Bu tür bilgiler sürüm kontrolü ile izlenmelidir. Aksi takdirde, kimin hangi satırlarda değişiklik yaptığını bilmenin hiçbir yolu yoktur (bir dosyada birden fazla kişinin çalıştığını varsayarsak). Dosyaya koymak, başka bir yerde mevcut olan bilgilerin düşük sadakatli bir kopyasıdır.
Bryan Oakley

1
@Bryan Oakley, sürüm kontrolünü hiç kaldırmıyorum, kodda birinin tanınmasının, sürüm kontrolü yoluyla gerekli aramaya gerek kalmadan kaynakta kimin çalıştığını bilmenin bir yolu olduğunu belirtiyorum. Ayrıca, sürüm kontrol sistemlerinin dışında kullanılabilen bazı kodlar vardır, yazar adı hariç tutulmalı mı?
Buhake Sindi

1

Kod hakkında cevaplar arayışımı başlatmak için birini bulmak için orijinal yazarın adını görmeyi seviyorum. (Yazarın genellikle hatırlaması yoktur, ancak en azından bir çekimdir!)

İsminizi orijinal yazarın altına eklemenizi tavsiye ederim.

Diğer kişinin adını değiştirmeye gerek yoktur, çünkü orijinal iş ihtiyacınızın ve sizden sonra izleyen diğerleri de bu kişiyle konuşmanız gerekebilir.


Üçüncü paragraf için +1, çünkü orijinal yazar kodda bir şey yapan, ancak adını buna eklemeyen başka bir kişi tanıyabilir.
Coyote21

1

@ Yazar yorumlarına ilişkin politikam:

  1. Eğer bu yepyeni bir dosyaysa kendimi @ yazar olarak koydum.
  2. Varolan bir dosyaysa, dosyaya ne yaptığımdan bağımsız olarak @author'u yalnız bırakıyorum.

Bir şeyle ilgili sorularınız varsa, dosyanın @ yazarının kim olduğu önemli değildir - dosyanın @ hangi kısmının düzenlediğinizin kim olduğu konusunda önemlidir. Bunun [git/svn/whatever] blameiçin.

IMO, @author'un gitmesi gerekiyor.


Bir yandan, kendinizi yeni bir dosyada yazar olarak listelersiniz. Öte yandan, yazarın gitmesini mi istiyorsunuz?
Anthony Pegram

1
Şirket kodlama standartları @author etiketinin varlığını gerektirir. Aksi takdirde, hiç kullanmazdım (çünkü gitmesini istiyorum :)).
Michael Moussa
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.