Aslında, ele alınması gereken iki şey olduğunu düşünüyorum ve aslında her ikisini de önemli bulmama rağmen, aynı şekilde ele alınamayacakları için ayrı ayrı ele alırdım.
- Teknik yönü: Riskli veya kötü biçimlendirilmiş kodlardan kaçınmayı hedefleyen (derleyici / tercüman tarafından kabul edilse bile)
- Sunum yönü: Programın okurlara net bir şekilde gösterilmesi ile ilgili
Ben hak teknik yönü Kodlama Standardı olarak yapmak Herb Sutter ve Andrei Alexandrescu onların ile C ++ Kodlama Standartları . Adlandırma kurallarını, girintileri vb. İçeren Kodlama Stiline hak kazandığım sunum ...
Kodlama standardı
Tamamen teknik olduğu için bir Kodlama Standardı çoğunlukla objektif olabilir. Bu nedenle, her kural bir sebeple desteklenmelidir. Her maddeye atıfta bulundum kitapta:
- Bir başlık, basit ve konuya
- Başlığı açıklayan bir özet
- Aksini yapma konusunu gösteren ve bu nedenle gerekçeyi belirten bir tartışma
- isteğe bağlı Bazı örnekler, çünkü iyi bir örnek bin kelimeye bedeldir
- isteğe bağlı Bu kuralın uygulanamayacağı bir istisnalar listesi, bazen geçici olarak
- Bu konuyu tartışan referansların listesi (diğer kitaplar, web siteleri)
Gerekçe ve ne zaman özetledikleri için gerekçe ve istisnalar çok önemlidir.
Başlık, incelemeler sırasında yalnızca çalışmak için bir başlık listesine sahip olmanız yeterli olacaktır. Ve tabii ki, aramayı kolaylaştırmayı kolaylaştırmak için maddeleri kategorilere göre gruplandırın.
Sutter ve Alexandrescu, C ++ kıllı görünse de, yalnızca yüz öğelerin bir listesini çıkarmayı başardı;)
Kodlama Stili
Bu bölüm genellikle daha az nesneldir (düpedüz öznel olabilir). Buradaki amaç tutarlılığı garanti altına almaktır, çünkü bu, bakıcılara ve yeni gelenlere yardımcı olur.
Burada girintiliğin ya da ayraç tarzının daha iyi olduğu hakkında kutsal bir savaşa girmek istemezsiniz, bunun için forumlar vardır: bu nedenle bu kategoride lider (ler) in kararını oybirliği ile yaparsınız.
Biçimlendirme örneği için, Sanatsal Stil seçeneklerinin listesine bakın . İdeal olarak, kurallar bir programın kodu yeniden yazabileceği kadar açık ve eksiksiz olmalıdır (yine de bir kod yazmanız olası değildir;)
Adlandırma kuralı için, sınıf / türleri değişkenlerden / niteliklerden kolayca ayırt etmeye çalışacağım.
Ayrıca bu kategorideki gibi "önlemler" sınıflandırmak:
- kısadan uzuna yöntemi tercih et: genellikle ne kadar uzun olduğuna karar vermek zor
- girinti azaltmak için erken dönüş / devam / mola tercih
Misc?
Ve son bir kelime olarak, Kodlama Standartlarında tartışılan nadiren, belki de her uygulamaya özel olduğu için tek bir madde vardır: kod organizasyonu. Mimari sorun belki de en çarpıcı olanıdır, ilk tasarıma dikkat çeker ve bundan yıllar sonra başınız belaya girer. Temel dosya işleme için belki bir bölüm eklemelisiniz: kamu / özel başlıklar, bağımlılık yönetimi, endişelerin ayrılması, diğer sistemlerle veya kütüphanelerle etkileşime girme ...
Ancak bunlar gerçekte uygulanmadıklarında ve uygulanmadıklarında hiçbir şey değildir .
Herhangi bir ihlal kod incelemeleri sırasında gündeme getirilmeli ve bir ihlal üstündeyse, kod incelemesi tamam değildir:
- kuralı eşleştirmek için kodu düzelt
- kuralı düzeltip kodun artık öne çıkmamasını sağlayın
Açıkçası, bir kuralı değiştirmek, liderlerden “öne geçmek” anlamına gelir.