2010-03-12 19 views
31

C++, çeşitli stil türleri içerir: MFC, Boost, Google, vb. Bu stilleri incelemek ve projelerim için hangisinin en iyi olduğunu belirlemek istiyorum ancak resmi stil kitapçığından okumak istiyorum. . Herkesin kullandıkları resmi bir rehberi var mı?Resmi stil kılavuzlarına bağlantılar

İşte bulduğum iki tane var. Daha var bahis:

Not: Bu en iyi hangi tarzı hakkında bir tartışma DEĞİLDİR ... resmi stili için sadece bir çağrı insanlar halen kullandıkları yol gösterir. Lütfen hoşunuza gitmeyen diğer stil rehberlerine zarar vermekten kaçının.

Yan soru: Kaynak kodunu inceleyip belirli bir stil kılavuzuna uyup uymadığını anlayabilen iyi bir araç var mı?

+7

topluluk wiki? – Francesco

+1

Sadece stackoverflow'un kendisiyle nasıl çeliştiğini seviyorum. Bu "konu dışı" olarak kapalı ve C++ kitap parçacığı upvotes binlerce var: https://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list – JohnJohn

cevap

16

Değil Yönerge başına Kodlama, ama bu güçlü yararlı buluyorum:

1

Yan soru için: Kullanmakta olan stili analiz eden herhangi bir araç bilmiyorum, ancak belirli bir stil kılavuzuna yeniden kaynak oluşturan araçlar var. Akla gelen bir tanesi Artistic Style'dur.

9

"Resmi" stil kılavuzu diye bir şey yoktur - C++ standardı stil konusunda tamamen sessizdir. Konuyla ilgili bir kitap iki yüksek bilgili C++ adam tarafından Sutter & Alexandrescu tarafından C++ Coding Standards olduğunu.

4

C++, resmi bir biçime sahip değildir ve gerekmez. Pek çok kuruluş, bir tür kurumsal görünüm ve his sürdürmeye çalışmak için katkıda bulunanlarına stil rehberleri uygulamaktadır; Bunlardan bazıları iyi tavsiyenin snippet'lerini içerir, ancak çoğu, 1980'lerde tamamen farklı bir dil yazan birine iyi bir fikir gibi görünen garip süslemeler eklemenizi zorlar. Eğer waffle'ın arasında bulacaksınız

sadece gerçekten yararlı tavsiyem:

  • size böylece, (örneğin erişimcileri ve fabrikalar gibi) türlerini, nesneleri ve fonksiyon bazı tür ayırt etmek tutarlı bir yol tanımla' isimleri bakmadan (örneğin) Thing thing = GetThing(); yazmayı bileceğim.
  • Adları alt çizgilerle başlatmayın. Bu, bazı durumlarda yasaklanmıştır ve tam olarak ne zaman yapabileceğiniz konusunda endişelenmekten daha basit ve okunabilir değildir.
  • Birkaç yıl içinde kodu okumak ve sürdürmek zorunda olan zavallı adam (belki de siz) için bir fikir alın.
  • Bunu basit tutun.
  • Beynini kullan.
4

Ben de ++ c iyi kodlama için bazı ipuçları yazdım:

standartları, kod iş değerini artırmak için vardır kodlama hedefi: http://www.ivanism.com/Articles/CodingStandards.html

sonrası ile başlar. Bunu yapmanın en açık (ve en önemlisi) yolu, kodu sağlam ve düşük kusurlu hale getirmektir. Aynı derecede önemli, fakat daha ince hedefler arasında, kodlayıcı sürtünme ve sürekliliğin azaltılması yer alır. Bu nedenle, standartlar asgari düzeyde tutulmalıdır - gerçekte izlenecek kadar basit ve hatırlanması gereken önemli. Yeni kaynak dosyaları oluştururken

Bu standartlar kullanılmalıdır. Varolan bir dosyanın değiştirilmesi gerektiğinde, bu standart haline getirmek için uygun bir zamandır. Bununla birlikte, bir dosyayı yalnızca standart haline getirmek için düzenlemek iyi bir zaman değildir. Eğer kırılmazsa, düzeltmeyin ve her zaman "Çalışmaya devam et" seçeneğini unutmayın. Ben klasik "Din" noktalarında dokunmayın fark edeceksiniz

: Bir dosya içinde

tabs vs. spaces 
indentation style 
curly brace style 
etc... 

Tutarlılık önemlidir ve okunabilirliği artırır. Ancak kodlayıcıların kendilerini ifade etmelerine izin vermek de önemlidir. Dolayısıyla, bir dosyayı düzenlerseniz, ya bu dosyanın dinine uygun olur ya da tüm dosyayı yeni, tutarlı bir biçime dönüştürür. Dosyanın tamamını dönüştürürseniz, etkin bir şekilde sahipliğini kendiniz alırsınız, bu yüzden, gitme kişisi olmaya hazır olun veya olduğu gibi bırakın.

0

yan sorusuna gelince, ne gerekiyorsa, bir statik analiz aracı olduğunu. Pahalı ve büyük bir araç Klocwork. Birkaç mağazada kullandım ve stil sorunlarına karşı uyarılar yayınlamak için kurulabilir. Tek kullanıcılar için önermiyorum; kurumsal ortam için daha fazladır. Her ne kadar bireyler için soyulmuş olsalar da.

statik analiz araçları için Google'a unutmayın.

3

Diğer cevaplar anda doğruydu hiçbir resmi stil kılavuzu, olduğunu belirtmekte.

Ama 2015 yılında, Bjarne Stroustrup announced the C++ Core Guidelines, Standart C++ Vakfı tarafından Stroustrup bizzat yönettiği ve yayınlanmış yetkili çağdaş C için kurallar ++ kodu oluşturmak için bir açık kaynak projesi: Buna

alaka ise http://github.com/isocpp/CppCoreGuidelines

Soru, eklenmiş yorumlarla birlikte Temel Yönergeler de link to other guidelines. Sık sık önerilen Google C++ Stili Kılavuzu hakkında, aşağıdakileri söylerler:

C++ 03 ve (ayrıca) eski kod tabanlarına doğru dişli. Google uzmanları şu anda bu Kılavuz İlkeleri geliştirmeye yardımcı olmak için aktif olarak işbirliği yapıyorlar ve umarım çabaları birleştirmeyi umarak bunların önerebileceği modern bir ortak set olabilir.