it-swarm-tr.com

Patronunuza programlama tarzının gerçekten kötü olduğunu nasıl anlarsınız?

Ben bir öğrenciyim ve boş zamanlarımda Java geliştirici olarak çalışıyorum. İş iyi, ama sorun şu ki, patronum çok garip bir kod yazıyor. Şikayet etmek istemiyorum, ancak bazı konular bence gerçekten garip.

  • boolean bilmiyor. Tüm boolean koşulları "YesOrNo" olarak adlandırılan Dizelerdir ve sonra (YesOrNo == "Yes")

  • yöntem adlarında ve é õ ô veya è gibi değişkenlerde çok garip karakterler var

  • tüm döngüler for (;;) tarzında sonsuz döngülerdir. Daha sonra, döngünün sonunda durum test edilir ve koşullar yerine getirilirse kırılır; denir.

Ona bunun iyi bir uygulama olmadığını düşündüğümü söylemem gerekip gerekmediğini bilmiyorum, çünkü o benim patronum ve nasıl ve ne yapacağına karar veriyor. Öte yandan bazı örnekleri gerçekten çok garip.

Herhangi bir ipucu ile nasıl başa çıkılır? Ve bunun kötü tarz olduğunu düşünen sadece ben miyim?

63

Kodunu size açıklamasını isteyin

Ona X'in daha önce bu şekilde programlandığını görmediğini söyle ve ona neden bu şekilde kodladığını sor. Ona kodlama şeklinizi gösterin ve neden bu şekilde yaptığınızı söyleyin (en iyi uygulamalar, daha iyi performans, daha az hata olasılığı, diğer programcıların okuması/bakımı daha kolay vb.).

Tüm argümanlarınızı önceden hazırladığınızdan emin olun ve yönteminin neden en kötü olduğu yerine yönteminizin neden en iyi olduğuna odaklanın. Daha sonra, yöntemini hala sizinki üzerinde destekleyip desteklemediğine bakın.

Eğer gelişmeye açıksa, muhtemelen kodlama şeklini değiştirecektir. Hala kendi kodlama stilini sizinkiler üzerinde kullanmayı tercih ederse, fikrini değiştirmeniz muhtemel değildir.

78
Rachel

Linterler ve hata bulucular gibi otomatik statik analiz ve stil kontrol araçlarının kullanımını (hangi dilde kullanırsanız kullanın) kullanın. Şirketteki herkes bunları kullanmaya başlarsa (örneğin, check-inlerden önce zorunlu kılınmışsa), seçilmemiştir.

Bunu önermemin nedeni şudur:

1) İnsanlar genellikle otomatik araçlardan iş arkadaşlarından veya astlarından daha iyi sansürler.

2) Bu araçlar, zayıf stil olarak kabul edilebilecek birçok konuyu kapsar.

3) Aletin içine yerleştirilmiş olanın ötesinde, kötü stili için perde arkasındaki kuralları düzenleyebilirsiniz. Örneğin, belirli bir değişken stilini zorunlu kılın.

4) Bazı insanlar kodlarının o kadar iyi olmadığını fark ederler ve aslında linterlerin kapsamadığı şeylere bile daha fazla dikkat etmeye başlarlar.

Oldukça saygın birkaç şirket (kendi işverenim gibi) check-in işleminden önce tüy bırakmayan bir kontrolü zorlar. Görüş, kötü tarzın teknik borç olduğudur. Her zaman "Peki, eğer X ve Y ve Z yapıyorlarsa, muhtemelen iyi bir fikirdir".

39
Uri

Bence kesinlikle ona böyle bir şey söylememelisin . Bu tür ifadeler, kolayca öğrenmesi için herhangi bir olasılığı neredeyse tamamen kapatacak ve hatta sizin için sorunlara neden olabilecek savunma reaksiyonuna neden olabilir.

Bunun yerine, kodlama stilini ve deyim konularını rasgele tartışmak ve ona bildiğiniz "en iyi uygulamalar" dan bahsedin (ve hatta yaratmaya çalışın). Tabii ki, öncelikle önerdiğiniz şeyin gerçekten yaygın olarak bilinen ve kabul edilen en iyi uygulama olduğundan emin olmalısınız.

Ayrıca, aynı sorunları diğer ekip üyeleriyle de tartışmaya çalışın. Kodlama stili ve kalitesi ile ilgili takımın (konuşulan veya konuşulmayan) "fikir birliğini" anlamak önemlidir . (Eğer herkes temiz ve kaliteli kod yazarsa, grubun geri kalanı FORTRAN programlarını gururla herhangi bir dilde yazan Gerçek Programcılar'dan çok farklı bir vakanız var.) Ayrıca projenin tarihsel geçmişini daha fazla anlatabilirler. ve patronunuzun kodlama stili, bu da çabalarınızı daha iyi hedeflemenize yardımcı olur.

Başka bir yol da ondan sipariş vermesini istemektir Etkili Java , çünkü daha iyi bir programcı olmak için ihtiyacınız olduğunu hissedersiniz. (Henüz okumadıysanız, aslında buna ihtiyacınız vardır.) O zaman onunla bu kitaptaki harika çözümler ve uygulamalar hakkında konuşabilirsiniz.

Kendini geliştirmeye açıksa, önerilerinizi alır (ve kitap). Değilse, yüzünü kaybetmeden ve ilişkinizi zorlamadan geri çekilebilirsiniz.

24
Péter Török

Patronun havalı bir adamsa, ona sor: "Dostum, WTF?"

21
gruszczy

"Benimkinin daha iyi" olduğunu düşündüğünüz her durumda asla bunu düşündüğünüzü söylemeyin, gösterin.

Tekrar ediyorum, GÖSTER, söyleme.

Eylemler hakkında daha yüksek sesle, sözler söylemenin doğru olduğunu biliyorsun.

8
Jack Marchetti

Patronunuz tam olarak hangi pozisyonda? O bir geliştirici, teknik lider mi? Şirkette başka kaç geliştirici var? Şirketin kodlama standartları ve kod incelemeleri var mı?

Patronunuzun (IMHO) kötü alışkanlıklarını değiştirmesi olası değildir, ancak onu etkilemek için bir akran grubu veya şirket standartları kullanabilirsiniz. Kodu yok standartları takip ederse ve akranları aynı ise, seçenekleriniz sınırlıdır.

6
Qwerky

İşte benim tavsiyem:

  • Durumunuzu iyi belirtin.
  • Yöneticiniz sizin görüşünüze açık değilse * ve haklı olduğunuzu düşünüyorsanız, daha yeşil meralar arayın ve bahane etmeyin.

Üç nedenden dolayı daha yeşil otlaklar aramanızı tavsiye ederim:

  1. Uzun vadede, kötü uygulamaları sürdürmek bir programcının kariyeri için zararlıdır. Kötü uygulamaların sürdürülmesi kötü alışkanlıklar doğurur.
  2. Alternatif bakış açılarına açık olmayan bir programlama mağazası hayal gücünü boğar.
  3. Kötü uygulamaları sürdürdüğünüzü ve ekibinizin alternatif bakış açılarına açık olmadığınızı bildiğinizde, moraliniz batmaya mahkumdur ve bu hayatınızı sefil hale getirecektir. Yani en kısa sürede bırakın.

* Önemli Ayrım: Birinin sizin bakış açınıza açık olmasını beklemek, birisini verime bakış açısı. Bakış açımı düşünen insanları her zaman takdir ediyorum, oysa yumuşak ve bakış açımdan yeterli bir sebep olmaksızın bakış açımdan (- === -) verim alan insanlara çok az saygı duyuyorum. kanıt.

6
Jim G.

Eylemler kelimelerden daha yüksek sesle konuşur:

Farklı bir yaklaşım:

  • Örnek olarak yol göster gerekir.
  • Yaptığınız projelerin yapabileceğiniz en iyi olduğundan emin olun.
  • Performans, daha az hata vb. Açısından Excel gerekir.
  • Bir kez yaklaşımınız ve tarzınızın patronunuzdan daha iyi olduğunu gösterebilirseniz, çok kibirli olmadıkça, o kişinin doğal olarak en iyi olanı takip edeceğini düşünüyorum.
6
Darknight

"Kötü" bir şey yaptığını gördüğünüzde ona küçük dozlarda işaretçiler verirdim.

"Hmm, {ekranına işaret eden} için bu yaklaşımı kontrol et, bunu falan filan filan yüzünden yapmayı seviyorum."

Bunu iki günde bir defadan fazla yapmayın. Önerinizi almazsa bir daha asla bahsetmez (birkaç hafta). Birkaç tanesi yapışacak. Ve yavaş yavaş iyileşecek.

4
Morons

Patronunuzdan size öğretilen başka bir yolla karşılaştırmasını isteyin. Meşru bir nedeni olabilir. Siz sorana kadar bilemezsiniz. Korumak için çalıştığı bazı eski kodlama standardı olabilir veya sadece umursamayabilir. Patronun otomatik olarak yanlış olduğunu düşündüğünüzü belirtmeyin. Oh, ve özel olarak yap. Bu eğitim amaçlıdır.

4
JeffO

Değişir. Eğer incelemekte olduğunuz kod yepyeni bir kod ise, o zaman "hızınızı artırmaya" yardımcı olacak ve öğrenmeye ilgi duyduğunuzu gösterecek şekilde kod incelemelerine sahip olmayı isteyin. Patron, bunu, doğru şeyi yapmak istediğinizi gösterdiği için yararlı bulabilir. Eğer karşılaştığınız eski bir kodsa ve bunu korumak zorunda kalırsanız, yavaş yeniden düzenleme yapmak için bir noktaya getirin. Elinizdeki görevi hala tamamlarken burada ve orada bir tür beyan. Şimdi burada sorun Evet veya Hayır Dize Maybe gibi diğer değerlerin üstesinden gelebilir eğer dikkatli değilseniz bozuk koda yol açabilir.

4
Woot4Moo

Yapacağım ilk şey eleştirmenlere nasıl tepki verdiğini bulmak. Eğer patron olsaydım - yanlış bir şey yapmazdım, değil mi? - Hemen yüzüme, saygılı bir şekilde söylenmeyi tercih ederim. Mizaç ve kültüre bağlı olarak, patronunuz farklı olabilir.

Ama çoğunun biraz saygı duyması gerekiyor. Ona saygı duyduğunuzu göstermenin iyi bir yolu, daha önce önerilmiş olan şeydir: Ne demek istediğinizi açıklayın, ama kararı ona bırakın: "Bu benim sebebim, ama belki de bir şeyleri denetledim. Açıklamadan sonra:"

if (YesOrNo == "Yes")
if (YesOrNo == "yes")
if (YesOrNo == "YES")
if (YesOrNo == "oui")
if (YesOrNo.equals ("Yes"))
if ("Yes".equals (YesOrNo)) // might be null

"Ne yaparsın sen önerirsin?"

Ve daha önce bir meta-sorgu isteyebilirsiniz: "Bay X, kodunuzda yaygın olarak iyileştirilebilir bir uygulama olarak bildirilen bir şey bulduğumda - bunu size nasıl bildirmeliyim? Hepsi bir kerede mi yoksa adım adım mı? ne pahasına olursa olsun bahsetmekten kaçınmak? sessizce kodu geliştirmek? "

Hangi ifadeyi seçeceğime ve hangi yaklaşıma bağlı olduğum ilişkisine bağlı olacaktır.

4
user unknown

Patronunuz nasıl programlanacağını bilmiyor ve bunu yapmamalı. Deneyimlerim bana patron olarak adlandırılan birinin de senden daha deneyimli veya daha iyi olduğunu varsaymanın yanlış olduğunu söyledi. Başka şeylerde daha iyi olabilir, ancak yönetim ve hiyerarşinin amacı işleri en uygun kişiye devretmektir. Patron, bir işletme kurma şansına sahip olan veya programlama becerileri için değil, yönetim becerileri için sonunda bir yönetim pozisyonuna giren kişidir.

Bir zamanlar benzinli bir elektrik jeneratörüne bağlıyken bir bilgisayar kurduğumu iddia eden bir patronum vardı, çünkü bilgisayar hala korumasızken bilgisayar korsanlarının elektrik şebekesinden girebileceğini iddia etti. Hemen bıraktım. O zamanlar değerli bir ders öğrendim: patron her zaman haklı değil ve bazen sadece değerli yanıtlardan vazgeçmek.

Yani, davanıza geri dönmek için, sadece başka bir iş aramanın (evet, kriz, yadda yadda ... biliyorum) en iyi tedavi olabileceği bir vakanız olabilir. Değerli zamanınızı boşa harcamayın.

4
Stefano Borini

Ona benzer şeyleri gerçekleştiren saygın sitelerden/yerlerden/kitaptan kısa örnek kod göstermeye çalışın.

4
chiurox

Patron hatalarımı bulamadığım sektörde yaşıyorum. Çok daha iyi, ben hata kodu göründüğü durumlarda oluşturmak ve ona hata görelim izin, ben ona gerekli değişiklikleri önermek ve olası neden hakkında [senin durumda neden emin ..: - D] hatası. İyi ya da kötü olan herhangi bir geliştirici, hatayı görene kadar hatayı kabul etmez.

3
Chris

Bir zamanlar patronların tarzı ile ilgili büyük bir sorun yaşadım.

Bununla ilgili iki sorun var. Öncelikle, yüzüne hiç söylemediğimi sanmıyorum, ama bildiğini hayal ediyorum. Profesyonel kaldı, ben yapmadım, IOW.

İkincisi, yaptığı şeyin nedenleri vardı ve bu benim doğru yoldaki "çözümlerimin" ne kadar karmaşık ve kötü olduğunu anlamak bana biraz zaman aldı.

Sorudaki üç noktadan, aksanlar herkes için garip değil ve bunu döngü için kullanmazken, C ailesi tarafından rahatsız oluyorum ... sözdizimi ve nasıl uyduğu (uymadığı) girinti tarzım, böylece nereden geldiğini görebiliyorum.

Booleanın bile başka bir dilden getirdiği alışkanlıklar açısından bir açıklaması olabilir (elbette bir gerekçe değildir).

3
Steve314

Sanırım bu işe yarayabilir -

  1. Yöneticinizden, yaptığı hiçbir hataya sahip olmayan kodunuzu gözden geçirmesini isteyin.
  2. Öyleyse müdürünüz size neden "onun" yolunu yapmadığınızı sorarsa
  3. Bu soruyu sorarsa, bunun neden daha iyi bir yol olacağını sorabilirsiniz.

Bu şekilde neden yolunun doğru olduğunu düşündüğünü öğrenirsiniz.

3
k25

Daha önce orada bulundum. Doğrudan Uni'nin dışındaydım ve yaklaşık bir yıl boyunca bir erkek için çalıştıktan sonra, programlama hakkında ondan daha fazla şey bildiğimi fark ettim, ama bu onun işi ve çekimleri çağırdı - ve onu rahatsız etmek istemedi. Neyse! Etrafında en iyi yolun, şirket genelinde ortak kodlama kurallarına sahip olmanın faydalarını tartışmak ve hepimizin bağlı kalması gerektiğine karar vermek ve nasıl tepki verdiğini görmek olduğuna karar verdim. Şaşırtıcı bir şekilde, bunun harika bir fikir olduğunu düşündü ve benden sonra birlikte gözden geçirip sonuçlandırdığımız standartların bir listesini çıkarmamı istedi.

Burada önemli olan şu ki, onun gibi yanılgan olmanız ve bazı yollarının garip/yanlış olması, bazılarının kendinizden daha iyi olması.

Benim kişisel deneyim ancak işe yaramadı. Standartları ve kodlama konvansiyonlarını araştırmak ve derlemek için 2 gün geçirmesine rağmen - zaten yolunda ayarlanmıştı, kodlama sözleşmelerinde ya da sunucuya daha az yük bindiren, işimizi yapan kod yazmanın faydasını gerçekten görmedi daha hızlı ve kolay ve maliyetleri düşürür.

Sonunda kalkınmayı biraz daha ciddiye alan bir yer bulmak için ayrıldım. Kodlama sözleşmeleriyle ilgili yaptığım araştırmalar bu güne gerçekten yardımcı olduğundan, hepsi kötü değildi.

3
user16731