Birisine kötü kod yazdığını nasıl söylersiniz? [kapalı]


217

Eğlenmek için bir kodlama projesinde küçük bir grup insanla çalışıyorum. Organize ve oldukça uyumlu bir grup. Birlikte çalıştığım insanların programlama ile ilgili çeşitli beceri setleri var, ancak bazıları aşırı küresel değişkenler, kötü adlandırma kuralları ve diğer şeyler gibi eski veya açık yanlış yöntemler kullanıyor. İşler çalışırken uygulama zayıftır. Deneyimlerini ve / veya eğitimlerini sorgulama (ya da aşağılama) olmadan, kibarca daha iyi bir metodoloji kullanmalarını istemek veya tanıtmak için iyi bir yol nedir?


Max, sen misin? Boş ver, her zaman kullandığın TF2 Engineer simgesiyle senin olduğunu söyleyebilirim. Kodumun berbat olduğunu mu söylüyorsun? ... ... ... ... işten ayrılacağım ve yapacak hiçbir şey kalmayana kadar 5 dakika olduğunda söylediğim şeyler.
Powerlord

Belirli bir olayı tek başına denemiyorum, ya da kodumun mükemmel ve harika olduğunu söylemeye çalışıyorum, sadece bu zor bir konu olduğunu hissediyorum ve bu konuyla ilgili ikinci görüşlerle ilgileniyorum.
Maximillian

14
Sanırım ekranlarına her baktığınızda kıkırdayarak söz konusu değil ...
Steven A. Lowe

57
Taahhütlerinin her birini "Hepimiz hiç olmamış gibi davranırsak en iyisi sanırım" bir mesajla geri mi dönüyor?
Draemon

1
Yığın taşmasını okursanız, iyi bir programcısınız :-)
Matthew Farwell

Yanıtlar:


188

Yaptıklarının yanlış olduğunu anlamalarını sağlamak için sorular ekleyin. Örneğin, şu tür soruları sorun:

Neden küresel bir değişken yapmaya karar verdiniz?

Neden bu ismi verdin?

İlginç. Genellikle benimkini böyle yaparım çünkü [Daha iyi olmana neden ol

Bu şekilde çalışıyor mu? Genelde [Onların aptalca görünmesini nasıl sağlayacağınızı ekleyin]

Bence bu konuda en ideal yol, niçin belli bir şekilde kodlandıklarını sormaktır. Diğer yöntemlerin faydaları olduğuna inandıklarını görebilirsiniz. Kodlama stillerinin nedeninin yanlış bilgiden kaynaklandığını bilmiyorsam, iyi bir sebep olmadan yolumu asla daha iyi yargılamazdım. Bunu yapmanın en iyi yolu, onlara neden bu yolu seçtiklerini sormaktır; akıl yürütme ile ilgilendiğinizden emin olun, çünkü yetenekleri değil saldırmanız gereken şey budur.

Bir kodlama standardı kesinlikle yardımcı olacaktır, ancak her yazılım projesinin cevabı olsaydı, o zaman hepimiz cennetteki özel adalarımızda kokteyl yudumlardık. Gerçekte, hepimiz sorunlara eğilimliyiz ve yazılım projeleri hala düşük bir başarı oranına sahiptir. Bence problem çoğunlukla konvansiyonla ilgili bir problemden ziyade bireysel yeteneklerden kaynaklanacaktır, bu yüzden bir sorun çirkin başını duyduğunda problemler bir grup olarak çalışmayı öneririm.

En önemlisi, hemen yolunuzun daha iyi olduğunu varsaymayın . Gerçekte, büyük olasılıkla öyledir, ancak başka bir kişinin görüşünü ele alıyoruz ve onlara sadece tek bir çözüm var. Seni kendini beğenmiş bir kaybeden olarak görmelerini istemedikçe, yolunun bunu yapmanın daha iyi yolu olduğunu asla söylemeyin.


Bu iyi bir teknik ve muhtemelen profesyonel bir ortamda en uygun tekniktir. Eğer meslektaşınız aslında bunları düşünmek yerine bu tür soruları saygısız bir şekilde cevaplıyorsa veya topal cevaplar veriyorsa, bir kod standardını veya diğer bir "otoriteyi" de göz ardı etme olasılıkları iyidir.
Greg D

1
Katılıyorum, ama benim tutkum çoğunlukla hassas programcılarla uğraşmak. Birisine doğrudan kodunun yanlış olduğunu söylerseniz, doğal olarak, çok mutlu olmazlar. Aptalca, ama onlarla çalışmak ve onlarla ilgili problemleri öğrenmek muhtemelen herkes için en iyi sonucu verecektir.
Mike B

24
Sanırım "Neden bu adı verdin?" yakın, ama doğru değil. Bu hemen kararlarımı savunmacı bir şekilde düşünmemi sağlıyor. “Bu ilginç. Genellikle benimkini bu şekilde yapıyorum çünkü [Daha iyi olmanızın sebebini ekleyin]” çok daha iyi çünkü beni zaten karar verdiğimden başka yollar düşünmeye itiyor . İkinci ses tonuyla ışığı görme ihtimalim daha yüksek.
Kertenkele Bill

1
Bir bakıma savunmacı bir şekilde düşünüyor olmalılar. Onlara sadece bir şeyler yapma yolumu gösterirsem, bildikleri yönteme bağlı kalmaya karar verebilirler. Nasıl yapacağınızı söyleyen ve yönteminizin neden daha hızlı / daha iyi / vb.
Mike B

Peki ya sürekli olarak bir cevap varsa şöyle olur: "çünkü bunu değiştirmek için çok çalışmaktır" (genellikle büyük miktarda mevcut koddan dolayıdır) veya "çünkü her zaman bu şekilde yaptık ve iyi çalıştı "?
Dimitri C.

85

Kod incelemeleri yapmaya başlayın veya programlamayı eşleştirin.

Takım bunlar için gitmezse, haftalık tasarım incelemelerini deneyin. Her hafta, bir saat boyunca bir araya gelin ve bir kod parçası hakkında konuşun. İnsanlar savunmacı görünüyorsa, en azından başlangıçta kimsenin artık duygusal olarak bağlı olmadığı eski kodu seçin.

@JesperE'nin dediği gibi, kodlayıcıya değil, koda odaklanın.

Farklı olduğunu düşündüğünüz bir şeyi gördüğünüzde, ancak diğerleri aynı şekilde görmezse, eksikliklere yol açan soruları sormak yerine, onları işaret etmek yerine işe başlayın. Örneğin:

Globals : Sizce bunlardan birden fazlasına sahip olmak isteyeceğiz mi? Sizce buna erişimi kontrol etmek isteyeceğiz?

Değişebilir durum : Sizce bunu başka bir iş parçacığından değiştirmek isteyeceğiz?

Ben de faydalı odaklanmak bulmak benim insanlar rahatlamak yardımcı olabilir sınırlamalar. Örneğin:

uzun fonksiyonlar : Beynim tüm bunları bir anda tutacak kadar büyük değil. Ele alabileceğim daha küçük parçaları nasıl yapabiliriz?

kötü isimler : Açık kodu okurken kolayca karışabilirim; isimler yanıltıcı olduğunda, benim için umut yok.

Sonuç olarak, hedef ekibinize nasıl daha iyi kod yazacağınızı öğretmeniz değildir. Takımınızda bir öğrenme kültürü oluşturmaktır. Her insanın daha iyi bir programcı olma konusunda yardım için başkalarına baktığı yer.


İkincisi - ekipteki herkes kod eşini gözden geçiriyorsa. Kötü alışkanlıklara sahip olduğunu düşündüğünüz insanlar mağdur hissetmeyecekler
NotJarvis

2
Eğer meslektaşlarınız bu tür şeylere iyi yanıt verirse, onlar benimkinden daha naziktir. Böyle yorumlar almaya çalıştığımda, genellikle bununla başa çıkmam söylenir. Ya da belki de yollarının tek yolu olduğu konusunda çok sayfalı bir monologla ilgilenebilirsiniz. Net olsa bile dize-tamsayı ayrıştırma, dangit.
Greg D

@Yunan: Ah. Zor bir kalabalık var!
Jay Bazuzi

3
Kötü isimlerle ilgili: Stroop efekti hakkında bilgi edinin. Kelimeleri değil renkleri okumayı deneyin. Şimdi değişkenleri nasıl adlandırdığınızı düşünün. Değişkenlerin ne için kullanıldığını açıklayan iyi isimler bulamazsanız, daha sonra geri döndüğünüzde kodunuzu okumak ve anlamakta zorlanırsınız.
Igor Popov

lol @ "duygusal olarak koda eklenmiş." ekibinizde bu sorunlar varsa, bence birlikte çalışacak başka bir takım bulma zamanı.
dtc

45

Bir kod standardı fikrini tanıtın. Bir kod standardıyla ilgili en önemli şey, kod tabanında tutarlılık fikrini önermesidir ( ideal olarak , tüm kod bir oturuşta bir kişi tarafından yazılmış gibi görünmelidir), bu da daha anlaşılır ve sürdürülebilir bir koda yol açacaktır.


1
Aslında. Kod incelemelerimizde bulunan bir şey, kod standartla tutarlı değilse, gözden geçirenin okumayı durdurması ve uygun olana kadar koda geri dönmemesidir.

1
Uygulamanın daha iyi ve daha basit yollarından biri.
Scott Dorman

Bence sorunların doğasına bağlı. Bir kodlama standardında bile, hala bir şeyler yapmanın birden fazla yolu vardır ve belki de bazı kusurlar zorunlu standartlardan ayrılmıştır.
Mike B

2
@Scott Durman: "Tüm kodlar bir kişi tarafından bir oturuşta yazılmış gibi görünmeli" ... LOL !!! ;-)
Galwegian

5
@Galwegian: Öncelikle, tam adımı en azından doğru şekilde yazacaksanız. :) Bu ifade size neden komik geliyor? Dediğim gibi, bir kod standardının ideali. Tamamen ulaşılabilir olduğunu söylemedim, ancak iş arkadaşları için açık, iyi tanımlanmış bir hedef veriyor.
Scott Dorman

23

Yolunuzun neden daha iyi olduğunu açıklamalısınız .

Bir işlevin neden kesme ve yapıştırmadan daha iyi olduğunu açıklayın.

Bir dizinin neden $ foo1, $ foo2, $ foo3'den daha iyi olduğunu açıklayın.

Küresel değişkenlerin neden tehlikeli olduğunu ve yerel değişkenlerin hayatı kolaylaştıracağını açıklayın.

Sadece bir kodlama standardını kırıp "bunu yap" demek değersizdir çünkü programcıya neden bunun iyi bir şey olduğunu açıklamaz.


1
Bunun sadece mümkün olan tüm komutlar için geçerli olduğunu düşünüyorum (sadece programlamayla ilgili olanlar için değil).
Dimitri C.

"bir kodlama standardını kırıp 'bunu yap' değersizdir" - ilk olarak, iyi bir yazılı kodlama standartları belgesi yaptığı her nokta için gerekçe içermelidir, ikincisi, o gerekçe olmadan bile, neredeyse değersizdir - yine de kullanılabilir "ancak bu şekilde beğendim!"
Johann Gerell

14

İlk olarak, çok hızlı karar vermemeye dikkat ediyorum. Neden böyle iyi nedenler olabileceğinden, bazı kodları kötü olarak çıkarmak kolaydır (örneğin: garip sözleşmelerle eski kodlarla çalışmak). Ama bir an için gerçekten kötü olduklarını varsayalım.

Ekibin girdisine dayanarak bir kodlama standardı oluşturmayı önerebilirsiniz. Ancak, sadece iyi kodun ne olması gerektiği konusundaki görüşünüzü dayatmakla kalmamak için fikirlerini dikkate almanız gerekir.

Başka bir seçenek de teknik kitapları ofise getirmek (Code Complete, Effective C ++, Pragmatic Programmer ...) ve başkalarına ödünç vermeyi teklif etmektir ("Hey, bununla işim bitti, herkes ödünç almak ister mi?") )


12

Mümkünse, kodlarını şahsen değil, eleştirdiğinizi anladıklarından emin olun .


10

Çatışmasız bir şekilde daha iyi bir alternatif önerin.

"Hey, bence bu şekilde de işe yarayacak. Siz ne düşünüyorsunuz?" [Ekranınızda daha iyi kod yazma hareketi]


10

Kod incelemeleri yapın ve SİZİN kodunuzu inceleyerek başlayın .

İnsanlara tüm kod inceleme sürecini rahatlatacaktır çünkü onların yerine kendi kodunuzu inceleyerek işleme başlıyorsunuz. Kodunuzla başlamak, onlara bir şeyler yapma konusunda iyi örnekler verecektir.


8

Tarzınızın da kokuştuğunu düşünebilirler. Tutarlı bir kodlama stili yönergeleri kümesini tartışmak için ekibi bir araya getirin. Bir şeye katılıyorum. Bunun tarzınıza uyup uymadığı önemli değildir, tutarlı olduğu sürece herhangi bir stile karar vermek önemlidir.


Oh, bu kesinlikle doğru! "Neden dize manipülasyonları yapmak için düşük seviyeli C rutinlerini kullanırken (bellek ayırma / ayırma dahil ve manuel olarak 0 sonlandırıcı ekleyerek) bir dize tutmak için bir sınıf kullanıyorsunuz?" Ve aslında, bu programcılar programlama stillerini sık sık garip ama gerçek büyük projeleri başarıyla tamamlamak için kullandılar.
Dimitri C.

7

Örnek olarak. Onlara doğru yolu gösterin.

Ağırdan almak. Yarasadaki her küçük hata için onları atmayın, sadece gerçekten önemli olan şeylerle başlayın.


7

Kod standart fikri iyi bir fikirdir.

Ama düşünün değil , bu muhtemelen, ile, eğlence için, özellikle de hiçbir şey söylemeden sen arkadaş insanlar. Sadece kod ...


1
Bu projeye gelince, bu projeye gelince, 'işe yarıyorsa, işe yarıyor' yeterli olacaktır, ancak konuyla başa çıkmak için uygun bir yol bulmanın ilk işaret etme ve söyleme içgüdüsünden çok daha fazla yardımcı olacağı hissini alıyorum ' Bu yanlış'.
Maximillian

7
"Sadece kod" mu? Bu sadece çabanızın, profesyonel yüzünüzün, şirkete veya genel olarak insanlığa katkınızın ürünüdür. İyi mi kötü mü kimin umurunda? İş arkadaşlarınızın öfkeyle bu konuyu okuduğunu, "sadece kodunuzun" çöp olduğunu nasıl anlayacağınızı anlamaya çalışıyorum.

4
Sadece kod mu? Helloooo bakım kabusu.
MetalMikester

6

Gerry Weinberg'in "Bilgisayar Programlama Psikolojisi" kitabında gerçekten iyi tavsiyeler var - onun bütün "egoless programlama" kavramı, insanların kodlarının eleştirilerini kendi eleştirilerinden farklı olarak kabul etmelerine nasıl yardımcı olacağına dair.


5

Kötü adlandırma uygulamaları: Her zaman affedilemez.

Ve evet, her zaman yolunuzun daha iyi olduğunu varsaymayın ... Zor olabilir, ancak nesnellik korunmalıdır.

Ben işlevleri böyle korkunç adlandırma vardı bir kodlayıcı ile bir deneyim yaşadım, kod okunamaz daha kötü oldu. İşlevler yaptıklarıyla ilgili yalan söylediler, kod saçma oldu. Ve bir başkasının kodunu değiştirmesine karşı koruyucu / dirençliydi. çok kibarca karşı karşıya kaldıklarında, bunun kötü bir şekilde adlandırıldığını itiraf ettiler, ancak kodun sahipliğini korumak istediler ve geri dönüp "daha sonraki bir tarihte" düzelteceklerdi. Bu geçmişte kaldı, ama hatalarının ONAYLANMIŞ, ancak daha sonra korunduğu bir durumla nasıl başa çıkıyorsunuz? Bu uzun bir süre devam etti ve bu engeli nasıl aşacağımı bilmiyordum.

Küresel değişkenler: Ben kendim küresel değişkenlerden hoşlanmıyorum, ama kendileri gibi bir sürü mükemmel programcı tanıyorum A LOT. Öyle ki, pek çok durumda aslında o kadar da kötü olmadıklarına, netlik ve hata ayıklama kolaylığı sağladıklarına inanmaya başladım. (lütfen beni alevlendirmeyin / düşürmeyin :)) Aşağı iniyor, küresel değişkenleri (benim tarafımdan koyma!) kullanılan çok iyi, etkili, hatasız kod ve çok fazla hata gördüm, uygun kalıpları titizlikle kullanan kodu okumak / korumak / düzeltmek imkansız. Belki orada IS bir yerde küresel değişkenler için (belki küçülen rağmen)? Kanıta dayalı olarak konumumu yeniden düşünmeyi düşünüyorum.


5

Bazı wiki yazılımlarını kullanarak ağınızda bir wiki başlatın.

Sitenizde "en iyi uygulamalar" veya "kodlama standartları" gibi bir kategori başlatın.

Herkesi işaret edin. Geri bildirime izin ver.

Yazılımın sürümlerini yaptığınızda, işi kodun üzerine koymak olan kişiyi geliştiricilere geri göndererek, üzerindeki Wiki sayfalarına yönlendirin.

Bunu kuruluşumda yaptım ve insanların Wiki'yi kullanmaya başlaması gerçekten birkaç ay sürdü, ancak şimdi bu vazgeçilmez kaynak.


4

Gevşek bir kodlama standardınız bile varsa, buna işaret edebilmek veya doğru format olmadığından kodu takip edemeyeceğinizi belirtmek faydalı olabilir.

Bir kodlama formatınız yoksa, şimdi bir tane almak için iyi bir zaman olacaktır. Bu sorunun yanıtları gibi bir şey yardımcı olabilir: /programming/4121/team-coding-styles


4

Her zaman 'Yapacağım şey' çizgisiyle devam ediyorum. Onları anlatmaya çalışmıyorum ve onlara kodlarının çöp olduğunu söylemiyorum ama sadece umarım onlara biraz daha temiz bir şey gösterebilecek alternatif bir bakış açısı verin.


3

Söz konusu kişi (ler) e, yazdıkları temsili bir modülün kodunda grubun geri kalanına bir sunum hazırlamasını isteyin ve Soru-Cevap bölümünün ilgilenmesine izin verin (bana güvenin, öyle olacak ve eğer iyi bir grupsa, çirkin bile olmamalı).


3

Aşk kodunu yapıyorum ve hayatımda bilişim ile ilgili herhangi bir şey hakkında hiç dersim olmadı, çok kötü başladım ve örneklerden öğrenmeye başladım, ancak "Dörtlü Çete" kitabını okuduğumdan beri her zaman hatırladığım ve aklımda tuttuğum şey :

"Herkes bir makine tarafından anlaşılan kod yazabilir, ancak herkes bir insan tarafından anlaşılan kod yazamaz"

bunu göz önünde bulundurarak, kodda yapılacak çok şey var;)


Bunu da doğru buldum. Güzel okuma: Şey vermemeliydim Do Joel Spolsky tarafından Bölüm I joelonsoftware.com/articles/fog0000000069.html Onun sözleriyle diyor: "yazmak üzere daha kod okumak zordur."
09:25

3

Sabrı yeterince vurgulayamıyorum. Bu tür şeylerin tamamen ters teptiğini gördüm, çünkü birisi değişikliklerin ŞİMDİ olmasını istiyordu. Oldukça az sayıda ortam devrim değil, evrimin faydalarına ihtiyaç duyar. Ve bugün değişimi zorlayarak herkes için çok mutsuz bir ortam yaratabilir.

Buy-in anahtardır. Ve yaklaşımınızın içinde bulunduğunuz ortamı da hesaba katması gerekiyor.

Kulağa çok "bireysellik" olan bir ortamda olduğunuz anlaşılıyor. Yani ... bir dizi kodlama standardı önermem. Bu "eğlenceli" projeyi almak ve onu son derece yapılandırılmış bir çalışma projesine dönüştürmek isteyeceksiniz (oh harika, sırada ne var ... fonksiyonel belgeler?). Bunun yerine, bir başkasının söylediği gibi, bununla bir ölçüde uğraşmanız gerekecek.

Sabırlı olun ve başkalarını kendi yönünüzde eğitmeye çalışmak. Kenarlarla başlayın (kodunuzun başkalarıyla etkileşime girdiği noktalar) ve kodlarıyla etkileşim kurarken, oluşturdukları arayüzü tartışmak için bir fırsat olarak almaya çalışın ve değiştirildiyse kendileriyle iyi olup olmayacağını sorun ( siz veya onlar). Ve değişikliği neden istediğinizi tam olarak açıklayın ("alt sistem özniteliklerinin değiştirilmesiyle daha iyi başa çıkmasına yardımcı olur" veya her neyse). Nit-pick yapmayın ve yanlış olarak gördüğünüz her şeyi değiştirmeye çalışmayın. Kenardaki diğer insanlarla etkileşime girdikten sonra, kodlarının temelinde onlara nasıl fayda sağlayacağını görmeye başlamalıdırlar (ve yeterli momentum alırsanız, daha derine inin ve modern teknikleri ve kodlama standartlarının faydalarını tartışmaya başlayın). Eğer hala görmezlerse ... belki sen

Sabır. Evrim, devrim değil.

İyi şanslar.


3

Bir toga yapmam ve bir kutu sosyal yöntem açtım.

Sokratik Yöntem Klasik Yunan filozofu Sokrates adını, sorgulayıcı, rasyonel düşünme ve aydınlatmak fikirleri teşvik etmek, başkalarının pozisyonların etkilerini araştırmaktadır hangi felsefi sorgulama biçimidir. Bu diyalektik yöntem genellikle bir bakış açısının savunmasının diğerine karşı çekildiği bir karşıt tartışma içerir; bir katılımcı diğerinin sorgunun kendi noktasını güçlendirerek bir şekilde kendisiyle çelişmesine yol açabilir.


Sokratik yöntemin problemi, hiç kimsenin bunun için sabrı veya takip etme isteğinin olmamasıdır.
Patrick Szalapski

2

Buradaki cevapların çoğu, günümüzde özellikle ilgili olmayan kod biçimlendirme ile ilgilidir, çünkü çoğu IDE, kodunuzu seçtiğiniz stilde yeniden biçimlendirecektir. Asıl önemli olan kodun nasıl çalıştığıdır ve poster global değişkenlere bakmak, kodu kopyalamak ve yapıştırmak ve evcil hayvanım, adlandırma kurallarına bakmak için haklıdır. Kötü kod diye bir şey var ve formatla ilgisi yok.

İyi yanı, çok iyi bir nedenden dolayı çoğunun kötü olması ve bu nedenlerin genellikle ölçülebilir ve açıklanabilir olmasıdır. Yani, çatışmacı olmayan bir şekilde, nedenlerini açıklayın. Birçok durumda, sorunların belirginleştiği yazar senaryolarını bile verebilirsiniz.


2

Projemdeki baş geliştirici değilim ve bu nedenle kodlama standartları uygulayamıyorum, ancak kötü kodun genellikle daha sonradan daha erken bir soruna neden olduğunu ve daha temiz bir fikir veya çözümle orada olduğumda buldum.

O zaman araya girip daha doğal bir yaklaşım benimsemekle liderliğe daha fazla güven duydum ve sık sık fikirler için bana yöneliyor ve beni proje için kullanılan mimari tasarım ve dağıtım stratejisine dahil ediyor.


2

Kötü kod yazan insanlar sadece cehaletin bir belirtisidir (bu aptal olmaktan farklıdır). İşte bu insanlarla başa çıkmak için bazı ipuçları.

  • İnsanların kendi deneyimleri, söyleyeceğiniz bir şeyden daha güçlü bir izlenim bırakır.
  • Bazı insanlar ürettikleri kod hakkında tutkulu değildir ve söylediklerinizi dinlemezler
  • Eşleştirilmiş Programlama, fikirlerin paylaşılmasına yardımcı olabilir, ancak kimi sürdüğünü değiştirir, yoksa yalnızca telefonlarındaki e-postaları kontrol ederler
  • Onları çok fazla boğmayın, Sürekli Entegrasyonun bile bazı eski geliştiricilere birkaç kez açıklanması gerektiğini buldum
  • Onları tekrar heyecanlandırın ve öğrenmek isterler. Bir gün boyunca programlama robotları kadar basit bir şey olabilir
  • TAKIMINIZA GÜVENİN, kodlama standartları ve bunları derleme zamanında kontrol eden araçlar genellikle asla okunmaz veya sinir bozucu değildir.
  • Kod Sahipliğini Kaldır, bazı projelerde insanların kodumu söylediğini ve değiştiremeyeceğiniz kod silolarını veya karınca tepelerini göreceksiniz, bu çok kötü ve bunu kaldırmak için eşleştirilmiş programlama kullanabilirsiniz.

1
Kasıtlı cehaletin aptal olarak tanımlanabileceğine inanıyorum? Öğrenmeye istekli olmamakla aynı şey.
Adam Naylor

Bunun örneği, kısmi bir fizikçi olan ama kız arkadaşı alamayan bir adam. Açıkçası akıllı bir adam ama kadınlar hakkında cahil.
Scott Cowan

2

Kod yazmalarını sağlamak yerine, kodlarını korumalarını sağlayın.

Dumanı tüten spagetti yığınlarını korumak zorunda kalana kadar, kodlamada ne kadar kötü olduklarını asla anlamayacaklar.


Daha da iyisi: diğer geliştiricilerin kodlarını korumalarını isteyin. Bu aynı zamanda aralarındaki iletişimi geliştirmeye de yardımcı olabilir ...
mjn

Bu da çok daha az düşmanca :-)
JDrago

2

Kimse işlerinin berbat olduğunu söyleyen birini dinlemekten hoşlanmaz, ancak aklı başında herhangi biri akıl hocalığı ve gereksiz işlerden kaçınmanın yollarını memnuniyetle karşılardı.

Bir öğretim okulu bile hataları belirtmemeniz gerektiğini, doğru yapılanlara odaklanmanız gerektiğini söylüyor. Örneğin, anlaşılmaz kodu kötü olarak belirtmek yerine, kodlarının nerede okunmasının özellikle kolay olduğunu belirtmelisiniz. İlk durumda, diğerlerini berbat programcılar gibi düşünmeye ve harekete geçmeye hazırlıyorsunuz. Sonraki durumda, yetenekli bir profesyonel gibi düşünmeye hazırsınız.


2

Ben çalışıyorum çocuklar ile benzer bir senario var .. Onlar benim kadar kodlama maruz kalma yok ama onlar hala kodlama yararlı.

Benden ziyade istediklerini yapmasına izin ver ve geri dön ve her şeyi düzenle. Genellikle onları oturup iki şey yapmanın yollarını gösteriyorum. Onların yolu ve Benim yolum, Bundan her yöntemin profesyonel ve eksilerini tartışıyoruz ve bu nedenle daha iyi bir anlayışa ve programlama hakkında nasıl gitmemiz gerektiğine dair daha iyi bir sonuca varıyoruz.

İşte gerçekten şaşırtıcı kısım. Bazen cevaplarım bile olmayan sorular bulurlar ve araştırmadan sonra hepimiz daha iyi bir metodoloji ve yapı kavramı elde ederiz.

  1. Tartışır.
  2. Onlara Nedenini Göster
  3. Her zaman haklı olduğunu bile düşünme ... Bazen sana yeni bir şey öğretecekler.

Eğer ben olsaydım ne yaparım: D


1

Muhtemelen etkiden biraz sonra, ancak kabul edilen bir kodlama standardı iyi bir şeydir.


1

Açıkçası, birinin kodunu değiştirmek, hata ayıklamak, gezinmek, anlamak, yapılandırmak, test etmek ve yayınlamak daha kolay olduğunda daha iyi olduğuna inanıyorum (whew).

Birine ilk önce ne yaptığını ya da daha sonra kimsenin onu nasıl geliştirmesi gerektiğini (yeni işlev oluşturma ya da hata ayıklama gibi) açıklamadan önce kodunun kötü olduğunu söylemenin imkansız olduğunu söyledi.

Ancak o zaman zihinleri kapanır ve herkes bunu görebilir:

  • Global değişkenler değer değişiklikleri neredeyse her zaman izlenemez
  • Büyük işlevlerin okunması ve anlaşılması zordur
  • Kalıplar kodunuzu geliştirmeyi kolaylaştırır (kurallarına uyduğunuz sürece)
  • ( vb...)

Belki bir çift programlama oturumu hile yapmalıdır. Kodlama standartlarını uygulamak için - yardımcı olur, ancak gerçekten iyi kodun ne olduğunu tanımlamaktan çok uzaktırlar.


1

Muhtemelen iyi ya da kötü bir stil olup olmadığına dair öznel fikriniz olarak reddedilebilecek şeylerden ziyade, kötü kodun etkisine odaklanmak istersiniz .


1

Özel olarak "kötü" kod segmentlerinden bazılarını gerçekten makul olma olasılığına göz atın kod (ne kadar yatkın olursanız olun) veya belki de hafifletici koşulların varlığına . Hala kodun sadece kötü olduğuna ve kaynağın aslında bu kişi olduğuna ikna olduysanız, sadece uzaklaşın. Birkaç şeyden biri olabilir: 1) kişi fark eder ve bazı düzeltici eylemler yapar, 2) kişi hiçbir şey yapmaz (umursamaz veya sizin kadar umursamaz).

# 2 olursa veya # 1 sizin bakış açınızdan yeterli gelişmeyle sonuçlanmazsa ve projeyi incitiyorsa ve / veya sizi yeterince etkiliyorsa, içinde standartlar oluşturmak / uygulamak için bir kampanya başlatmanın zamanı gelmiş olabilir takım. Bu yönetimin satın alınmasını gerektirir, ancak en çok ot köklerinden kışkırtıldığında etkilidir.

Bunda iyi şanslar. Acını hissediyorum kardeşim.

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.