C ++ için stil kılavuzu [kapalı]


29

Şu an C ++ kodumda Google C ++ Stil Kılavuzunu kullanıyorum ve bundan çok memnun kaldım.

Son zamanlarda bu kılavuzun çok kötü olduğu söylendi: Google tarafından dahili olarak kullanılıyor (bunu biliyordum), eski ve bazı çok kötü uygulamaları destekliyor. Bu yüzden başka bir kodlama stili kullanmak istiyorum.

Hangi iyi ve oldukça kullanılan C ++ stil rehberleri var? Hem gcc hem de Visual Studio için kod yazıyorum ve C ++ 11 özelliklerinin çoğunu kullanıyorum.

Google C ++ Stil Kılavuzunda en çok sevdiğim şey, girintiler, boşluklar ve adlandırma kuralları (özellikle tüm sınıfları adlandırma, türler - typedef'ler, tür takma adları ve şablon takma adları - büyük harfle yazılan).

Herhangi bir cevabın öznel olduğunu biliyorum (umarım bu sitede iyidir) ve herhangi bir fikre minnettar olurum, ancak bugünlerde hangi kılavuzların kullanıldığını merak ediyorum.


1
İstediğiniz stili istediğiniz zaman kullanabilir ve ardından paylaşmanız gerektiğinde tercih ettiğiniz stile göre yeniden biçimlendirebilirsiniz. İşte bu astyle.sourceforge.net
Reactgular

7
Bu sorunun görüş temelli cevaplar için potansiyeli vardır. Bu nedenle onu kapatmak yerine, cevap verenleri bilinen kullanımlar, yetkililerin önerileri, karşılaştırmalı çalışmalar ve benzerleri gibi gerçeklere odaklanmaya teşvik ediyorum.
andy256

@ andy256 Kendim daha iyi söyleyemezdim.
bolov

7
Google’ın tarzının kötü olduğunu kim söyledi ve görüşleri neden sizin için önemli?
Reacgular

@MathewFoscarini burada çok derin olmasa da, oldukça yeni bir tartışma oldu: chat.stackoverflow.com/rooms/10/conversation/… (ama sonra derinlemesine gitmek FQA’dan geçmek gibidir) )
Cubbi

Yanıtlar:


15

Genel kullanım için bu kitapçığı kullanabilirsiniz.

http://www.amazon.com/Coding-Standards-Rules-Guidelines-Practices/dp/0321113586

Herb Sutter ve Andrei Alexandrescu'dan. C ++ 11'i hesaba katmaz, ancak yeni bir sürüm olacağını düşünüyorum.

Ancak, sekmeler yerine alan sayısı veya ne tür ezoterik gösterimi uygulamak istediğinizi yanıtlamayacaktır. Ancak bunlar en önemli şey değil, çoğu zaman sadece bazı tutarlılıklara sahip olmak anahtarıdır.



8

Google’ın C ++ tarzı kılavuzunun (ve bazılarının haklı olduğuna katılıyorum) yapılan eleştiriler, Google’ın adlandırma kuralları veya girinti stiliyle ilgili değil, diğer kural ve politikalarla ilgilidir. Girinti / biçimlendirme ve adlandırma kuralları hem zevk meselesidir, hem de sonsuz programcı dini savaşlar için verimli bir zemindir, ancak C ++ 'dan farklı olarak evrensel bir standart bulunmadığı durumlarda C ++' ta tek önemli kılavuz tutarlılıktır. Yeni bir proje için, hoşunuza giden bir adlandırma kuralı ve girinti stili seçin ve tutarlı bir şekilde kullanın. Mevcut bir proje için zaten kullanımda olan kongreye sadık kalın. C ++ Kodlama Standartlarında Kural 0 , "Küçük şeyleri terletme" dir. konvansiyonların ve girintileme stilinin isimlendirilmesinin sizin kadar önemli olmadığını savundukları yerde

Benim için büyük bir verimlilik yükselticisi, clang formatını kullanarak girintiyi / biçimlendirmeyi otomatikleştiriyor . Girinti ve biçimlendirme kurallarına karar verdikten sonra, özelleştirilmiş bir .clang biçiminde bir yapılandırma dosyası oluşturmanızı ve ardından bir daha asla endişelenmenize gerek kalmamasını tavsiye ederim :-)

Clang formatı bağımsız bir araçtır ve clang'ı derleyici olarak kullanmanızı gerektirmez. Resmi bir eklenti bile var kullanılabilir Visual Studio için.


6

@ User113896 daha önce yazdığı gibi, Bjarne Strostrup bize birçok stil rehberliği verdi. En iyi başarılarından biri JSF-C ++ Kodlama stil kitabı . Dikkat edin, normal c ++ için değil, daha çok gömülü kullanım için değil, işlerin açık ve işlevsel olması için nasıl yapılması gerektiğini gösterir. Elbette - Her şeyi hesaba katmak zorunda değilsiniz - bu bir rehber, bir sipariş kitabı değil :).


2

Bjarne Stroustrup'un Programlama ve Prensiplerini okumadıysanız, okumanızı şiddetle tavsiye ediyorum çünkü dilin yaratıcısından çok şey öğrenebilirsiniz. C ++ yazarından çok şey izledim ve okudum ve stil için bu fikre sahip olduğunu söyleyebilirim ve insanlara her zaman iyi ve güzel bir kod yazmasını söylerim ki ona göre hata ayıklamak ve okumak daha kolaydır. Şık ve güzel C ++ kodu yazmanın en iyi öğretmeni ve en iyi rehber olduğuna inanıyorum.

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.