Panduan gaya untuk C ++ [ditutup]

29

Saat ini saya menggunakan Panduan Gaya C ++ Google dalam kode C ++ saya dan saya cukup senang dengannya.

Baru-baru ini saya diberitahu bahwa panduan ini sangat buruk: ini digunakan secara internal oleh Google (saya tahu itu), sudah ketinggalan zaman, dan mempromosikan beberapa praktik yang sangat buruk. Jadi saya ingin menggunakan gaya pengkodean lain.

Panduan gaya C ++ apa yang bagus dan cukup digunakan? Saya menulis kode untuk gcc dan Visual Studio, dan saya menggunakan banyak fitur C ++ 11.

Yang paling saya sukai dari Google C ++ Style Guide adalah lekukan, spasi putih dan konvensi penamaan (khusus penamaan semua kelas, tipe - termasuk typedef, alias tipe dan alias templat - dengan huruf kapital pertama).

Saya tahu jawaban apa pun bersifat subyektif (saya harap ini tidak masalah di situs ini) dan saya akan menghargai pendapat apa pun, tetapi saya tertarik pada panduan mana yang digunakan saat ini.

bolov
sumber
1
Anda selalu dapat menggunakan gaya apa pun yang Anda suka, dan kemudian memformatnya menjadi gaya yang disukai ketika Anda harus membagikannya. Ini adalah formatter gaya yang mengotomatiskan astyle.sourceforge.net
Reactgular
7
Pertanyaan ini memang memiliki potensi untuk jawaban berdasarkan pendapat. Daripada menutupnya karena alasan ini, saya akan mendorong penjawab untuk fokus pada fakta, seperti kegunaan yang diketahui, rekomendasi oleh otoritas, studi perbandingan dan sejenisnya.
andy256
@ andy256 Tidak bisa mengatakannya sendiri dengan lebih baik.
bolov
7
Siapa yang bilang gaya Google Anda buruk, dan mengapa pendapat mereka penting bagi Anda?
Reactgular
@MathewFoscarini ada diskusi yang cukup baru di sini, meskipun itu tidak terlalu mendalam: chat.stackoverflow.com/rooms/10/conversation/… (tapi kemudian, melewatinya secara mendalam seperti melalui FQA )
Cubbi

Jawaban:

15

Anda dapat menggunakan pedoman dari buku ini untuk penggunaan umum:

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

dari Herb Sutter dan Andrei Alexandrescu. Itu tidak memperhitungkan C ++ 11, tapi saya pikir akan ada edisi baru.

Tetapi itu tidak akan menjawab tentang jumlah ruang alih-alih tab atau notasi esoterik seperti apa yang ingin Anda tegakkan. Tetapi ini bukan hal yang paling penting, sebagian besar waktu untuk memiliki konsistensi adalah kuncinya.

Nikko
sumber
22

The C ++ Pedoman Inti adalah seperangkat pedoman, aturan, dan praktik mencoba-dan-benar terbaik tentang coding di C ++, Anda dapat menemukannya di sini: https://github.com/isocpp/CppCoreGuidelines

Mereka ditulis oleh, antara lain, Bjarne Stroustrup dan Herb Sutter .

Alessandro Jacopson
sumber
1
Jelas lebih baik daripada solusi Nikko
whn
8

Kritik terhadap panduan gaya C ++ Google (dan saya setuju beberapa dibenarkan) bukan tentang konvensi penamaan Google atau gaya lekukan melainkan tentang beberapa aturan dan kebijakan lainnya. Indentasi / pemformatan dan konvensi penamaan keduanya merupakan masalah selera dan merupakan lahan subur bagi perang agama programmer yang tak ada habisnya tetapi dalam C ++ di mana tidak seperti mengatakan C # tidak ada standar universal satu-satunya pedoman yang sangat penting adalah konsistensi. Untuk proyek baru, pilih konvensi penamaan dan gaya lekukan yang Anda sukai dan gunakan secara konsisten. Untuk proyek yang sudah ada, tetap gunakan konvensi yang sudah digunakan. Aturan 0 dalam C ++ Standar Pengkodean adalah "Jangan memusingkan hal-hal kecil." di mana mereka berpendapat bahwa konvensi penamaan dan gaya lekukan tidak begitu penting selama Anda

Booster produktivitas besar bagi saya telah mengotomatiskan lekukan / format menggunakan format dentang . Setelah Anda menetapkan beberapa aturan lekukan dan format, saya sangat menyarankan untuk menyiapkan file konfigurasi .clang-format yang disesuaikan dan kemudian tidak perlu khawatir lagi :-)

Dentang-format adalah alat mandiri dan tidak mengharuskan Anda untuk menggunakan dentang sebagai kompiler. Bahkan ada plugin resmi yang tersedia untuk Visual Studio.

mattnewport
sumber
6

Seperti yang ditulis @ user113896 sebelumnya, Bjarne Strostrup memberi kami banyak panduan gaya. Salah satu prestasinya yang bagus adalah buku gaya Coding JSF-C ++ . Hati-hati, ini bukan untuk c ++ reguler, lebih untuk penggunaan tertanam, tetapi ini menunjukkan bagaimana hal-hal harus dilakukan agar menjadi jelas dan fungsional. Tentu saja - Anda tidak perlu memperhitungkan semuanya - ini adalah panduan, bukan buku pesanan :).

baderman
sumber
2

Jika Anda belum membaca Pemrograman dan Prinsip Bjarne Stroustrup, saya sangat menyarankan Anda untuk membacanya karena Anda bisa belajar banyak dari pembuat bahasa. Saya telah menonton dan membaca banyak dari penulis C ++ dan saya dapat mengatakan bahwa dia memiliki fiksasi untuk gaya ini dan selalu mengatakan kepada orang-orang untuk menulis kode yang bagus dan indah yang menurutnya lebih mudah untuk di-debug dan dibaca. Saya percaya bahwa dia adalah guru terbaik dan panduan terbaik untuk menulis kode C ++ yang penuh gaya dan indah.

pengguna113896
sumber