Ben programlama ekipleri sıkı bir kodlama standardı takip beklemeliyim?

14 Cevap php

I am personally a very big fan of following internal coding standards when working with a group of developers. I feel like it brings continuity to the code and allows people to more easily expand the code base, switch off work, and assist each other with difficult tasks. On the other hand I am aware that a large set of people are of the belief that as long as the coding gets done on time and it works that we should embrace the differences in the individual coder’s style.

Madalyonun iki tarafını görünce ben biraz programcılar stil boğucu oldukça standartlarına uyumlu kod tabanı alarak kazandı (bazen marjinal ve bazen büyük) fayda değer varsa zor karar bulabilirsiniz. Hız önemlidir Çevik geliştirme çerçevesi içinde çalışan, özellikle ben bir daha da önemli bir soru olur düşünüyorum.

Ben bir PHP programcısı yaşıyorum durumu kötüleştirecek, bu yüzden çok nadiren büyük ölçüde kendi kendini yetiştirmiş bir disiplin olduğundan aynı tarzı ile iki bükücü karşılamak için gidiyoruz.

Bu önerileri gibi standartlar gevşek bir dizi var ve sadece parantez her zaman açık olması (değişken adları Macar notasyonu kısıtlayan gibi) çok önemli öğeleri görev veya demir yumruklu olmak daha iyidir ve girintiler sekmeler ve boşlukların değil olması gerektiren ve daha iyidir kendi bir çizgi.

Edit:

Söz hatamı görmeliydin - onlar enlem bir şey olmalı ya da ben sıkı onu kapatmamız gerekir - Ben standart ne kadar sıkı olmalı ilgileniyorum sanırım?

14 Cevap

Uygulamada, ben formatting konusunda sıkı olması daha naming geldiğinde çok daha önemli sıkı olması olduğunu bulduk.

Neyse ki, bu adlandırma için standartlar kümesi araya koymak çok daha kolay.

Bu kendi kişisel tarzını kısıtlamak için neden gerekli olacağı gibi uzun birinin kod kadar okunabilirliği gider gibi yol dayak yolu kapalı değil gibi, ben görmüyorum.

Bu değer ne için, ben bir takımın kod kalitesi adamak için zaman ve enerji kısıtlı olduğunda, daha etkili kod yoruma harcanan olabilir bulduk. Düzgün adında, düzgün aralıklı kötü kod hala zayıf kodudur. Eğer her ikisi için zamanınız varsa, elbette hem yapmak. Ama seçim olsaydı ...

Standartları veya sürecin başka tür kodlama beceri için hiçbir değiştirme değildir. Takım yetenekli ve iş (ve bitti tarafından ben de ne ürettikleri sürdürülebilir olduğu anlamına) yapılır oluyor, sonra kodlama standartları gerçekten hiçbir yere almıyor.

Evet, standart takip etmelidir. Aksi takdirde bir karışıklık var.

If you starting a team — you can create a document based on your coding style.
If it's any existing team, then you better come up with the standard that everyone is agreed with by discussing it first.

Ben standartları olması gerektiğini kabul ediyorum. Visual Studio 2008 otomatik biçimlendirme seçenekleri belirli bir dizi seçti ve diğer tüm geliştiricilerin bu ayarları içe vardı.

Kolayca farklı stilleri ile karşılaşabilirsiniz konular arasında rezil boşluklar vs sekmeleri. VS 2008 yılında, bazen karışık girinti stilleri olabilir ve Ctrl-E, D belgenin tamamını biçimlendirmek için isabet VS çökmesine neden olabilecek bir durum var.

Geri ve ileri sürekli birbirlerinin formatını değiştirmeyi geliştiriciler yok çünkü zorunlu bir stil benzerliği olması da, en sevdiğiniz kaynak denetim yöneticisi temizleyici kaydedilmesini tutar.

Edit: enlem ilgili, ben adlandırma kuralları ve okunurluk ilgili benim geliştiriciler için bazı kurallar var, ama biçimlendirme haricinde katı olmayan kurallar (açılış ayraç ve benzeri gider ne hattı). Bunlardan biri alt ya da üst kısmında özel alanları koyarsanız ben sakıncası olmaz. Ben bir yenisini ekledi, ben taklit ediyorum.

Sizin soru sadece belirsiz ve genel, yani genel bir cevap alırsınız. Ben ayrı ayrı bireysel tarz her yönü yargıç söylemek ve sonuçları nelerdir.

Okuma kodu önemlidir için kullanılan farklı biçimlendirilmiş eğer Tutulma seçeneği biçimlendirme kodu kullanabilirsiniz.

Jon (yukarıda) adlandırma standardize etmek önemli şey olduğunu kesinlikle doğru değildir. Ama herhangi bir ürün için kod temeli standardizasyon adil bir derecesi olması gerekir. Takım yeni geliştiricileri desteklemek için.

Eğer gerçekten hızlı inşa kapattı ve yapı parçası olarak meta-kod yaratabilirsiniz sizin dilinizde mevcut "otomatik biçemleyecileri" vardır değilseniz.

Aslında çalışan için iki ayrı ağaç, sadece referans diğeri için tutabilirsiniz. Geliştiriciler (as long as they name things in a standard way) ve bunların kod derleyici tarafından kullanılan başka bir ağaca "Standardizer" itilir istediğiniz tarzı ne olursa olsun yazmak. Bu, bireylerin yabancı bir tarzı var kod devralması halinde "referans versiyonu" başlatmak için projeye kendi stillerini ve yabancıları korumak sağlar.

Ben kodu incelemelerde yararlı buldum başka bir araç Ben özel değişken adları genellikle ilgi değilim ve bu sadece hiç "Derlenebilir gözden kulüpler sağlar Lütfen bana bir bozulamaz düzeneğini görüntülemek için dil seçmenizi sağlar. Net için reflektör kod "

Eğer standartlar demek ne olursa olsun, actual standartları zorlamanıza nelerdir.

Kimse yaratıcılık parantez gitmek kaç alanlarda ne hakkında kurallar zarar olduğu. Öte yandan, bu boşluk (veya tersi) ile sekmeleri yerini alacak bir editör almak faydalı olabilir.

Tüm geliştiricileri biçimlendirme yoluyla yaratıcılıklarını ifade için izin ile ilgili bir problem onlar ne yapacağız olmasıdır: fikirlerini maç için malzeme yeniden biçimlendirme yerine, üstlenmeden zaman harcamak.

Bunu istemiyorum.

Kod gözden ve yorum bu kısmı biçimi olduğundan emin olun. Bu kadar eğilebilir olsun geliştiriciler varsa, muhtemelen onlar kendilerini düşünmek kadar muhteşem değil.

PHP için bir standart var?

(Cue-bol downvotes)

Evet, bir takım aksi takdirde büyük bir karmaşa olacak, her üye takip onun kodlama kurallar olmalıdır (bir meslek ya da açık kaynak takım veya hobi grubu ya da başka olsun); Daha (hatta tek bir geliştirici olarak, zaten yararlı) bir kaynak kontrol sistemi kullanmak istemiyorsanız.

edit to reflect OPs edit

Eğer kaynak denetiminde bir yazılım tarafından "zorunlu" olabilir katı (örneğin biçimlendirme, alanlarda, onlar kodlama iken, onlar gibi, ancak bunu yapabilirsiniz, taahhüt, ama olmak zorunda değilsiniz bazı alanlar vardır an, o) normalleştirilmiş alır, kaynak kontrolü ulaşır, ama bu kolayca bir program tarafından değiştirilebilir değil gibi özellikle adlandırma diğer alanlarda, çok sıkı olması gerekir. Örneğin, yerine tek bir harf açıklayıcı adlar kullanın

for (int i = 0; i<int.MaxValue;i++)

vs

for(int count = 0; count<int.MaxValue;count++).

İkincisi yolu daha okunabilir ve açıklayıcı ilk daha.

Lütfen sözleşmeler ne olursa olsun şekil veya formu, bunları uygulamak zaman herkes kendi düşüncemi verebilir emin olun, ama tartışmaya çok fazla zaman harcamak yok. Bu şekilde, insanların kendi düşüncemi ifade edebiliriz ve üzerine basılmaması hissetmiyorum.

Macar notasyonu getirmek beri Birincisi, burada Joel's Making Wrong Code Look Wrong maddesine zorunlu bağlantıdır. Joel iyi ve kötü yolları gördüğü ne Macarca kullanarak anlatılır :-).

Prensip olarak, bir grup standart iyi bir şey olduğunu kabul edeceğiz. Uygulamada, benim deneyim onlar kabul etmek zor olduğunuzu olmuştur - örneğin Bir kişi başka kendileri tarafından bir çizgi üzerinde onlara sahip hakkında sadece dini olacak ise satırın sonunda olmak Pars açma konusunda dini alacak. Onlar hiçbir kod yorum ya da kod standardına uygun olduğundan emin yapmak için başka bir mekanizma var, özellikle de uygulamak zor. Ben iyi olanı için çalışıyoruz söyleyebilirim; örneğin benim önceki örnekte, yöntem ya da makul okunabilir görünüyor, belki bu slayt izin, ancak bir değişken adlandırma kuralını kullanarak eğer birisi kullanmaya çalıştığında slayt izin vermeyin 'a' bir müşteri adını içeren bir değişken için!

Henüz kimse bu örtülü emin değilim, ama benim deneyim kodlama standartlarının en önemli yönü olduğunu everyone in the team agrees with them. Evet, kodlama standartları gibi ihtilaflı şey kabul tüm akıllı programcılar bir grup almak gerçekten zor ama uygulanabilir bir şey kabul edilene kadar bunu tartışmak için temettü öder bulmak.

Bir önceki görevinde, ben hedeflerin çeşitli gelişimi için farklı platformlarda bir dizi kullanarak yetenekli programcılar çeşitli vardı. Çalışma, çoğunlukla C-tabanlı ve karmaşık oldu. Biz gibi şeyler kabul etti:

  1. Sekmeler yerine uzaylar.
  2. C + + hazırlanıyorlar stili (ayrı hat)
  3. Her zaman kod blokları için parantez koyarak.
  4. Fonksiyon adlandırma Module_VerbObject olduğunu [Sıfat], örneğin GraphicsContext_DrawRectangle ()
  5. belirli bir düzen içinde ifadeleri içerir
  6. Yorumlar fonksiyonları fazla 10 satır
  7. Yorumlarda belirli anahtar kelimeler (Optimize, DONOTTOUCH, vb)
  8. Küfür yok, adlandırma / Shaming / kodu veya yorumlarda suçlayarak

Faydaları vardı:

  1. Harmony - Her herkes birinin 'kod okuyabiliyordu.
  2. Sadece 'iyi şeyler' - Yeni işe kodun herhangi bir bölümünde başlamak olabilir.
  3. Biz (bu sürekli entegrasyon öncesi gün olarak) birden fazla platformda konulara bakmak için sürüm kontrolü, check-in kanca kullanabilirsiniz
  4. Daha iyi kere build (deyim sipariş, vb dahil)
  5. Perl script harika bir parça Bu tutarlı kodlama stilleri olmadan mümkün olmazdı vb malloc () yetmezliği, kontrol etmek için başarısız ortak hatalar seviyor için baktım.

Yeni roller, ben kodlama standartları 'zorlamak' imkansız üzerinde yakın olduğunu bulduk, yavaşça yapılmalıdır.

Kullandığınız diline bağlı olarak, sadece ilgili herhangi bir "standart kodlama" (okumak için, gerçek anlamı (duh!) değişen OLMADAN, off-the-raf kaynak kodunu almak ve masaj olacaktır akıllı reformatters satın alabilirsiniz: keyfi İstediğiniz girinti, brace stil ve etajer ilgili kurallar).

Geçen gün baktım biri bir site lisans için yaklaşık US $ 35 Adet Adet 1, 1000 ABD $ maliyeti. Bunlar devede. Muhtemelen tuvalet kağıdına daha fazla harcıyoruz.

Prosedürünü kontrol kaynak kodunun reformatter parçası çalışan yapmak ve bu konuda endişelenmeyin.

Ben gevşek standartlarına sopa ile olur. Ben şimdiye kadar çalıştığım hiçbir programcı tarafından başka kullanılan kodlama tarzına uyum sorunları vardı, bu yüzden zalim olmaya çalışıyorum herkesi rahatsız edici değmez. Kod okunabilirliği önemli, çünkü zorlamak için önemli şeyler, tutarlı adlandırma kuralları ve aklı başında girinti vardır. Tabii ki, kod doğruluğu ve sürdürülebilirliği daha da önemli olan, bu nedenle kod kalitesi tüm yönlerini kapsayabilir kod yorumlar, önemlidir.