Bir programcı işe alma kararı için iyi bir kodlama stili ne kadar önemlidir? [kapalı]


15

Bir öğrenci olarak bile, bir testi geçmemiş (android'de Fibonacci numaralarının bir listesini oluşturmuş) programcıların kodunu gözden geçirmem isteniyor.

Ben kodlama tarzı çok sıkı iken sadece biri kullanılan "blok" tarzı hakkında okumak (yorum okuyun!) .

Benim durumumda bu tarz bir tarz kullanarak bir adam işe değil tavsiye ederim. Kod firmamda kullanılan kodlama stilinin tam tersidir.

Kodlama stili ve eksikliğiyle nasıl başa çıkılırken bir şey merak ediyorum: Sahip olacak bir adam tutmalı mıyımciddi sorun Firmada kullanılan kodlama stilini uyarlama

Bu olmalıdır: Lütfen değil iyi olan genel tarzı kodlama ve ilgili tartışmaların yapılması. Birisi işe karar için kodlama tarzı önemi hakkında!

Daha fazla bilgi:

Kararı veren kişi ben değilim, sadece kanıta göre fikrimi veriyorum. Adamın, yumuşak becerileri kontrol eden her şeyin başı olan bir röportajı geçmesi gerekiyor. Eğer bunu geçerse, küçük beceri testimizi geçmek zorunda kalır ve bu noktada bazen yazılı kodu gözden geçirmem istenir. Evet ya da hayır diyebilecek durumda değilim. İnceleme için kodlama tarzının ne kadar önemli olması gerektiğini bilmek istiyorum ...


9
Zeki. (Gerçekler tarafından desteklenmeyen) "ciddi sorun uyarlaması" nı kaldırmak yerine, içinden bir çizgi koyun. Sanki bu aslında bir başkasının tutumu hakkındaki temelsiz iddiayı değiştiriyor.
S.Lott

2
Kodlama stili, endişelenmeniz gereken en az önemli şeydir. Sonuçta, bu sadece bir kod.
SK-logic

7
Sorunuzu okumaya çalışıyordum, ancak biçimlendirmenizi takip etmek zor buldum. Paragraflarınıza bir başlangıç ​​girintisi ekleyebilir misiniz? 'K THX BAI
dietbuddha

2
Kod tutarlılığı (veya eksikliği) bir göstergedir. Örneğin, birinin kodunu düzenlemek için vakti yoksa, muhtemelen yıkılmada yeni bir proje yapmak için doğru yeri bulmak için zamanı yoktur. Muhtemelen refactor için zamanları yok. Liste devam ediyor.
Kevin

10
Kodlama stilini ayarlamak gülünç derecede kolaydır. Bu, "Bu kişi siyah takım elbise giyiyor, ancak şirketimizde çalışanların koyu gri takım elbise giymesini tercih ediyoruz. Onları işe almalı mıyım?" Onlara şirketinizde sahip olduğunuz stil kurallarını söyleyin. Sorun çözüldü.
sulu lucy

Yanıtlar:


41

Uyum sağlamada sorun yaşayacağını nereden biliyorsunuz? Farklı bir kodlama stili kullandıkları için mi? Bu oldukça küstahça. Uzun süredir yükleniciyim ve hangi kodlama stili kullanılırsa kullanılsın uyarlanıyorsunuz. Biraz zaman alabilir, ancak alışkanlıklar oldukça hızlı bir şekilde oluşur.

Umarım kodlama tarzı ile kodun girintisi ve yerleşimi anlamına gelmez. Bu, bir kod formatlayıcı kullanmak ve bunu sürüm kontrol sisteminize entegre etmekle kolayca halledilir.

Kodlama stilini adlandırma, genel sıralama, birim ayırma ve okunabilirlik ve sürdürülebilirlikle ilgili diğer her şey anlamına gelmek için kodlama stiliyle ilgili en önemli şey, bir tane olması. Hangisi değil. Kodlama stiline sahip olmama kesin bir kırmızı bayraktır.

Birinin kullandığı kodlama stili hakkında en önemli ikinci şey, onu tutarlı bir şekilde kullanmasıdır. Birisi bir kodlama stili kullanıyor gibi görünse de, sıklıkla buna karşı "günah" yaparsa, bu başka bir kesin kırmızı bayraktır.


5
+ 1'in bir tane olmaması veya sürekli olarak kullanılmaması 'kırmızı bayraklardır', farklı bir stile sahip değildir.
jv42

1
Tamamen katılıyorum "en azından tutarlı olarak kullanmak". Bu kodu incelerken en önemli şey. Ama itiraf etmelisiniz ki, kod stili / kod formatı yabancı bir koda baktığınızda ilk izlenimdir ...
WarrenFaith

3
@WarrenFaith: Bir kitabı kapağına göre mi değerlendiriyorsunuz? :-) Ciddi olsa da, evet ilk izlenim veriyor, ancak röportaj yaparken bunun ötesine bakmaya özen göstereceğini ve sadece mevcut stili sizinkine uymadığı için mükemmel yetenekli bir geliştiriciyi geçmeyeceğini varsayıyorum.
Marjan Venema

Tutarlılık için +1: stil eksikliği genellikle fazla yazmadıklarını gösterir. Yazarken alışkanlıkları seçersiniz.
Matthieu M.

1
Otomatik kod biçimlendiricilerinden nefret ediyorum, ancak bunlara olan ihtiyacı kabul edebilirim. Onlar sadece yanlış yerlerde satır sonları almak gibi görünüyor. Evet, tutulmadan bahsediyorum.
Kevin

27

Neredeyse yüz farklı müşteri için yüzlerce farklı projede programlama yaptıktan sonra, bir noktayı vurgulayayım.

Kodlama stili (ve kodlama stili üzerinde tartışmalar) tam bir zaman kaybıdır.

AŞ bunu.

Birçok farklı programcıdan çok kod okudum. (Ortalama bir takımın 5 ve 100 farklı takım olduğunu varsayalım. 500 iş arkadaşı.) Stil önemli değil.

Güzel ama patolojik olarak yanlış kod gördüm.

[Bir sınır var. Kasıtlı gizleme fesih sebebidir. Kısacası, stil zaman kaybıdır.]

Kodlama stili "son sınır"

Yazılım geliştirme ile ilgili tüm sorunları çözdüyseniz; derhal hatasız kod üretebiliyorsanız; kalite seviyeniz çok yüksekse, artık bir hata düzeltme kuyruğunuz yoktur; kullanılabilirliğiniz bu kadar muhteşem ise, artık bir yardım masanız yok; bir sunucu grubunuzun olmadığı noktaya acımasızca optimize edebiliyorsanız, ancak işletmeyi bir iPad'den çalıştırabiliyorsanız ...

Düzeltilecek bir şey kalmadığında, sonunda kodlama stiline odaklanabilirsiniz.

O zamana kadar, tarzdan daha büyük ve daha değerli olan çok sayıda sorun var.


2
@ WarrenFaith: Bunu yeterince güçlü bir şekilde söyleyemem. Sorun değil. Demek istediğim tekrar ediyorum. Yüzlerce ve yüzlerce programcıdan (profesyonel olarak, ücretli, faturalandırılabilir saatler) kod okudum. Sorun değil. İlk izlenim değil: doğruluk ve netlik ilk izlenimlerdir.
S.Lott

2
@WarrenFaith: Kasıtlı belirsizlik nadirdir. "sadece kodu okuyamıyorsanız" yazarın sorunu kadar okuyucu sorunu olabilir. Demek istediğim tekrar ediyorum. Yüzlerce ve yüzlerce programcıdan (profesyonel olarak, ücretli, faturalandırılabilir saatler) kod okudum. "Sadece okuyamıyorum" hiç olmadı. Stil önemli değil.
S.Lott

2
Kodlama stili (ve kodlama stili üzerinde tartışmalar) tam bir zaman kaybıdır. - İkinci noktada% 100, ilk sırada% 40 katılıyorum. Kodlama stili önemlidir - kodlamanızda hiç stil yoksa. Varsa, nasıl göründüğü o kadar da önemli değil.
Treb

4
@ WarrenFaith: Örneğe baktım ve orada net olmayan hiçbir şey göremiyorum. Nasıl biçimlendirebileceğim biçimlendirilmedi, ancak kodun çalışmadığını gösteren hiçbir şey yok. Bu konuda belirsiz bir şey yok. Yazan kişinin bir takım standardına uymak istemeyeceğini veya teklif edemeyeceğini önerecek hiçbir şey yoktur. @ S.Lott haklı. Önemli değil.
Joel Etherton

4
Ve //Importanther satırda kullanmak. Ahem. Her kod satırı önemlidir veya silinmelidir.
S.Lott

7

Programcıları kodlama stiline göre değerlendirmek% 50 züppelik ve% 50 güvensizliktir.

Kodumu düzgün ve temiz görünmesini istiyorum ve OP'nin bağlantıda düzensiz olan adam gibi de geliyor. Kodumuz aynı görünmüyor, ancak ikimiz de geri döndüğümüzde kodu anlamamıza yardımcı olan bir stil kullanıyoruz. Ben kesinlikle onun kodunu anlamak hiç sorun yoktu ve ben de OP şüphe. Kodlama stili "tavsiye", kıvırcık parantezlerin bir sonraki satırda neden olması gerektiği konusunda büyük bilgeliğinizi iletebileceğiniz kolay ve ucuz bir çekimden başka bir şey değildir. Hiç önemli değil. Kodun okunmasını zorlaştıran şey:

  • neyi temsil ettiklerini açıklamayan çılgın isimlendirme kuralları (ya da bunların eksikliği).
  • neler olduğunu anlatmayı zorlaştıran çılgın program akışı (git, iş mantığı ile dene / yakala, vb.).
  • beynin takip edebileceğinden daha fazla şey yapan delice uzun fonksiyonlar.

Yukarıda listelenen herhangi bir şey yapmadı, ama özellikle Style Cop gibi bir araçla, okumak hala zor olan herhangi bir kod hayal sorun var.


7

Bu var saçma birini işe karar verirken kodu formatı bir faktör olması.

  1. Dikkate alınması gereken çok daha önemli faktörler var.
  2. Çoğu geliştirici tarzlarını uyarlayabilir.
  3. Biçim bu kadar önemliyse bir kod yeniden biçimlendirici ve tüy bırakmayan bir denetleyici kullanın.

Virgül aptalca olduktan sonra boşluk eklemediği için iyi bir geliştirici tutmamak.


4

Sanırım şirkette resmi bir biçimlendirme stiliniz var.

Ardından, herhangi bir kaynağı resmi stile yeniden biçimlendirmeyi son derece kolaylaştırın ve tercihen kaynak dosya her kaydedildiğinde otomatik olarak gerçekleşmesini sağlayın.

Tuzuna değer herhangi bir programcı bunu sevmek için büyüyecektir, çünkü taahhütlerin farkını en aza indirerek daha yüksek kalite sağlar.


taahhüt problemlerini unuttum ... ve evet, kaydetmeden önce resmi bir biçimlendirme stiline ve otomatik biçimlendirmeye sahibiz.
WarrenFaith

@Warren, o zaman röportajda bunu söyleyin ve programcının bunun önemli olduğunu anlamasını sağlayın. O zaman işi devam ettirmek istiyorsa, vaadine kadar yaşamak ona bağlıdır.

4

StyleCop Kullan

Visual Studio kullanıyorsanız, StyleCop kurallarını derlemenizle her zaman zorlayabilirsiniz; bu da kodunuzun en azından okunabilir olmasını sağlar.

Okunamayan kodu tartışmasız standart olmayan tarzda reddediyorum , çünkü gelecekte - yazarların kendileri tarafından bile bakımı çok zor olacak . Bu geçmişte birçok kez kanıtlanmıştır.

CVS entegre kod formatlama = optimum çözüm

CVS'den herhangi birinin check-in sırasında otomatik kod formatlamasını desteklemesi gerçekten harika olurdu. Stil önceliklerinizi belirlersiniz, kod kaydedilmeden önce biçimlendirilir. Bu, geliştiriciye özgü stili kod biçimlendirmesi açısından geçersiz kılacaktır. Bazı geliştiriciler farklı girinti karakterleri kullanıyorsa sorunu görebiliyorum. Farklı koda bakmak benim için sorun değil (ve kolayca ve hızlı bir şekilde yeniden biçimlendirebilirim) ancak DIFF'ın işlenmesi zorlaşıyor. DIFF aracında çok sayıda yanlış pozitif var.


Yani ... bazı şirketler kendi C # kodlama standartlarını icat ettiyse, bu bir kırmızı bayrak mı olurdu?
İş

1
@ İş: StyleCop ek kurallar eklemeye izin verdiği için zorunlu değildir. İlk başta orada olmayan SPACE'ler üzerinde TAB'ları uygulayan iki tane yazdığımı biliyorum. Ancak fikir, kodlama stilinin zorlanabilmesidir, bu da tekdüze bir kodun olmasını çok daha kolay hale getirecektir.
Robert Koritnik

Stilleri tekrar StyleCop'a gitseydi ve StyleCop'u hiç kullanmıyorlarsa ne olurdu?
İş

@İş. Birisi eski Fortran (80 sütun sabit düzen kimse?) Sanki C # kodu yazmadığı sürece o zaman hala kodlama tarzı uyulması istenebilir düşünüyorum. Birisi harika bir geliştiriciyse, onlara stillerini geliştirmelerini hatırlatabilir (veya stillerini bizimkiler üzerinde haklı göstermelerine izin verebilirsiniz ). Kod incelemesi bunun içindir. Herhangi bir kod hızlı bir şekilde yeniden biçimlendirilebilir, ancak en azından adlandırma kurallarına uyulmalıdır. Ama hiçbir şekilde kiralık kırmızı bayrak değildir. Olmamalı.
Robert Koritnik

3

Aşağıdaki çok daha önemli ayrıntıların çok altında:

  • Takım Uygunluğu
  • Problem Çözme Yetenekleri
  • İletişim

Kodlama stilleri, yukarıda listelenen son ikisi olan çoğu kişi tarafından öğrenilebilir.

Bununla birlikte, genellikle son görüşmeden önce bir kod örneği görüyorum ve kodlama stili kullandığımızdan çok uzaksa, uyum sağlama yeteneklerini ortaya çıkaran sorulara odaklanacağım.


Benim durumumda sık sık adamdan gördüğüm tek şey ...
WarrenFaith

@WarrenFaith - Tamam, ama çok az bilgiye dayanarak birini işe almak için asla tek elle karar vermeyeceksin, değil mi? Sizden sadece bir fikir isteniyor.
pdr

Doğru. Fikrimi teknik açıdan veriyorum ve yumuşak beceriler de önemli. Ve sadece röportajda en azından yumuşak beceri “testini” geçen adamları test ediyoruz. Ancak kodlama stilinin benim görüşüm üzerindeki etkisi hakkında merak ediyorum ...
WarrenFaith

@WarrenFaith - senin pozisyonunda, bundan bahsederdim, ama çok önemli bir şeyden ziyade bir sidenote olarak.
pdr

Temelde sadece pro ve kontraların bir listesini yapıyorum ve CTO'muz için açıklıyor ve haklı çıkarıyorum. Son karar ona kalmış ...
WarrenFaith

3

Stil tutarlı olduğu ve o kişi başka bir stile uyum sağlayabildiği (değişebildiği) sürece herhangi bir sorun görmüyorum.

Mevcut stil kullandığınızdan farklıysa, kötü olduğu anlamına gelmez. Aday için tam mantıklı olabilir.

Diğerlerinin söylediği gibi, uyum sağlamada sorun yaşamak tek sorun olabilir.


0

Bunun kesin bir işe alım olmadığını söyleyemem, ama bu kişiye karşı güçlü bir argüman.

Aslında kodlama stili hakkında değil, genel bir problemin belirtisi olmaya uyum sağlayamama konusunda endişelenmem. Adayın takım kültürünün diğer yönlerine de uyum sağlamakta zorlanacağından korkarım.

Eğer aklınızı deve tarzı kasa yerine pascal tarzı kullanarak satamazsanız, son bardağı alırsanız yeni bir kahve partisine başlamayı hatırlamakta zorluk çekebilirsiniz. Bu tür şeyler takıma gerçekten zararlı olabilir.

(Ve evet, ben bir kafein bağımlısıyım.)


"Kötü kodlama stili" ile gelen sorun genellikle deneyimsizliktir. En yeni başlayanları gördüğümde, genellikle kodlama stili olarak adlandırılabilecek hiçbir şeyden yoksundurlar.
WarrenFaith

?? "bu kişiye karşı güçlü bir tartışma" ... "aslında kodlama tarzı hakkında endişelenme". Hangisi? Önemli mi, değil mi? Cevabınızdan ne olduğunu söylemek zor. Açıklığa kavuşturabilir misiniz, lütfen?
S.Lott

@ S.Lott: Hangisi? - Tabii ki ikisi de. Kötü kodlama stili kötü bir alışkanlıktır, çoğu insan onu dökmeyi öğrenebilir. O zaman bir sorununuz olduğunu öğrenemezler (ya da öğrenmezler).
Treb

0

Bence, bir programcının çalışabilmesi için iyi bir kod stili şarttır.

İyi bir kod tarzına sahip olmak kişisel gelişim meselesidir. Bu programcının zaten hangi seviyeye ulaştığının bir göstergesidir.

Soru, şirketinizin "yüksek profesyoneller" veya "yüksek potansiyeller" isteyip istemediğidir. "Yüksek profesyonellere" ihtiyacınız varsa ve öğrenmek ve gelişmek için yer yoksa - kod stili bir eleme ölçütüdür.

Gelişmeye ve programcıların gelişimine yer varsa, hızlı öğrenme ya da yaratıcı düşünme yeteneğine dikkat etsen iyi olur.

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.