Sürüm kontrolü yorumları - geçmiş veya şimdiki zaman [kapalı]


12

Sürüm kontrolü yorumları için diğer kullanıcılar ne yapar / önerir - geçmiş veya şimdiki zaman?

yani

  • Değiştirilen X-Y olması.
  • veya
  • X'in y olarak değiştirilmesi .

27
Şunu mu demek istediniz: "version control checking comments"? Asla gerçek koddaki değişiklikleri belgeleyen yorumlar eklemem. Onu tıkar.
JohnFx

1
Gerçekten kafam karıştı - @JohnFx doğruysa, bu tamamen farklı bir soru. Şahsen @Robert'in neden kaynak kodda yorum yapamadığını anlamıyorum.
Armand

FYI: Check-in demekti, "kontrol etmek" değil
JohnFx

Üzgünüz - sadece karışıklığı gidermek için sürüm kontrol yorumları yerine kaynak kodunda yorumlar demek istedim. Soru güncellendi.
Robert W

Yanıtlar:


19

Yorumlar bağlam içinde okunmalıdır, bu yüzden:

Mevcut

Bir yöntemin yukarısındaki kaynak yorumlarında veya bir davranış oluşmadan önce:

// This function does X
function doX() { ... }

geçmiş

Bazı davranışlar meydana geldikten sonraki kaynak yorumlar için

function doX() {
    widget.doY()
    // did Y to widget to prepare it for Z
    ...
}

Ve taahhüt mesajları için

X fonksiyonu değişti


Karışık örnek:

// This function does X
function doX() {
    widget.doY()
    // did Y to widget to prepare it for Z
    ....
}

Not Yukarıdaki koddaki tüm yorumların gereksiz olduğunu düşünüyorum, ancak önemsiz olmayan bir örnekte olması gerekmez.
Armand

7
Şimdi soru değişti, bu cevap biraz konu dışı.
Armand

22

Geçmiş - Gelecekte okuyan herkes, değişimin geçmişte olduğu gibi hareket etmesini ifade edecektir.

Bir şeyi "Değiştirme" olarak ifade etmek, şu anda değişiklik yapma aşamasında olduğunuzu ve kodun tamamlanamayacağını gösterir.

not: Şahsen, sadece ciddi bir değişiklik olduğunda değişiklik yorumları koydum.


10

Yorumlar statik şeylerdir, bu yüzden programın durumunu olduğu gibi değil, olduğu gibi sunmalıdırlar . Özel sorunuza cevap vermek için geçmiş zamanı kullanmak daha uygun olacaktır .

Ancak, bu tür bir yorum sürüm kontrol sisteminize daha uygundur. Sürüm kontrolü, manuel izleme işlemlerinden daha iyi bir değişiklik izleme işi yapar. Versiyon kontrol sistemleri ile bu değişiklikler değişikliğin yapıldığı anda geçerli olduğu için şimdiki zamanda belgelenmesi daha uygundur . Ancak, her ikisi de işe yarayacaktır.

Çok kodunda sadece yorum kodu - amaç, iş mantığı ve istisnai durumlar - anlamak için gerekli olması gerektiğini tavsiye ediyoruz. Değişiklik seti belgelerini sürüm kontrol sisteminize bırakın. VCS kullanmıyorsanız, şimdi başlayın. Ücretsiz olan birkaç yüksek kaliteli VCS vardır (Subversion, Mercurial, Git, vb.).


3
+1, ancak sürüm kontrol yorumlarının da geçmiş zamanda olması gerektiğini düşünüyorum. :-)
Eric King

Ayrı bir changelog dosyasına sahip olmak çok da kötü değil; taahhüt yorumlarını karantinaya almak çok fazla zarar vermez, ancak her dosyaya püskürtmek sadece acı verici bir gürültüdür.
Donal Fellows

Taahhütler her iki şekilde de yapılabilir. Buna o zaman taahhüt sebebi olarak mevcut eylem olarak bakma eğilimindeyim. Günün sonunda, bu İngilizce bir alan muhtemelen saçları bölmek değil Tamam. Bu "Eats, sürgün ve yaprak" gibi değil en.wikipedia.org/wiki/Eats,_Shoots_%26_Leaves
Berin Loritsch

10

Zorunlu şimdiki zamanı kullanıyorum, yani:

"X" i "y" olarak değiştirin

Bu, Git geliştiricileri tarafından önerilir :

  • organ anlamlı bir taahhüt mesajı sağlamalıdır:
    • zorunlu, şimdiki zamanı kullanır: "değiştir", "değiştirilmedi" veya "değişiklikler" değil.

İlk başta biraz garip gelebilir, ancak bir taahhüdü bir şey yapan bir yama olarak düşünüyorsanız, daha mantıklı. (Bu özellikle Git gibi bir DVCS'de, repoda hareket eden diğer insanlardan değişiklik kümeleri çektiğinizde geçerlidir.)


1
İlk başta garip göründüğüne katılıyorum ve onu bir yama olarak görmek kesinlikle doğru yol. Yaptığım bir şey, taahhüt mesajımı okumadan önce kafamda "Bu yama olacak" dersini okumak. Kendinize "Bu yamada ne yaptım?" (Sabit iş parçacığı hatası) kendinize "Bu yama ne yapacak?" (İplik geçirme hatasını düzeltin).
Nick Knowlson

5

Gerçekten önemli değil; Bence bu kişisel tarz ve tercih. Hemen hemen her şeyi yazarken, sadece kendinizle ve diğer yorumlarla tutarlı olun.


2

Kod yorumlarını okumak doğal olmalıdır.

Kendinize söyleyerek kodu okuyorsanız "Bu kod olan bu o zaman kod okuma birisi de düşünerek nasıl muhtemel olduğu gibi o zaman şimdiki zamanda yorumunu yazmalı X yapıyor". Diğer yandan belli bir noktada sen düşünme olsaydı "Bu kod did o zaman geçmiş zaman olmalıdır X". Sonuçta, herhangi bir nedenle kodunuzu nasıl yorumlayacağınıza dair yönergeler (yani bir takım projesi veya bir sınıf, vb.) Altında olmadığınız sürece kişisel tercihinize bağlıdır.


1

Git kullanıyorsanız, git araçlarıyla (örneğin birleştirme) oluşturulan kesin mesajlar şimdiki zamanı kullandığından, kural şimdiki zamanı kullanmaktır.


1

Geçmiş zamanı kullanmalısın.

Bu taahhüdün neyi başardığı sorusuna cevap vermenizin nedeni ? Bunu VCS'nize ne yaptığınızı söyleme olarak düşünün:

Taahhüt 123
XYZ'yi ABC yapacak şekilde değiştirdi

Karşı örnekler vermek için, gelecekteki zamanı kullanmak, başka birinden yapmasını istiyormuşsunuz gibi ses çıkarır:

Taahhüt 123
ABC yapmak için XYZ değiştirme

ve şimdiki gergin sesleri yarı yolda gibi kullanıyor:

Taahhüt 123
ABC yapmak için XYZ değiştirme


0

Şu anki zamanı kullanın: "X'i Y olarak değiştirin", neredeyse açık bir YAPILACAKLAR listesindeki bir öğeymiş gibi.

Genel olarak, tıpkı bir senaryo gibi, "olmak" ve "olduğu" gibi fiillerden kaçının. Örneğin, "yürüyor" değil, "yürüyor".

Ancak bu özel örnekte - kod yorumları hakkında konuşuyorsanız ve check-in yorumları hakkında konuşmuyorsanız - "X'i Y'ye Değiştir" in korkunç bir yorum olduğuna inanıyorum. Yeni bilgi eklemez ve kodun değiştirilmesi gerekiyorsa, bu yanlış bile olabilir. Kodu bir yönteme (veya sınıfa) ayıklamak ve bunun yerine bu yöntemi belgelemek daha iyidir. Yeterince açıksa, sadece iyi bir yöntem adı yeterli olacaktır.

Bundan bahsetmek gerekirse, belgeleme yöntemleri için gelecekteki zamanı kullanabilirsiniz, örneğin: "Sağlanan sayı negatifse, abssayının büyüklüğünü döndürür."


0

Yorumlar, yazılan herhangi bir şey gibi, bir şeyin ifadeleridir (ve olmalıdır) ve sadece doğal dillerde aynı kuralları izlemelidirler (belgelenen duruma veya esere özgü kısayolları ve kısaltmaları dikkate alarak).

Şimdiki zamana ilişkin yorumlar ( .ie "değişiyor" veya "değişiyor" ), dokümante edilmiş algoritma tarafından çalıştırılan bir veri parçasının bir şekilde etkilendiğini göstermektedir. Yani, kodun ne yaptığını veya işlenen verilere neler olduğunu gösterir.

Geçmiş zamandaki yorumlar, yorumun bulunduğu noktadan önce olan bir şeyin iddiasını, önkoşulunu veya son koşulunu göstermelidir. Örneğin:

Bu kod bloğunu girmeden önce giriş zaten doğrulandı

veya

Veriler bu kodun yürütülmesinin sonunda dosyaya yazılmıştır

Geçmiş zamandaki yorumlar, bir şeyin neden yapıldığını da açıklayabilir ( bu işlev, eski veritabanı ile ilgili bir sorunla başa çıkmak için X ve Y'yi yapar. )

Geçmiş zamanda kodun kendisinde (.ie. X, Y olarak değiştirildi ) bir değişiklik olduğunu gösteren yorumlar kodda bulunmamalıdır. Bunun yerine kaynak kodu deposunda revizyon yorumları olarak bulunmalıdırlar.

Gelecekteki yorumlar, yerine getirilmesi veya ele alınması gereken bir durumu göstermelidir, ancak X veya Y nedeni için şu anda yapılmamaktadır. Örneğin:

Sonunda db'yi taşıdığımızda, bu mantığı değiştirmemiz gerekecek

veya

YAPILACAKLAR: en kısa zamanda, giriş doğrulamasını tekrar ziyaret edin - X veya Y tipi giriş için başarısız olabilir, şu anda uygulanamayan büyük değişiklikler gerektirebilir.

Daha sonra yapılacak olan TODO yorum türleri için, bu tür değişikliklerin gerçekten gerçekleştiğinden emin olmak için başka bir belge biçimi mevcut olmalıdır. İstediğiniz son şey zaman ve mekanda kaybedilen TODO'lar: P

Bir tuz tanesi ile alın, ancak genellikle kendi yorumlarımı yaparken genellikle takip ettiğim kurallardır.


0

Yorumlarında tutarlılık çok önemlidir iken bu nedenle, çok önemli, insana iletişim hakkındadır değil ilkeler kendilerini iyi iletişimin şekilde olsun zaman olsun ilkelerine saplanıp için. Bununla birlikte, aşağıdaki sözde standartları kullanıyorum:

  • İstenen bir davranışı açıklayan yorumlar şimdiki zaman zorunlu bir cümle biçimindedir.

    // Calculate the width of the curve at x height.
    
  • Kodlamadaki genel temaları tanımlamak (ve aramayı kolaylaştırmak için) bir dizi tam kapsamlı anahtar kelime kullanın:

    // NOTE: <This code was written this way for a reason.>
    // TODO: <This code is incomplete. Finish it.>
    // HACK: <This code was written this way for a reason that you won't like.>
    // FIXME: <This code has a known flaw. Fix it.>
    
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.