Tavsiye edilen .NET / C # kodlama standartları? [kapalı]


19

.NET / C # projeleri için hangi kodlama standartlarının önemli olduğunu düşünüyorsunuz? Bu, kıvırcık parantezlerle uğraşmak ve bunun gibi boşluk ve bilgiçlikle uğraşmaktan herhangi bir şey olabilir. Veya .NET Framework'te hangi ad alanlarından kaçınılması, yapılandırma dosyalarıyla en iyi uygulamalar vb. Gibi daha temel sorular olabilir.

Bir başkasının sonucu olan bir yazı oluşturmaktan kaçının. Örneğin, bir direk kıvırcık ayraçlara odaklanmak iyi olur. Bir stili diğerine karşı desteklemek için ikiye ihtiyacımız yok. Fikir, evcil hayvanınızın standardına oy vermek değil, standartlar oluştururken nelere dikkat edilmesi gerektiğini belirtmektir.

Yanıtlar:


29

İşte .NET framework Sürüm 4.0 için kodlama standartları ile ilgili resmi Microsoft Kılavuzu.

1.1 için daha eski bir sürüm istiyorsanız, burada deneyin .

Dedikleri gibi, bunu mutlaka bir 'T'ye takip etmem. Ancak, şüphe duyduğunuzda, bu, mevcut projenizle tutarlı olmaya başlamak için en iyi yerdir, bu da projenizde yeni olmalarına bakılmaksızın herkes için daha kolay hale getirir.


3
Evet - yazılımı oluşturan kişilerin kullandığı şeylerle eşleşemez. Bu tür şeylerle ilgili bazı dini savaşlar gördüm, ancak kendi kodunuzun kullandığı çerçevelerle tutarlı olmasını sağlayacak bir şey verdiğinizde, kullanmamak için son derece güçlü bir argümana sahip olmanız gerekir. Bir bonus olarak, MS'nin ürettiği statik analiz araçları bu uygulamaları aramak için ayarlanmıştır.
Todd Williamson

Downvote hakkında geri bildirim alabilir miyim lütfen?
Ryan Hayes

Ne takip etmiyorsun?
JeffO

Orada bir sürü şey var ve henüz ezberlemedim. Yani, tam olarak takip ettiğimi söylemek yerine (yaptığımı bilmiyorum, bu yüzden doğru olabilir veya olmayabilir), sadece söylemediğimi söylüyorum haha. Eğer herşeyi bilseydim muhtemelen yapardım.
Ryan Hayes

10

StyleCop'a bir göz atmak isteyebilir . Stil hatalarının derlemeyi bozması için bazı derleme sistemlerine bile dahil edebilirsiniz. Varsayılan ayarlar çoğunlukla MS'in yönergeler için önerdiği şeylerle uyumludur (diğerleri tarafından yayınlandığı gibi).

Varsayılan olarak birlikte gelen kuralları da değiştirebilirsiniz.




4

FxCop ile başlayın . Mevcut kodunuzdaki en iyi uygulama ihlallerinden bahsedecektir.


FxCop ikili dosyalara bakar, size kodlama stilinden bahsetmez, ancak bazı sorunları tespit eder.
Steve



2

Yöntemler kısa olmalı

Çoğu yöntem bir sınıftaki çoğu alanı kullanmalıdır.

İsimlerinizi iyi seçin.

Temiz Kod kitabını okuyun


2

Camelback kuralları, yöntem adı vb.'nin yanı sıra bir kodlama standardını korumak için aşağıdaki uygulamaları kullanıyorum.

GhostDoc - Her yöntemin üzerine otomatik olarak oluşturulan bir yorum ekler. Uygulama yöntemin iyi bir inital özeti sağlar. (Bedava)

http://submain.com/products/ghostdoc.aspx

Yeniden paylaşıcı - kod analizi ve yeniden düzenleme http://www.jetbrains.com/resharper/

StyleCop - TFS'ye giriş yapmadan önce son temizlik olarak. (Bedava)

http://code.msdn.microsoft.com/sourceanalysis


1

Belirlenmiş kodlama standartlarından nefret ediyorum, hepsi ya birkaç aptalca hata yapmamanızı ya da kodunuzu bir şekilde nasıl biçimlendireceğinizi anlatmakla ilgileniyor. Hepsi önemsiz şeyler.

Yani, operatörler arasındaki koymak için kaç alanlarda söyleyecektir, tavsiye çakışmasıyla değişkenleri (üyeler için örneğin _) kullanımına ne 'Macar tarzı' önek, harf nasıl (örneğin bir sınıf Cxyz diyemezsin ama gerekir bir arabirim Ixyz çağırın), kodunuzu nasıl düzenleyeceğinizi (değişkeninizi sınıfın üstüne veya altına koyun)

Büyük resimde hepsi işe yaramaz.

Etkili, sürdürülebilir ve okunabilir kod yazmak için önemli olan bu standartlarda asla belirtilmez.

Örneğin: değişkenlerinizi sınıfınızın üstüne mi altına mı koyarsınız? Kimin umurunda - önemli olan, değişkenlerinizi fonksiyonel alana göre gruplandırmanızdır. Bu önemli (yer hakkında dağınık 20 değişken gördüyseniz bunu bileceksiniz).

Kıvırcık parantezlerinizi belirli yerlere koymanızı söylüyorlar. Önemli! K & R ve ANSI tarzı basamaklamada kodu okuyabilirim, önemli değil. Önemli olan, tüm Window sınıflarının bir şekilde farklılaştırılmış olması durumundadır (Form veya Dlg veya herhangi bir şekilde son eklenmiş gibi), böylece hangi dosyaların pencere kodu içerdiğini ve hangilerinin sıradan nesneler olduğunu görebilirsiniz.

Bunun gibi şeyler, standartların genellikle içerdiği küçük noktalardan çok daha önemlidir. Neden böyle geliştiklerini bilmiyorum, ancak genellikle etkili ve üretken kodlamaya engel olan bir ton kural.

Standartlarım daha çok kod ve dosyaların organizasyonuna odaklanmaya çalışıyor. Dosyaların nerede bulunacağına ilişkin belirli standartlarımız var. Örneğin, geliştirici olmayan çocuklar projelerimizden birine bakabilir ve hemen ihtiyaç duydukları belge dosyalarını alabilirler. Benzer şekilde, proje kodunu pratik olarak diğer projelere benzer şekilde düzenlemeye çalışırız (not: pratik olarak, her zaman uygun olmayabilecek ağır yasaklanmış bir şekilde değil) ve temel olarak gerektiğinde değiştirilebilir.

Kısacası - her zaman uyulması gereken bir dizi kısıtlayıcı kural olarak değil, birlikte çalışmamıza yardımcı olmak için oradalar .


1

Uyarı: Pragmatizm aşağıda - Soru "uygun" kıvırcık küme ayracı tarzı, vb hakkında tartışma ortaya çıkarmak için ifade gibi görünüyor.

  1. ReSharper'ı yükleyin , varsayılanları bırakın, ne söylerse yapın.

  2. Kâr - Ekibinizdeki herkes, Microsoft kurallarına çok yakın olacak aynı stile sahip olacak, yalnızca Resharper standartlarının endüstride daha yaygın olarak kullanılanları yansıttığı ve (tartışmalı olarak) iyileştirmeler yaptığı birkaç noktadan sapacaktır.

Ekibiniz, bazı komik belgeleri veya kitapları oluşturmak ve bunlara atıfta bulunmak ya da curly bracesdiğer inançlarla uğraşmak için ne kadar az zaman harcarsa, o kadar çok kodlama yaparlar. ReSharper, yazarken adlandırma ve stili zorlar. Bitti. End-of-tartışma. Tartışacak bir şey kalmadı. Hareketli.

Bununla birlikte, klasik Kod Tamamlama'nın okunması, kodlama standartlarının arkasındaki mantığı anlamalarına yardımcı olacak ve standart yoluyla bir belge veya denetim programının yapamayacağı bir şey ile kodun etkin bir şekilde aktarılması için birçok harika işaret sunacaktır.

Yeniden paylaşıcının sizin için yapabileceklerini artırmak istiyorsanız, ReCharper for StyleCop eklentisine StyleCop ekleyin . Belirtildiği gibi, MS yönergeleri ve ReSharper varsayılanları arasında birkaç küçük çakışma olacaktır. Bunlara ReSharper ile giderdim. Ancak hangi tarafı alırsanız alın, sonuçları ReSharper yapılandırma dosyasına kaydedin, ekibiniz arasında paylaşın ve işinizi tamamlayın.

. (Hayır, pek çok diğer özellikleri sadece mutlu bir müşteri olarak eklenmesi ReSharper için ücretli Shill değilim, kolları herhangi standartlar belge veya kod incelemesi sistemden daha etkin bir şekilde temel stil yaşanan sorunlar daha maliyetli - şeylerin olduğu için beyin gücü bırakarak olsun .)

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.