İlk kişi yorumları rahatsız edici mi ve profesyonelce mi?


63

Sadece kendimi yazdığım bazı (arkaik Visual Basic 6.0) kodunda şu yorumu yazarken buldum:

If WindowState <> 1 Then
    'The form's not minimized, so we can resize it safely
    '...
End if

Bilinçli olarak neden “biz” i yorumlarımda kullandığımdan emin değilim. Şüpheliyim, çünkü kodun içinde birisinin, her bir satırdaki tüm komutları “yapıyor” sanki sadece onların gerçekleşmesini izlemek yerine sanıyorlar. Bu zihniyet ile, I can resize itşu anda "yapan" benim olduğumdan veya you can resize itgelecekte kim "yapıyor" ile konuştuğum gibi konuşuyormuş gibi kullanabilirdim, ancak bu davaların her ikisi de büyük olasılıkla olduğu gibi, "biz" i kullanırım sanki kodumla bir başkasını yönlendiririm.

Bunu basitçe yeniden yazabilirim it can be resizedve konuyu önleyebilirim, ama merakımı arttırdı: ilk kişiyi yorumlarda kullanmak yaygın mıdır, yoksa rahatsız edici ve / veya profesyonelce mi olduğu kabul edilir mi?


1
Aşağı oy için yapılan yorumlar? Bu benim ilk Programcılarım.SE sorusu ve hala tam bir P.SE sorusu ile iyi bir SO sorusu arasında neyin iyi olduğunu bulmaya çalışıyorum.
dlras2

2
Sizi düşürmedim ama başlık sorusundan hoşlanmadıklarını tahmin edebilirim, çünkü cevapları kısa, konuşkan ve fazlasıyla desteksiz görüşe verilebilirdi. Son sorunuza daha çok benzeyeceğine karar vermek size yardımcı olabilir.
DKnight,

56
'Biz'i seviyorum. Sağlıklı ve çılgınca bir şekilde samimi ve kapsayıcı.
Jeremy,

25
Her şeyi bilen üçüncü şahısta üzerinde çalıştığım tüm hata düzeltmelerini yorumlamaya başlayacağımı düşünüyorum, ofisin etrafında beni popüler kılmalı ... "Küçük John, kötü işlenmiş ilavesinin her zaman bu kodu atlayıp kullanıcıların kafasını karıştıracağını biliyordu sürekli boş görüntüleme alanı tarafından ... "
DKnight,

4
Yorumlarımın saçma bir yazım hatası yapmadığından emin olmak için yapabileceğim tek şey bu. Şimdi pasif sesin kullanılıp kullanılmayacağı konusunda endişelenmeme gerek var mı? Daha sonra, herhangi bir edatları sarkmadığımdan emin olmalıyım - Bunun meslektaşlarımın dayanamayacağı bir şey olduğunu hayal ediyorum. Ve sanırım hiçbir zaman sonsuz bir split kullanmama izin verilmeyecek. Cümle parçaları?
Michael Burr

Yanıtlar:


103

Yorumlar, insanların anlayabilmesi için yazılmalıdır. İnsanlar iletişim kurarken, genellikle "ben", "biz", "siz" vb.

Birileri bazı kodları anlamaya çalışırken, iki veya daha fazla oyuncu var: onu okuyan kişi ve kodun orijinal yazarı. "Biz" demek iyidir. 'Profesyonel' olmadıkça 'robot benzeri' demek istiyorsun.


3
Bu şekilde yazma olarak + 1, yazarın potansiyel okuyucuyu düşünmesini teşvik eder ve bu gerçekten üzerinde daha iyi durulması gerekebilecek kavramları görmenize gerçekten yardımcı olabilir.
Justin Ohms,

64
// we approve of this answer:)
Jarrod Dixon

3
+1 ve bir büyütme: tersine, "yeniden boyutlandırılabilir" gibi pasif-ses yapıları genellikle anlaşılmaları zor bulduğumuzda yazılı olarak reddedilir. Pasif ses kullanıyorsanız, okuyucunuzu cümle için bir konu icat etmeye ve hatırlamaya zorlarsınız.
msw,

1
@ msw: bu, “yeniden boyutlandırılabilir” gibi pasif-ses yapılarını reddediyor olmamız gerekmiyor mu?
tdammers

2
Örneğin @msw, Rusça'da, pasif ses yapıları daha yaygındır ve bazı kültürel farklılıklar nedeniyle daha kolay anlaşılır. (Ve hayır, did not bilerek pasif bir sesle o cümle yazar!)
P Shved

22

Kodun sorumluluğunu otomatik olarak üstlendiğinden, 'I'yi kullanmaktan uzak durmanızı öneririm. Diğer insanlar okuyorsa, kötü görünecektir çünkü bu, bu durumda bir takım çalışması olması anlamına geliyor. 'Biz'i kullanma konusunda kayıtsızım. Bununla birlikte, diğer okuyucuları ung akılsızca dahil etmek gibi görünebilir.

Benim oyum hala netlik ve özlülük için geçerli Mesaj daha az ayrıntılı bir şekilde iletilebiliyorsa, neden başka bir şey seçsin? Yani, bu örnek ile ilgili olarak şunu yazarım:

'The form is not minimized so it can be resized safely.

4
"Mesaj daha az ayrıntılı bir şekilde iletilebiliyorsa, neden başka bir şey seçsin?" Birisinin kötü belgelenmiş kitaplıklarını uygulamaya çalışırken başını duvara çarpması gereken biri olarak - açık kaynak kodlu kütüphaneler bunun için çok ünlüydü. Bence sana katılıyorum, eğer doğru noktalama işaretleriyle iyi cümleler kullan.
Jonathan Henson,

3
Ekip ortamında tüm sorumluluğu üstlenmeyen +1. Ayrıntılı açıklamalardan kaçınmaya çalışmak konusunda hemfikir olsam da, bazen pasif zamanın okunması daha zor olabilir (jkj'nin belirttiği gibi) ve daha az ayrıntılı olmamakla birlikte şaşkınlıktan kaçmayı tercih ederim. =]
dlras2

2
@Jonathan Henson: Birçok yorum iyi, ancak çok fazla faydalı bilgi içeriyorsa. Aynı miktarda bilgi iki eşdeğer şekilde ifade edilebilirse, kısa bilgi daha iyidir.
tdammers

Tavsiyem pasif sesi kullanmaktan kaçınmak. Özellikle ana dili İngilizce olmayan İngilizce konuşanlar için anlaşılması daha zordur.
Ville Laurikari

18

İki yaklaşımdan birini alıyorum, genelde her ne daha iyi geliyorsa.

Gereksinimler veya gerekçeler gibi şeyleri açıklarken, sizin de olduğu gibi "biz" ile giderim:

// We can't proceed unless the user has given us this information.

Süreci açıklıyorsam, zorunlu (komut) bir ses kullanma eğilimindeyim (yanlış terim varsa düzeltin):

// Get the foo from bar and make sure it follows our required format.

İkincisi, kodu tekrarlamaya tehlikeli bir şekilde yaklaşabilir, ancak kullanımları vardır. Yani ben ya da biz kullanmıyoruz, bunun yerine aslında "sen" anlamına geliyor.


Bu da benim tarzım. Anlattığın her iki yolun da bir yeri var.
zourtney,

9
İkincisi de "bizim" vardır. İnsanların doğal olarak birinci şahıs çoğulunda yorum yazmasını ilginç buluyorum.
Reid,

@Reid vay evet bu sadece içgüdüdü, fark etmedim bile. Ama kolayca kolayca "" diyebilirdi.
Tesserex

8

Bunun sadece kişisel olmayan akademik / teknik yazı stilinde bir değişiklik olduğunu düşünüyorum. Pasif sesi kullanarak, "kraliyet biz" i kullanarak ("bir" çok eskidir).

Genel bir kural olarak, bir yine de kullanacak spesifik olmayan - sürdürücüler fayda için yorum değil normalde sadece orijinal yazar vardır.

Niçin - Ben yorumlarda oldukça sık ilk kişi kullanabilir dedi ben özellikle kararlar ve ne ben düşünüyordum.


3
Şahsen ben "bir" tarihli olduğunu hissetmiyorum. Evet, daha az yaygın kullanımda çünkü zaman zaman kullandığı bir şey değil. Ancak, bir yorum bu anlamda "birini" kullanmanın okunaksız olma veya başka şekilde kullanılabilirlikten sapma olma ihtimali çok azdır.
Billy ONeal

7

Yorumlar size bir şeyin neden yapıldığını söylemelidir, ne yapıldığını değil. Yapılmakta olan koddan belli değilse, kodu düzeltin, sadece yorum eklemeyin. Birinci kişi, ikinci kişi vb. Önemli değil, önemli olan gerekli bilgileri iletmek.

Kodu anlatmanız gerekiyorsa, örneğin

'ensure that the window is not minimized
If WindowState <> 1 Then
    'resize the window
    '...
End if

(Lütfen koddaki "1" gibi çıplak sabitleri kullanmayın)


3
Zorunlu olmayı tercih ettiği için +1, bunu düşünmemiştim. Ayrıca, evet, çıplak kullanmamalıydım 1. Genelde bu konuda oldukça iyiyim ... Aklımı internette bıraktığım birkaç mesajdan birini göndermek için bana bırakın.
dlras2

6

Belki biz sihir yapma programı içindeki küçük çocuklar bahsetmektedir? :)

İngilizce pasif ses kullanmak zor ve kötü geliyor. İnsanlar kişi formlarını kullanmayı sever (ben, sen, biz, bir).

Örnek:

(Siz / biz / bir gerekir) üst pencereye yeniden boyutlandırma olayları geçirmek için bir temsilci kullanın

Pencereyi yeniden boyutlandırma olaylarını üst öğeye geçirmek için bir temsilci kullanılmalıdır.

Başka bir örnek (yorumlarda kişi formlarını sıkça ihmal edebileceğinizi unutmayın):

(Biz) bir istisna yakaladık. Bir hata iletişim kutusu göstererek (olacağız).

Bir istisna yakalandı ve bir hata iletişim kutusu gösterilecek.

PS. Edilgen olanı "siz" ile değiştirmek, ingilizce dilinde diğer dillere de sızmaya başladığı için çok yaygındır. Örneğin, ikinci tekil formun bulunduğu Fince (İngilizce "sen" gibi) oldukça komik geliyor.


Dilsel olarak bunun doğru olmadığını düşünüyorum. İlki zorunludur, konusu yoktur. "Lütfen kapıyı kapat." Kabaca "lütfen, kapıyı kapatır mısın?" kısaltma değil, farklı bir gramer biçimidir. İkinci örnekte, "Sadece bir istisna yakaladı. (Olacak) bir hata diyalogunu göstererek" diyebilirsiniz.
Inca,

3

Programın yürütülmesinden bahsediyorsanız, 'biz', 'siz' veya 'ben' değil. Antropomorfizm farkedilmeyecek kadar yaygın olabilir, ancak tehlikeli bir alışkanlıktır (PDF Warning. Dijkstra Warning.):

Antropomorfizmin hepsinden daha kötü olduğunu düşünüyorum. Şimdi “bir şeyler yapmaya çalışmak”, “bir şeyler yapmak istemek”, “doğru şeylere inanmak”, “bir şeyler bilmek” gibi programlar gördüm. Dilin bu kullanımının zararsız olduğuna inanmak kadar naif olmayın. Programcıyı, programın yürütülmesi ile kendini tanımlamaya davet eder ve neredeyse ona operasyonel semantik kullanımını zorlar.


2
Dijkstra Uyarı! Keşke daha fazla şey bir tane olsaydı :(
Tom Anderson

Birinci şahıs çoğulunda yorum yazmanın bir antropomorfizm olduğunu sanmıyorum. Sanırım, "Şimdi bilgisayara talimat veriyoruz ..." yazıyor, sanki yorum yazan programcı okuyucuyu koduyla yönlendiriyor.
blujay

2

İlk kişinin ya da "kraliyet biz" in profesyonelce ya da rahatsız edici göründüğünü sanmıyorum. "Olmak" fiiline sahip olmayan İngilizce altkümesi E-Prime'da İngilizce dilde yorum yazmak için çaba sarf etmemiz gerektiğini düşünüyorum .

Eğer yorumlarda "olmak" için aşırı kullanırsanız, aşağıdaki gibi kafa karıştırıcı ifadeler alırsınız:

// X is 10
// X is the user data of the newly-authenticated user
// X is a BigInt

Şey, belki de bir kerede hepsi değil, ama eşitlik sorunu gerçekten belirsizdir.

E-Prime'daki yazma gereksinimlerinin, yazarın eylemle birlikte bir oyuncuya göstermesi gerektiği için bu gereksinimleri daha net hale getirmeye yardımcı olduğunu düşünüyorum.


İlginç kavram; "X en az 5 olmalı" veya "Y 23'den büyük olmamalı" kavramlarını nasıl ifade eder?
supercat,

@supercat - "X'in değeri 5 veya daha büyük olmalıdır". "Y değeri 23'ü geçmemelidir". Eşitlik, mantıksal veya aritmetik, "olmak" fiilini de kullanmamalıdır. "X, 5 içermelidir" veya "X, 5 olarak değerlendirilir" veya "X, 5 değerine sahiptir" veya somesuch. Özellikle belirsiz bir yorumla karşılaşırsanız, "olmak" fiillerini arayın. Bahse girerim belirsiz yorum, "ama" olmak fiilleri ile dikkat çekiyor. Ayrıca yukarıdaki cevabı E-Prime'da yazdığımı da not edin.
Bruce Ediger

İkincisi iyi; ilki o kadar değil, çünkü -6 5 ya da daha büyük.
supercat,

@supercat - çok iyi. Msgstr "X" 5 veya daha büyük işaretli bir tamsayı değerine sahip olmalıdır ". ABD’de, “eşitlik” ten kaynaklanan değer olarak değişken olarak değil bir değişkenin değerini açıklama noktasını pekiştiren “büyüklük” “mutlak değer” olarak adlandırırız.
Bruce Ediger

2

Yorum yapmak için doğru tarz, kişisel olmayan üçüncü kişidir; " Form küçültülmedi, bu yüzden güvenle yeniden boyutlandırılabilir ".

  • Ben safım.
  • Sen bir ahmaksın
  • Biz çok resmi (ve kraliyet).

Her cümle bu şekilde yeniden ifade edilebilir (yukarıya bakın) ve yazmanın tek profesyonel yolu budur.


11
-1 çünkü: doğru bir yol yok, ben / Siz / Biz / Biz'in temasının bir özetini buluyorum ve son kısmını anlamıyorum. Bir kenara: Yorumlarımda "biz" derken, bir kral gibi konuşmaya çalışmıyorum - seninle konuşuyorum, adam kodumu okuyor ve düşüncelerimde yan yana yürüyor.
doppelgreener

2

Yoruma bağlıdır.

Tipik olarak, İnek Ağzının önerdiği şekilde yorumlar yazıyorum . Aynı zamanda her zaman dokümantasyon üreten yorumları (Doxygen, JavaDoc) bu şekilde yazıyorum.

Ancak, çoğu kişi kaynak dosyalarda kimin yazdığını / dokunduğunu belirlemek için sürüm kontrolünün kullanılmasını ihmal eder. "Ben" demenin uygun olduğu zamanlar vardır, özellikle de "Ben" i takip etmek oldukça kolaylaştığında kodu yazan kişiye. Bir birey olarak bir karar vermişseniz, kodla uyumlu kararları belirlemek ve izlemek için "I" (sürüm kontrolü ile birlikte) kullanmanızı öneririm.


Doxygen ve JavaDoc için +1. Belgelerin yorumlardan farklı olduğuna katılıyorum (bazı yorumlar dokümantasyon oluştursa da) ve bu dokümantasyonu yorumlamamdan bir adım daha resmi tutmak için elimden geleni yapıyorum.
dlras2

1

Benim iyi yaşlı babam (mhrip) şunu sorar: “Uğraşacak daha önemli şeyleriniz yok mu?”

Ancak, şahsen ben "biz" den hoşlanırım. Ayrıca, şirketimdeki tek çalışan olduğumu düşünerek neden kod yayınlamadığımızı, neden yayınlanmış belgelere yazdığımızı merak ediyorum.

Ancak ben kendim ve bu şekilde daha az yalnız hissettiğimize katılıyorum :)


1

"Biz" yazan ve "beni ve bilgisayarı" (veya "ekibim ve bilgisayarı") düşünen tek kişi ben miyim? "Biz" dışarının bize verdiği isteği yerine getirecek, bu da "bizim" isteğimizi okumamız, bazı pencereler açmamız, "iş" gereksinimlerimize dayanarak bazı hesaplamalar yapmamız gerektiği anlamına geliyor. Bu, aynı zamanda düşmanı değil, kodu kendi tarafınızın bir parçası olarak görmenize yardımcı olur.


0

Kısa yorumlar için, bazen ikinci kişiye, bir başkasına talimat veriyorum, neredeyse bir sonraki geliştiriciye yorumu okumaya yönlendiren bir mesaj olarak yazarım. Gibi

//You can get a session_id from SYSSession.getSessionID() if you need one

Daha uzun yorumlar (uzun işlevler üstbilgisi veya birkaç algoritma tanım satırı gibi) Nötr tutmaya çalışıyorum, birinci şahıs, ikinci şahıs veya üçüncü şahıs yok.


İngilizce pasif nadiren iyi sesler: "Gerekirse SYSSession.getSessionID () 'den bir session_id alınabilir"
jkj

0

Kod yeterince açık olmadığı için bu yorumu eklediniz. Genelde iyi tanımlanmış yöntemlerle ifade etme niyetini yorumların kullanılmasından kaçınır buluyorum. Örneğin, bu satır, adlı bir yönteme taşınabildi CanThisFormBeResized.

İyi adlandırılmış bir yöntem, ancak küçük olmasına rağmen, bir yorumu yener, çünkü yorumların ve kodun senkronizasyondan çıkması kolaydır.

Dolayısıyla, çoğu yorum kodla ifade edilebiliyorsa, bu yorumların çok az nedenini bırakır

  • Yorumunuz sizce ise, "Ben"
  • Yorumunuzun paylaşılan bir fikir olması gerektiğini düşünüyorsanız (örneğin en iyi uygulama), "biz" ile başlayın.
  • Yorumunuz yönelik ise bir yarım akıllı tarafından yazılmış bazı tehlikeli kod ve yorumunuza hurda ve yürümek ve onlara yumruk sonra onlarla bu yüzü yüze hitap bir meslektaşım kafa karıştırıcı kod.

1
Üzgünüm, ama ben gerçekten bu tarzın bir hayranı değilim. Özellikle bu kod bir kez, tek bir yerde kullanıldığından ve zaten yeniden boyutlandırma yönteminde tek şeydir. Özellikle VB6 hata ayıklayıcı ile çalışırken, yeniden yapılanma yoluyla karmaşıklık eklemek için kısa ve iyi yazılmış bir yorum yapmayı tercih ederim. Bir kenara, CanThisFormBeResizedmuhtemelen kullanılacaksa , olması gerektiği ThisFormCanBeResizedgibi If ThisFormCanBeResized Then.
dlras2

1
Bu tercih. function() { return this.windowState != 1 }Herhangi bir yorumda olduğu gibi özel bir boolean yöntemi alıyorum . Benden +1
keppla

1
@Dan, ya sonra başka biri gelirse: neden bir pencereyi küçültüp küçültemeyeceğini belirlemek için neden onları araştırıp mantığı yeniden şekillendirir? Küçük kod satırınızı bir yorumla bile belirleyemez ve kendi kodlarını ekleyebilirler. Şimdi, eğer mantık değişirse değiştirilmesi gereken 2 yeriniz ve yorumların kodla senkronize edilemeyeceği 2 yeriniz var. Neden iyi adlandırılmış 1 satır yöntemi (durumu değiştirmez) karmaşıklık ekler? En basit ve en temiz refactorlardan biri.
Steve Dunn

0

Genel bir kural olarak, ilk kişiyi kullanmanızı öneririm, yani I.

Neden? Ben'in iyelik yapısından dolayı değil, insanlar başka bir bakış açısıyla konuştukları için, çok fazla kelime kullanma veya cümleleri çok karmaşık hale getirme ve şeyleri açıklamaya çalışırken kaybolma eğilimindedirler. İlk kişi her zaman okuması en kolay olma eğilimindedir.


0

Şahsen ben yazarım (C # ile):

if (WindowState != WindowState.Minimised)
{
     ResizeWindowSafely();
}

Veya bu satırlar boyunca bir şey, yorumlara gerek yok.


ResizeWindowSafelyyeniden boyutlandırılıp boyutlandırılmayacağını bilmiyorsanız ve dolayısıyla if (WindowState != WindowState.Minimised)kendisini içermesi gerekebileceğini söyler.
dlras2
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.