Yalnızca kritik olmayan yazım hatalarını çözmek için bir taahhüt vermeye değer mi?


67

Koddaki kritik olmayan bir yazım hatası ile karşılaşırsam (örneğin, print (error) ifadesinde hatalı bir kesme işareti), bu hatayı çözmek için bir taahhütte bulunmaya değer mi yoksa basitçe mi bırakmalıyım?

Spesifik olarak, bu kritik olmayan tipoları çözmenin değerine karşı taahhüt kütüğünün sakızlığını tartıyorum merak ediyorum. Onları çözmeye doğru eğildim. Ben bilgiçlik mi yapıyorum?


40
Önemsiz bir işlem herhangi bir şeyi toparlarsa, ya daha iyi bir VCS'ye, daha iyi günlük filtreleme araçlarına ya da farklı düzeltme şiddetlerini not etmek için daha iyi uygulamalara yatırım yapmanız gerekir.
Rex Kerr,

@ root45 Her ne kadar sonuçlarına bakarsanız, hepsi bu sorunun sorulmasından farklı bir gramer türü.
Izkata

Yanıtlar:


130

Benim kişisel hislerim, kaliteyi arttırmanın, küçük iyileştirmeler için bile ek bir taahhüt girişine katılmanın önemsiz olduğuna değiyor. Sonuçta, küçük gelişmeler kırık pencere efektini hesaba kattığınızda çok önemli .

TRIVIAL:VCS'niz destekliyorsa, onu bir etiketle öneklemek veya önemsiz olarak işaretlemek isteyebilirsiniz .


72
Sadece şunu eklemek istiyorum ki, bunun gibi şeylerin başka bir şeyle karıştırılmış olmaktan ayrı olarak işlenmesini istiyorum. Toplamadaki problem, çok fazla gürültünün kod gözden geçiricisini ilgili değişikliklerden uzaklaştırabilmesidir. +1
Andy

9
Kırık pencere efektinden bahsetmek için +1. Küçük şeyler önemlidir. Her şey gerçekten temizse, dikkatsizce yazılmış veya denenmemiş bir kod vermeden önce insanlar iki kez düşüneceklerdir.
Roy Tinker

25
Ayrıca, bir özelliğe sahipseniz, o zaman değişikliği kaybettiğiniz özelliği geri oynayın. Bir seferde bir şey taahhüt.
ctrl-alt-delor

4
Hangi VCS'nin yorumu önemsiz olarak işaretlemesine izin verdiği ile gerçekten ilgilenirim. SVN, Hg ve Git'le çalıştım ve böyle bir şey de görmedim.
Xion

3
@ Gürültünün en kötü kısmı olmadığını anlayın ... eğer birileri daha sonra örneğin bu özelliği geri almaya karar verirse, bu özelliği istemedikleri için, birdenbire aynı zamanda taahhütlerin bir parçası olan küçük bir gelişmeyi de kaybedersiniz.
rFactor

49

Sen bilgiçlikçi değilsin, ve onları ayrı ayrı çözmek daha iyidir. Bir değişiklik ne kadar atomikse o kadar iyidir - çökme hatası düzeltmesinin 500 yorum / yazım hatası değişikliği ile karıştırılmasını istemezsiniz.


9
+1 Her revizyon sadece bir spesifik düzeltme ile ilgili olmalıdır. Her revizyonda aynı zamanda gerçek değişiklikler arasında sabit bir grup rasgele yazım hatası da mevcutsa, desteklerin düzeltilmesi NIGHTMARE olur.
Hibe

28

Genel Durumda: Evet

Bu var hep buna değer sürdürülebilirliği artırmak için yazılımınızın.

Sadece bunun için gidin.

Eğer hemen bir sürüm yayınlayacaksanız ...

... ve takım lideri değilseniz, onunla görüşün .


Kayıt günlüğünün içeriği ile ilgili olarak ...

Başkaları ile en azından bir şeyi yazmanız gerektiğine katılıyorum, yalnızca yalıtılmış bir yazım hatası düzeltmekle ilgiliyse, "özellik" ile ilgili taahhütlerden farklı kılmanızı sağlar.

Yaygın bir uygulama, zamansız ve sonsuz değişiklikleri izlemek için sorun izleyicinizde hiç bitmeyen bazı görevlere sahip olmaktır. Örneğin, aşağıdakiler için bir görev yapmak nadir değildir:

  • büyük otomatik zararsız temizleme (boşluk süpürme),
  • dilbilgisi ve yazım hatası avcılık yayları,
  • sistem değişiklikleri yapmak,
  • vb...

Bunların, insanlar doğru belgelenmiş biletler oluşturma konusunda tembel olduklarında tembel olduklarında, hemen hemen hiçbir şey için fırlatma görev kimlikleri olarak kullanılmadıklarına dikkat edin. Özellikle bir kimliğe bağlı olmayan taahhütleri reddederseniz (ki bu iyi bir şeydir, ancak bunun gibi büyük işler tembel geliştiriciler için daha çekici olacaktır).


7
Bir yazım hatası düzeltme için takım liderinizle görüşüyor musunuz? Yaklaşan serbest bırakılmayı vurgulayan takım lideri olsaydım, bu tür önemsizliklerden rahatsız edilmek istemem.
Joh

2
@Joh: Yapıyı kırmanız gerekmeyebilir, ancak başka yapım işleri olabilir veya bir tanesi zaten etiketlenmiş ve kullanıma hazır olabilir ve denetim kontrolleriniz (sektörünüze bağlı olarak) bu zararsız taahhüdü yerine getirmeye zorlayabilir Görevlere ve gereksinimlere göre, eğer biraz başağrısı olabilecek bir yerden çıkmazsa; Bu sürüm, piyasaya sürüldükten birkaç gün sonra kolayca tasarruf edebileceksiniz. Ancak genel olarak sizinle aynı fikirdeyim ve böyle çalışan bir şirketin yanlış yaptığını bile söyleyebilirim. Ama bunu düzeltecek olan sen değilsin, o yüzden kıdemli değilsen onlar tarafından yönet.
haylem

2
@Joh: temel olarak, eğer takım liderim yeni bir inşaat başlatmak üzereyken (veya daha önce başlattığında) aniden inşaat sistemine atlayan yeni bir inşaat görürse, o zaman bu yaklaşımı kullanarak stres seviyelerinin yükseleceğinden emin olabilirsiniz. yanı sıra ...
haylem

7

Typos bir taahhüt olarak eklenmelidir. Yanlış yazılmış kelimeleri veya gramer hatalarını düzeltmek, kodunuzun okunabilirliğini artıracaktır.

"Fixed typo" veya "file.c'deki Fixed typo" gibi bir taahhüt mesajı kullanmak, bu taahhütleri diğer büyük kod taahhütlerinden ayırmanıza yardımcı olacaktır.


7

Evet, bunu kesinlikle bir projede özellikle erken yapmalısınız.

Neden? İki puan:

  1. Büyük olasılıkla bir yazım hatası "kritik" olup olmadığını çok geç olmadan bilmeyeceksiniz. Bazı düzeltmeler muhtemelen çözülmedi çünkü herkes bunun önemli olmayacağını düşünüyor. Ölene kadar.

  2. Yazıcınızı erken ve kasıtlı olarak düzeltmek, birkaç yüz satır kod / işlev çağrısı yapıldıktan sonra düzeltmekten çok daha kolay olacaktır. Yine, geçici saldırılar şaşırtıcı derecede hızlı bir şekilde yarı-kalıcı olabilir. Bu yüzden "CollapseAll" VE "ColapseAll" yöntemlerinin ikisine de sahip olan nesnelerle uğraşmam gerekiyor.


2
Evet - tüm doğru cevaplardan, "ne zaman" olduğuna bağlı olduğunu söylemekten hoşlanıyorum.
Santo Wonko

4

Bir son kullanıcı tarafından görülebilen dilbilgisi hataları için, o zaman evet, elbette, bir kullanıcı veya KG'nin gelip hatayı bildirmesi ve izlenmesi gerekebileceği için tamamen mümkün olduğu taahhüdünde bulunmaya değer. Zaten giderilmişse, sorunu çözmek için gereken süreyi hızlandırabilir.

Kodun çevresindeki yorumlardaki gramer hatası ise, asıl koddaki değişikliklerin bir parçası olmadığı sürece bu konuda hiçbir şey yapmazdım, bu durumda kodun belgelerini güncelliyorsunuz.


3

Eğer işlem kaydını saklamaktan endişeleniyorsan, yanlış bir şey yapıyorsun demektir. :-) Sık taahhütler iyi bir şeydir! Yazım hatası her zaman gideririm. Onları en kısa zamanda kod tabanında bulun ve cihaz devresini hızlandırın!


2
I commit typo fixes all the timeBu endişe verici IMO, daha iyi İngilizce ile programcı bulmaya çalışın?
Lie Ryan

Bugünlerde alabileceklerini al. Çalışılabilir kod yazabilen programcılar bulmak ciddi bir sorundur!
Brian Knoblauch

2

Evet oy veririm. Onları kontrol et. İnsanları kontrol etmekten nefret eden bir şirket için çalıştım. Neredeyse bir şey demek istedim. Kodun durumunu hayal edebilirsiniz. Aslında kod korkunç değildi, ama şarap gibi akmak yerine, vatana ihanet gibi sızdı.


0

Değişim yönetimi süreciniz buna izin veriyor mu?

Ortamımda, yaptığım her taahhüt iş kullanıcıları tarafından talep edilen bir değişiklik isteğine veya ilgili son kullanıcı test işlemleriyle birlikte zorunlu bir sistem düzeyinde değişime bağlı olmalıdır. Açıkladığınız gibi basit bir yazım hatası muhtemelen bunlardan biri olarak kaydedilmez (4 yıldan uzun bir süredir var olan uygulamalarımda yazım hataları ve gramer hataları buldum), yani denetçiler geldiğinde / geldiğinde Kendimi açıklamak için çok zor bir zaman geçirirdim.

Tanımladığınız gibi bir değişikliği kaydederim (ve aslında bir tane var, aslında - bir yöntem adı yanlış yazılmış ve daha yeni keşfettim) olması gereken "gerçek" bir değişikliğe sahip olduğum bir süre için ve ayrıca "sabit çeşitli yazım hataları" günlüğüne koyun.


+1 Bazı ortamlarda bu doğrudur. Lütfen oy vermeyin, çünkü çalıştığınız yerde bu doğru değil.
MarkJ

-1 - Değişim yönetimi süreciniz büyük bir zaman emmek gibi görünüyor . Her taahhüdün değişim isteğiyle ilgili olması gerektiğini (hatta tercih etmeyi ) anlarım - sürecinizin bu kısmı iyi görünüyor. Ancak OMG, geliştirici tarafından başlatılan isteklere benziyor ( bu şekilde yeniden düzenleyen / bu yazım hatalarını düzeltmek gibi ), bu bana büyük bir kırmızı bayrak getirir . İş kullanıcılarının / denetçilerin daima geliştiricilerden daha iyi bildiğini varsayar - eğer bu gerçeğe yakın olursa, kodu kendileri yazarlar
gnat

Geliştirici, yapmaya değer değişiklikleri konusunda ileriye gitmeyi onaylayan insanları ikna edebilirse, ileriye gidebilirler. Ancak, bir yöntem adına basit bir yazım hatası bulursam veya bir yönteme yeniden yerleştirilmesi gereken kopyalanan / yapıştırılan bazı kodlar bulursam, değişikliği izinsiz yapamam. Bu sadece "kodla doğru olanı yapmak" ile ilgili değil - kabul testi yapılmalı ve geliştiriciler işadamlarına söyleyebilecekleri bir konumda değil "Bu değişikliği yaptım, ne olduğumu asla bilemeyeceğim yaptım, ama bir test sürecinden geçmen gerekiyor. "
alroc

"Eğer-eğer-ikna edebilir" sadece @ makul bir yüzeyin altındaki karşı-üretken bir süreci gizler. İşletmeyi / denetimi büyük değişiklikler, kararlaştırılan dönüm noktası kontrol noktaları / sürümler vb. Hakkında ikna etme zorunluluğu iyi anlam ifade ediyor, tamam. Bir hafta boyunca dev ve QA gerektiren, çabuk ama adil olan bir çabayı haklı çıkarmak için birkaç saat / gün harcamak, tamam. Ancak bunu her bir yazım denetimi ya da özü yöntemi için zorlamak ... bana bir mola verin - bu yanlış zamanda yanlış aşamaya yanlış zamanda yerleştirilmiş kontrolden başka bir şey değil
gnat

Bunu tekrar açıklamaya çalışmama izin ver. Başka bir onaylanmış değişiklik üzerinde çalışırken bir yazım hatası düzeltebilir ya da bir yöntemi çıkarabilirsem, üzerinde kimseyi satmak zorunda kalmadan onu kayabilirim. Ancak, kullanıcı tarafından görülemeyen bir değişiklik yapamam ve önce üzerinde güçleri satmadan iş / kullanıcılar üzerinde doğrudan olumlu bir etkisi olmaz.
alroc

-1

Geçmişi düzenlemek için DVCS kullanın

Temiz bir taahhüt geçmişi hakkında endişe duyuyorsanız, ana çalışmanızı özellik dallarında yapmayı düşünün . Dağıtılmış bir VCS ile çalışıyorsanız , ana dalınıza göndermeden önce taahhüt geçmişinizi kolayca düzenleyebilirsiniz. SVN'deyseniz Git'i deneyin - iki yönlü olarak Subversion ile etkileşime girebilir ve aslında Subversion'a başlamadan önce geçmişi düzenleyebilirsiniz.

Aksi takdirde sağduyunuzu koruyun

Eğer taahhüt geçmişini düzenlemek istemiyorsanız veya düzenleyemiyorsanız, otomatik testleri veya derlemeyi etkilemeyen küçük bir yazım hatası için erken veya atomik bir taahhütte bulunmak için işlevsel bir neden yoktur . Bu durumlarda, bence, taahhüt geçmişini temiz tutmak, gerçekten atomik taahhütler yapmaktan daha önemli olmalıdır. Karıştırma bir veya iki "normal" modifikasyon ile yazım hatası düzeltmeleri herhangi bir potansiyel gözden geçirme süreci zarar vermez. Bununla birlikte, belki de daha büyük bir kodlama oturumundan sonra "temizlik yaparken", birkaç önemsiz düzeltmeyi bir taahhütte gruplamak isteyebilirsiniz.

Fonksiyonel hataların hala atomik bir taahhütte ASAP tarafından gerçekleştirilmesi gerektiğini unutmayın .

Buradaki cevapların genel tonu, küçük yazım hataları için bile "her şeyi hızlı bir şekilde gerçekleştirin" stratejisi olarak görünüyor. Ben katılmıyorum ve tartışmaya açığız.

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.