Yazım / dilbilgisi ile ilgili hataları birinin kodunda mı belirtmeliyim? [kapalı]


106

Bir iş arkadaşının kodunu incelerken, fonksiyon isimlerinde bazı yazım hataları ile fonksiyon ve değişken isimlerinde 'doesUserHavePermission ()' yerine 'doesUserHasPermission ()' gibi gramer hataları ile karşılaştım.

Bunları ona mı göstermeliyim yoksa bunları farkederek çok bilgili miyim?


3
İkinci dil değilse, kişinin gerçekten İngilizce ile yardım istemesine dikkat edebilirim. Bazı insanlar, yapılandırılmış düşünceyi ifade edemeyeceklerini, sadece uygun İngilizce becerilerine sahip olmadıklarını bilmekten memnundur. İngilizce onların ana dili ise, o zaman evet, kötü gramer bir sorun olduğunu düşünüyorum.
Rei Miyasaka,

31
Evet. Yanlış yazım ile bir API olduğunda gerçekten sinir bozucu. Orman yangını gibi yayılır. Bu yüzden en kısa zamanda düzeltmek daha iyidir.

9
@Rei: İngilizcenin anadili olup olmadığı, profesyonel bir ortamda ilgisiz olmalıdır; o zaman onlar için çok kötü değilse de mazereti yoksa, aynı standartlara uymaları gerekir.
Thomas Bonini,

4
@Rei, reklamını yaptığım birçok programlama işi, bu nedenle Anadillerinde yeterlilik gerektiriyor. Gereksinimleri, tasarımı, özellikleri ve yapıyı tartışabilmek, bir bütün olarak yazılım ürününün tamamı için çok önemlidir.
Stephen Furlani

Yanıtlar:


205

Yazım ve dilbilgisi hataları ile Kod olan unmaintainable .

  • İnsanlar kötü dilbilgisini hatırlamayacaklar, bu yüzden fonksiyonu yazıldığı gibi çağırmaya çalışacaklar ve böylesi hatalar oluyor.

  • Nasıl yazıldığını bilmiyorsanız, koddaki bir şeyi öğrenemezsiniz.

  • Dilbilgisi / yazım yapan çoğu insan bunu tutarsız bir şekilde yapar, bu nedenle yanlış adlandırmada birçok hata ortaya çıkarır. Bu özellikle, kullanımdan önce açıkça belirtilmesi gereken değişkenler gerektirmeyen dillerde sorun yaratır, çünkü yeni bir yazım ekleyebilir ve kodunuz berbat olduğunuzu bildirmek için bir taşlama durmasına gelmez.

Bu sorunların düzeltilmesi, bilgiçlik taslak değildir, başkalarının istihbarat, okuryazarlık, vb. Düşünceleri için zorunlu değildir (bu büyük bir yan etkidir); kaliteyi ve bakım kodunu yazmakla ilgilidir .


7
+1 Bazen birinin duygularını korumak önemlidir, ancak bir kod incelemesi yapıldığında ... yakalarsanız, yorum yapmak adil bir oyundur. Şirketim kod incelemeleri için pota kullanıyor; bu, tüm incelemelerin yakalandığını görmesini sağlar ve incelemecinin bir kusur olarak değil, stil olarak işaretlemesini sağlar.
opello

15
+1 - Yazım ve dilbilgisi hataları bir API'ye girdiğinde, tekrar ortaya çıkmaları imkansızdır. Üç yılın daha iyi bir kısmını "Etkinlik" yerine "Avtivite" yazmak zorunda geçirdim ve bunu yapmak her zaman fiziksel olarak acı verdi.
John Bode,

7
Daha iyi veya daha kötüsü için, iyi programlama pratiği genellikle bilgiçlik gibi bir şeye iner. Ayrıca, Referrerorijinal HTTP spesifikasyonunda yanlış yazılmış kişiyi bulmak ve onu ayak bileğine tekmelemek istiyorum. Elbette, muhtemelen Berners-Lee'ydi ve bundan sonra kendimi suçlu hissedecektim ...
Malvolio

2
@Stephan Furlani: yapmaya çalıştığım nokta buydu; sahip olmadığımız bir API'nin parçasıydı. Sonunda düzeltemedik ve bu sorunu çözme süreci, kimsenin uğraşmak istemediği kadar çirkin ve uzundu.
John Bode,

2
@John Bode, bir sarmalayıcı işlevi oluşturmuş olmanız gerektiğini düşünüyorum :) C # bunun için düzgün bir numaraya sahiptir (yine de adını unuttum).
İş

38

Evet kesinlikle. Dilbilgisi doğru ise adı hatırlamak daha kolaydır. Adı ve gramer hatalarını hatırlamaya çalışmak tamamen başka bir şey.


29

Bunları resmi bir kod incelemesinde kusurlar olarak göstermeyin. Bunun yerine, bir girişi işaretleyin ve onunla özel olarak onlar hakkında konuşun. Bu konuda mümkün olduğunca diplomatik olun, sadece "Hey, dikkatimi çeken bir şey ve gerçekten böyle bir şeyle ilgilenen insanlara rastladım, programcının dikkatsiz ve özensiz görünmesini sağlıyor."

Bu kod ise, bir müşteri görecek, kesinlikle düzeltilmesi GEREKİR. Beğenin ya da beğenmeyin, şirketinizin ünü yansıtır.

Verdiğiniz örnek için, UserHasPermission olarak başladığından şüpheleniyorum ve bir başkası ona yerel uygulamanın UserBlahBlah () yerine, UserBlahBlah () olduğunu söyledi ve sadece dilbilgisi değişimini gözden kaçırdı.


12
Başkalarının algılarıyla ilgili olduğunu söylemek onu önemsiz gösteriyor. Gerçeği söyleyin - kodu korumak ve geliştirmek için zorlaştırıyorlar.
HedgeMage,

5
@HedgeMage: Bunun gibi şeylerle ilgili kişisel deneyimim, bazı insanların kendilerinin eleştirisi olarak algıladıkları şeyler hakkında son derece hassas olmaları. Daha da kötüsü, eleştirdiğiniz göründüğü kişi yönetim tarafından seviliyorsa, gerçekten çirkin siyasi tepkiler olabilir. (Evet, bunu ispatlayacak yara izlerim var.) VE kodun çalıştığı sürece, bazı "işe yarayan" tanımları için kelimenin tam anlamıyla bu tür bir şeyi umursamayan örgütler gördüm. Benim kişisel hislerim, hafifçe giderseniz, en az diğer baş ağrıları ile sorunu daha iyi çözme şansınız olmasıdır.
John R. Strohm,

12
@John Kesinlikle kötü bir iş durum böyle diken üstünde yürümek zorunda birine zorlayabilir görebilirsiniz - ama olduğu bu ilk etapta bir sorun olmadığını kötü bir durum. Çok kırılgan bir egoya sahip olan (ve onların şenanyanlarına izin veren bir işyeri kültürü) biri, işe başlamak için iyi değildir.
HedgeMage 5

6
Çoğu olgun programcı eleştiriyi iyi kabul eder. Sonuçta, meslektaş değerlendirmelerinin ne demek istediği (ve hepimiz kod incelemeleri yapıyoruz, değil mi?) Yorumların hecelemesini ve gramerini eleştirmek tamamen sorun değil. TÜM sadece yazara değil tüm örgütlerinde.
Çabuk_

6
HedgeMage ile aynı fikirdeyim, kod incelemesi sırasında bu gibi hataları işaret edemiyorsanız (özellikle nesnel olarak yanlış olduklarında, söz konusu örnekte olduğu gibi), o zaman daha büyük sorunlarınız olur ...
Dean Harding

10

Kendin değiştir.

Umarım "sahiplik" kodunun bir sorun olmadığı bir ortamdasınızdır. Projeye kaynak kontrolü ile erişebiliyorsanız, içeri girin ve kendiniz düzeltin. Aynı tür dilbilgisi veya yazım hatalarını tutarlı bir şekilde yapan belirli bir iş arkadaşınız görürseniz, bunu belirtmek isteyebilirsiniz, ancak bu, ilişkinize, kişinin ana dili İngilizce olup olmadığına ve genel olarak alıcı olup olmadığına bağlı olacaktır. Ama bunu yapmaya karar verip vermeme, sadece sessizce git ve düzeltme yap. Bunu her zaman yapıyorum, bir yazım hatası görürsem, özellikle bir yöntem imzasında veya kamu malında, sadece düzeltirim. Bazen bir yorumda bir yazım hatası düzeltme cazibesine bile dayanamıyorum, ama bu sadece benim :)


5
Ve sonra üçüncü bir kişinin kodunu kırdığını anlarsın. Bu tür şeyleri en kısa sürede düzeltmeniz gerekir, sadece ilk kişi her şeyi kontrol ettikten sonra başarabileceğiniz zaman değil.
David Thornley

Herhangi bir kod parçasına yapılan düzeltmenin "başkasının" kodunu bozabileceğinden endişeleniyorsanız ve söylemenin hiçbir yolu yok, o zaman yazımdan daha büyük sorunlarınız vardır.
Cornel Masson

@CornelMasson: Pek değil. Bu, bir API tasarlamanın anahtar bir parçasıdır.
Yörüngedeki Hafif Yarışlar,

6

Ben anadili İngilizce olmayan, aslında Hollandalı olan bir geliştiriciyim ve eğer biri bana gramer veya imla hatası yaparsa aldırış etmem. Bu şekilde İngilizcemi sürekli geliştirmeye devam edebiliyorum. Ve tüm kaynak kodunuzdaki tüm hataları düzeltmek kesinlikle zor değil. Basit bir Perl betiği, bir klasördeki tüm dosyalar arasında dolaşmak için kolayca yazılabilir. Belki de sed ile yapılabilir? Bilmiyorum.

Bu yüzden kesinlikle başkalarının kodunda dilbilgisi veya yazım hatası olduğunu işaret edeceğim, ancak sadece söylediklerimin doğru olup olmadığından kesinlikle emin olursam.


6

Sanırım burada, HTTP protokolündeki HTTP yönlendirme başlığının “yönlendirme” olarak yanlış yazıldığını söylemeye değer (ve onunla birlikte yaşamalıyız / onunla yaşamayı öğrendik) :)


10
Ve bir daha asla böyle bir şey görmek istemiyoruz.
David Thornley

4

Dilbilgisi hataları içeren kodun elde edilemez olduğunu söyleyen diğer cevapları kabul ediyorum.

Ayrıca birkaç şey eklemek istiyorum:

  • Kod, genellikle çok iyi İngilizce konuşamayanlar tarafından yazılır ve / veya İngilizce, anadilleri değildir. Gözden geçirdiğiniz bir kodda dilbilgisi hatası varsa, bu, iş arkadaşınızın bu hatayı yaptığı anlamına gelmez. Belki de sadece bir web sitesinden kopyala yapıştır.
  • İngilizce iş arkadaşınızın anadili değilse, ona bu hatayı anlatması iyi ya da çok kötü bir fikir olabilir. Fransa'dan geldiğimde İngilizce’de yaptığım hatalar hakkındaki düşüncelerimi hep memnuniyetle karşılıyorum, çünkü gelecekte bunlardan kaçınabilmemin tek yolu; Öte yandan, onlara yaptıkları dilbilgisi hatalarını anlatırsanız, gerçekten incinmiş hisseden birçok insan tanıyorum.
  • John R. Strohm'un dediği gibi, asla halka açık yapmayın. İnsanların çoğu bununla gerçekten sinirlenecek.

11
"Belki sadece bir web sitesinden kopyala yapıştır oldu." O zaman kopyalayan kişi sorunu yakalamış ve çözmüş olmalıydı. Sözlü olarak kopyalamak ve hataları bırakmak, kendileri yazmaktan ve hataları oluşturmaktan daha kötü ya da daha kötüdür. "Yaptıkları dilbilgisi hatalarını anlatırsanız gerçekten incinmiş bazı insanları tanıyorum." İş dünyasında hepimiz ortak bir hedefe ulaşmak için bir araya gelerek yetişkinler ve iş arkadaşları olarak davranmalıyız. Meseleyi gündeme getiren kişinin inceliği kullanması ve eleştiriyi alan kişinin onu kabul etmesi ve ondan büyümesi gerekir.
Teneke Adam

3
Profesyoneller olarak yetişkinler gibi davranmamız ve bunu kişisel olarak almamamız gerektiğine% 100 katılıyorum. Ancak kesinlikle belirtilmesi ve düzeltilmesi gerekiyor. Evet, dokunma kullanılmalı ve kişiye bağlı olarak gerektiğinde ele alınmalıdır. Ancak, sorunu tamamen ortadan kaldırmanın teşvik edildiği bir ortamdaysanız, belki gitme zamanıdır. Bu zehirli bir çevreye işaret edecektir.
Mark Freedman,

Herhangi bir yazım hatası basit bir google arama ile kontrol edilebilir
JoelFan

2

Dahili yazım denetleyicili bir IDE kullanmanızı öneririm. IntelliJ Idea, Java programları için harika bir iş çıkarır. Yalnızca işlev adlarında değil, kullanıcının görebileceği istisna mesajlarında yakaladığı birçok yazım hatası da vardır. Yazım hatalarıyla dolu mesajlar üreten bir program pek fazla güven vermez.


0

Ben sadece yaparım

  • programın kullanımını etkiler
  • programın doğruluğunu etkiler
  • Yazarın düzeltilmek istediğini açıkça biliyorum.

Bir not olarak, işlev adlarınız dilbilgisine sahip olacak kadar uzunsa, muhtemelen çok uzun olurlar. Verilen örnekte, userHasPermission işlevini çağırır ve "dilbilgisini" kodunuza taşır, şöyle bir şey olur:

if userHasPermission() ...

1
Yine de, dilbilgisi hataları için hala aynı potansiyel var, çünkü bu durumda userHavePermission()yanlış olurdu.
Dean Harding,

Ama bu tam olarak nokta! userHasPermission()o ~ çünkü gramer bir bool döndürür VEYA ~ o anlamına gelebilir ima ayarlar kullanıcı izni. (Memurun köprüsü var :: kullanıcı iznine sahip). Hala belirsiz.
Stephen Furlani 14: 23'te

Q'daki örnek adlarının gereksiz yere uzun olduğu konusunda hemfikir olsam da, "çok uzun" genelleştirmeye dikkat ediyorum. Bu durumda, konsept daha az kelimeyle ifade edilebilir, bu yüzden daha kısa olmalıdır. Ancak, "çok uzun" nedir? Bir karakter veya kelime sınırı var mı?
LS

0

Bu aynı zamanda projemde bir LOT olur (doğal olarak İbranice, Rusça veya Arapça konuşan insanlar tarafından doldurulur), ancak daha yüksek bir seviyeye bile - çoğu zaman, sözlüğün çevirisi için ne gibi bir terim kullandığını belirten bir kod görüyorum. yazarın aklında ne vardı ve onların anlamı ile ilgisi yok ...

Şahsen, çok sık gerçekleştiğinde ve projeye katılmadan önce bile kodu yazan birçok ekip üyesi tarafından, onu görmezden gelme eğilimindeyim çünkü önemli değil.

Ancak, uzun süre önce yazılmış kod veya yorumlarla aynı dosyada bazı işler veriyorum ve yazım hataları varsa, bunları çok fazla çalışmadığı için düzeltirim.


0

Altın Kural Uygulanır

Başkalarına, onların sana yapmalarını sağlayacak şekilde yapın.

Başkalarının bu tür şeylere sırt üstü dönmelerini istiyorum, bu yüzden başkalarına yardım ederim. Nazik ve destekleyici olmak sizin lehinize uzun bir yol kat edebilir.


2
Belirsizlik için -1 - Sorgulayıcıya ne yapmasını önerdiğiniz konusunda hiçbir fikrim yok.
HedgeMage


2
Ben aşinayım. Açıkça aptal olmanın yanı sıra (Alice'in tedavi edilmek istediğinin Bob'un tedavi edilmek istediğine inanmak için hiçbir neden yoktur), asıl meselenin dikkatini dağıtıyor: iyi kod oluşturma. Tabii ki, bu konuda sarsılmayacağım, ama kötü kod yazan kişinin ortaya çıkarmasını isteyip istemediği konusunda teknik bir mesele açıp açmamayı temel almıyorum!
HedgeMage

@ HedgeMage'in şikayetinin bu şekilde gösterilebileceğini düşünüyorum: Projenin ve gelecekteki çalışmamın önemsemesi için kodun, mevcut zaman ve kaynakların izin verdiği en yüksek kalitede olmasını istiyorum. Bob, düzeltilebilir hatalar için eleştiriden kaçınmak istiyor, çünkü eleştiriyi iyi karşılamıyor. "Altın kural" ı farklı şekilde uygulayacağız.
göz kapağısızlık,

Tavsiye, OP'nin nasıl tedavi edilmek istediğini işlettiği anlamına gelir. Bob'un nasıl tedavi edilmek istediğini tedavi etmemek. OP'yi Bob'u düzeltmesi için teşvik ettim, çünkü (OP) özellikle OP'nin paylaştığı bağlamda aynı hatalar için düzeltilmek istiyordu.
kevpie

0

Diğer pek çok iyi programlama uygulamasında olduğu gibi, programlarda yazım konusunda bir politika uygulamanın tek nesnel, politik olmayan ve etkili yolu ön-işlem sürecinin bir parçası olarak otomatikleştirmektir. Otomasyon, amaç için kendi aracınızı yazmanız gerekse bile sizi çok fazla şikayetten kurtaracaktır.


3
En önemli hatalardan birçoğu olamaz otomatik yakalanmış. Bu yazım ve dilbilgisi için de geçerlidir. Otomatik bir kontrol yapabilirsiniz, ancak sonuçların uyarılara eşdeğer olması gerekir. Bunun nedeni, yazım denetleyicilerinin hem yanlış pozitifler (örneğin uygun isimler) hem de yanlış negatifler (ikisi de olmak üzere) üretmesidir. Bu yüzden manuel müdahale gereklidir.
Matthew Flaschen

Bu tür bir otomasyon bu problemleri çözmez, sadece insanların yaptığı bazı hataları bulur.
saat

Otomatik düzeltme ??? İnternette birçok "otomatik" başarısızlık örneği yok. Bu kesinlikle iyi değil.
Florian F,

0

Bu kodda küçük bir hatadır, ancak bir hatadır. Bulduğun herhangi bir hata gibi davran. Politikam her zaman ortak çalışanlarımın yetkin olduğunu varsaymak ve aksi ispat edene kadar onlara bu şekilde davranmaktır.

Tek bir hata varsa, düzeltip kontrol edebilirim. Eğer bir kalıpsa, bu çalışana bu düzeltmeleri incelemesini sağlayabilirim. İyi bir kodlayıcı olduklarını düşündüğünüzü bilmelerini sağlayın, ancak bunun iyileştirilmesi iyi olacak bir şey olduğunu söyleyin. Yine de böyle bir şey için büyük bir anlaşma yapabileceğimi sanmıyorum.

Büyük bir sorun gibi görünmediğiniz sürece, bu işçiyi egoya sokmadan gelişebilecekleri bir konuma koymak kolay olmalıdır.


-1

userPermission () belki de? -

Karşılaştığım en son konu, sınıf adı vurgulanarak yazıldığından, vurgulanmayan genel bir arama sonuçları sorunuydu. Lekelenmek çok karanlık bir böcek.


Yorum yapmadan aşağı oy verme, bir abomination.
mplungjan

-1

Emin olun, yazım hatalarını kontrol etmek için zamanınızı boşa harcamayın. Bunu CI'nizde otomatikleştirmek için bir araç kullanın. Net'te fxCop bunu yapabilir ...


-2

Bu, büyük ölçüde hataların ne olduğuna, ne kadar yaygın ve ne kadar kötü olduklarına ve aslında bunun ne kadar iyi niyetli bir hata olup olmadığına ya da sadece nasıl söyleyeceğinize bağlı değildir.

Bazı salaklar 5 dakikalık bir kod incelemesini yarım saate çıkardığı için şahsen dayanamıyorum çünkü her şeyin nasıl yapılacağına karar vermesini istiyor ve tüm yorumlar sadece kürekleri içine sokmayı sevdiği için yeniden yorumlanmasını istiyor. "Veri nesnelerinin yüklenmesi" ifadesinin "Veri nesnesi yükleyici bileşeni şimdi ilgili veri nesnelerini veri nesnesi depolama bileşeninden yükleyecektir" olarak değiştirilmesi gerekmediğini söylüyor .

/ rant :)


2
Benim yolumda ısrar etmek bir şeydir. İşlerin doğru yazım ve dilbilgisi kullanmasında ısrar etmek, tamamen başka bir şeydir.
David Thornley

Cevabımın neden aşağı oy kullanmaya değer verdiğini tam olarak bilmiyorum ama nihayetinde… Ayrıca David'in yorumuna cevabım nereye gitti? Her neyse,% 100 doğru ingilizce dilbilgisi gelişiminde her zaman arzu edilmez. Yukarıdaki örneğimde, "Veri nesnelerini yükleme" tam bir cümle değildir, ancak iki özlü olanın daha çok tercih edilen ifadesidir, yerelleştirilmesi kolaydır ve çok fazla yer kaplamaz.
JohnL
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.