Apa kode sumber C ++ terbaik untuk dibaca untuk pemula? [Tutup]

25

Saya mencoba untuk meningkatkan teknik pengkodean c ++ saya dengan membaca kode sumber c ++. Proyek open source mana yang akan Anda rekomendasikan? Apakah kode Boost C ++ Libraries bagus?

kotak salju
sumber
11
Mengapa memilih dekat? Pertanyaannya jelas dan konkret.
Nemanja Trifunovic
Implementasi STL
dukeofgaming
12
@dukeofgaming: Anda lupa tag "ironis".
Doc Brown
1
Yah saya kira kode sumber boost tidak akan menjadi ide yang bagus untuk pemula. Anda mungkin akan tenggelam dalam templat dan teknik SFNINAE yang belum Anda mengerti cara kerjanya dan alasannya.
Chris berkata Reinstate Monica
7
Pilihan dekat adalah karena pertanyaan ini, meskipun konkret, tidak konstruktif. Ini hanya akan menghasilkan daftar proyek semua orang, di mana tidak ada jawaban yang bisa menjadi "jawabannya". Untuk informasi lebih lanjut di balik ini, lihat FAQ .
Walter

Jawaban:

27

Saya akan merekomendasikan kode C ++ open source apa pun Google, seperti berikut ini:

Keuntungan menggunakan kode Google:

  • Ini ditulis dengan standar tinggi dan ditinjau oleh rekan (tidak seperti beberapa kode sumber terbuka).
  • Ini memiliki dokumentasi pengembang yang baik (yang membuatnya lebih mudah untuk mengambil dan memahami).
  • Ini menggunakan beberapa teknik C ++ yang cukup maju (dan karenanya bagus untuk belajar).
  • Ini mungkin lebih mudah dipahami daripada Boost karena tidak terlalu bergantung pada metaprogramming template canggih dan metaprogramming preprocessor dan tidak terbebani dengan hacking kompatibilitas kompiler yang tak terhitung jumlahnya dan kasus khusus.

The Google C ++ Style Guide yang Google C ++ menggunakan kode umumnya baik, tetapi memiliki beberapa bit yang cukup tidak biasa (seperti beberapa pedoman penamaan mereka atau pengecualian pelarangan mereka), sehingga perlu diingat bahwa C mereka ++ kode akan berbeda pada mereka hal dari apa yang akan Anda lihat di lapangan.

Josh Kelley
sumber
9

Saya tidak akan merekomendasikan membaca basis kode. Saya akan merekomendasikan membaca C ++ Tanya Jawab . Ada juga buku yang sangat bagus yang sejalan dengan situs. Cara terbaik untuk meningkatkan keterampilan C ++ coding Anda.

Onorio Catenacci
sumber
13
-1: Saya sangat tidak setuju. Membaca kode orang lain adalah bagian yang sangat penting untuk meningkatkan keterampilan coding seseorang. Memperbaiki bug dalam kode itu bahkan lebih baik.
Jan Hudec
6
@ Jan Selesaikan perjanjian dari saya. Namun, sebagian besar kode sumber C ++ mengisap dan mempekerjakan semua jenis pola buruk yang akan mengajarkan teknik buruk. Apakah Anda tahu proyek OSS yang baik yang dapat berfungsi sebagai bacaan pengantar?
Konrad Rudolph
Saya merujuk pada yang ini: amazon.com/FAQs-2nd-Marshall-P-Cline/dp/0201309831/… tapi saya bisa melihat ada buku-buku lain juga sekarang.
Onorio Catenacci
6

Membaca kode C ++ bersih yang ada adalah cara yang bagus untuk mempelajari bahasa.

Kode dalam OpenFST toolkit sangat bersih, misalnya. Ini dapat dibaca dan menggunakan fitur yang sedikit canggih tanpa berlebihan.

Boost, di sisi lain, bisa agak sulit dibaca, sebagian karena mereka menggunakan trik C ++ yang sulit dimengerti dan karena mereka sering menaburkan kode dengan solusi yang berbeda untuk versi kompiler yang berbeda.

pengguna3287
sumber
6

Saya akan menyarankan membaca " C ++ Efektif " oleh Scott Meyers dan menggunakan saran yang dia miliki dalam program mainan kecil.

Sardathrion - Pasang kembali Monica
sumber
2
Anda tidak akan belajar apa pun di program mainan kecil. Anda perlu menulis program yang memecahkan masalah aktual. Mereka tidak harus besar, Anda tidak akan bisa menulis program besar sendirian, tetapi mereka tidak boleh hanya mainan.
Jan Hudec
@ JanHudec: Apa yang Anda gambarkan adalah apa yang saya sebut program mainan : sepotong kode yang memecahkan satu masalah. Jadi, misalnya algoritma Runge-Kutta akan menjadi "program mainan" sedangkan simulasi N-tubuh penuh tidak akan.
Sardathrion
2
Keduanya adalah "program mainan". Karena masalahnya adalah contoh masalah yang dibuat kecuali Anda melakukan simulasi numerik dan sebagian besar programmer tidak. Masalah aktual adalah sesuatu yang Anda atau seseorang yang Anda kenal akan benar-benar digunakan. Mungkin akan memiliki GUI atau setidaknya parsing baris perintah yang agak rumit dan memanipulasi file atau terhubung ke jaringan dan menggunakan beberapa perpustakaan yang ada dan tidak akan memiliki algoritma non-sepele, karena 99% program di luar sana tidak.
Jan Hudec
1
@ JanHudec, apakah Anda mengatakan bahwa seseorang tidak belajar apa-apa dengan bekerja dengan masalah kecil dan terkendala dulu? Jika pemrogram melompat langsung ke masalah besar dan rumit tanpa mempelajari setidaknya beberapa prinsip dasar dan beberapa idiom bahasa dasar, ini adalah bagaimana kita berakhir dengan aplikasi "Bola Besar Lumpur" yang besar ini.
Onorio Catenacci
3
Saya tidak yakin apakah ini menjawab pertanyaan, tetapi setiap programmer C ++ harus membaca buku itu (dan sekuel-sekuelnya).
Gort the Robot
2

Coba baca sesuatu yang sudah ada selama bertahun-tahun dan ukurannya besar. Butuh beberapa bulan waktu untuk mulai memahami kode dan mulai melakukan sesuatu di dalamnya.

Firefox, Thunderbird, OpenOffice.org, LibreOffice datang ke pikiran. Seharusnya ada lebih banyak lagi yang serupa. Proyek-proyek ini berjalan pada banyak sistem operasi dan platform perangkat keras. Juga, mereka harus menilai keterbacaan. Ini bisa Anda teknik yang Anda cari.

vpit3833
sumber
0

Bahkan lebih baik daripada membaca kode adalah bekerja dengan kode itu dalam bentuk memperbaiki bug dan menambahkan perbaikan kecil di sana-sini. Pilih beberapa program, lebih disukai yang sudah Anda gunakan, mendaftar ke milis, mulai menelusuri pelacak bug mereka dan mencoba mendiagnosis beberapa bug. Tanyakan pada milis apakah Anda menemukan solusi untuk sesuatu itu masuk akal atau ketika Anda buntu. Itu akan memberi Anda beberapa tujuan spesifik ketika membaca kode, memaksa Anda untuk benar-benar mengerti dan apa yang akan Anda lakukan sebagian besar waktu dalam pekerjaan apa pun.

Anda mungkin dapat melihat beberapa aplikasi KDE. Sebagian besar ditulis dalam C ++ dan Anda bisa mulai dengan yang lebih kecil terlebih dahulu.

Jan Hudec
sumber
-3

Ya, kode Boost C ++ Libraries adalah sumber yang bagus untuk dipelajari, jika bukan salah satu yang terbaik di Planet. Namun, bagi pemula, belajar dari Boost code dapat membuat kurva belajar sangat curam. Jika Anda benar-benar ingin mencoba membaca Boost, mulailah dengan beberapa perpustakaan kecil dan sederhana seperti Boost.Array .

mloskot
sumber
2
Saya pikir itu akan seperti menyarankan cara yang baik untuk belajar ski adalah membeli memukul lereng berlian ganda-hitam.
Gort the Robot
@StevenBurnap tolong, baca jawaban saya sekali lagi dan tunjukkan saran konyol yang saya buat. Berhenti b ***** iting, kan, dan tunjukkan perpustakaan komprehensif yang lebih baik layak dibaca oleh pemula. Anda akan sampai pada kesimpulan bahwa contoh terbaik yang cocok untuk pemula adalah dari buku untuk pemula.
mloskot
-3

Coba baca C ++ PDF. Ini gratis, dan saya belajar C ++ dari itu, meskipun saya tidak punya pengalaman pemrograman lain, dan saya hanya 14. Luar biasa.

Xi_Ensen
sumber
3
Bisakah Anda menambahkan tautan ke beberapa sumber yang terkait dengan proyek ini?
Giorgio
3
Apa yang dimaksud dengan C ++ PDF?
Martijn Pieters