Yeni başlayanlar için okunacak en iyi C ++ kaynak kodu nedir? [kapalı]


25

C ++ kodlama tekniğimi, c ++ kaynak kodunu okuyarak geliştirmeye çalışıyorum. Hangi açık kaynaklı projeyi önerirsiniz? Boost C ++ Libraries kodu iyi bir kod mu?


11
Neden oylar kapatılsın? Soru açık ve somut.
Nemanja Trifunovic

STL uygulamaları
12:16

12
@dukeofgaming: "ironic" etiketini unuttun.
Doktor Brown,

1
Sanırım destek kaynak kodu yeni başlayanlar için iyi bir fikir olmayacak. Muhtemelen çalışmalarını ve nedenlerini henüz anlamadığınız şablonlarda ve SFNINAE tekniklerinde boğulacaksınız.
Chris, Monica

7
Yakın oylar, bu sorunun somut olsa da yapıcı olmadığı içindir. Bu, sadece kimsenin cevabının "cevap" olamayacağı, herkesin projesinin bir listesi ile sonuçlanacak. Bunun arkasında daha fazlası için SSS bölümüne göz atın .
Walter,

Yanıtlar:


27

Aşağıdaki gibi Google’ın açık kaynaklı C ++ kodlarından herhangi birini öneririm:

Google kodunu kullanmanın avantajları:

  • Yüksek standartlarda yazılmıştır ve hakem tarafından gözden geçirilmiştir (bazı açık kaynak kodların aksine).
  • İyi bir geliştirici belgesine sahiptir (bu da almayı ve anlamayı kolaylaştırır).
  • Bazı orta derecede gelişmiş C ++ teknikleri kullanır (ve bu nedenle öğrenme için iyidir).
  • Boost'tan daha kolay anlaşılması daha kolaydır, çünkü gelişmiş şablon metaprogramlama ve önişlemci metaprogramlamasına çok fazla güvenmiyor ve sayısız derleyici uyumluluk hackleri ve özel vakalarla kıyaslanmıyor.

Google C ++ Stil Kılavuzu Google'ın C ++ kod kullanımları genellikle iyidir, ama (örneğin kendi adlandırma kurallarına veya izin vermeme istisnalar bazı gibi) bazı oldukça sıradışı bit zorunda ++ kod onların C gelenler bakımdan farklı olacaktır unutmayın yaptığı alanda ne göreceksiniz.


9

Bir kod tabanı okumanızı tavsiye etmem. C ++ SSS okumanızı tavsiye ederim . Ayrıca site ile birlikte gelen mükemmel bir kitap var. C ++ kodlama becerilerinizi geliştirmenin en iyi yolu.


13
-1: Çok şiddetle katılmıyorum. Diğer insanların kodlarını okumak, birinin kodlama becerilerini geliştirmenin çok önemli bir parçasıdır. Yine de bu koddaki hataları düzeltmek daha iyi.
Jan Hudec

6
@Jan Benden anlaşmayı tamamla. Bununla birlikte, çoğu C ++ kaynak kodu, kötü teknikleri öğretecek her türlü kötü modeli emer ve kullanır. Giriş niteliğinde bir okuma olarak hizmet edebilecek iyi bir ÖSS projesini biliyor musunuz?
Konrad Rudolph

Buna atıfta bulunuyordum: amazon.com/FAQs-2nd-Marshall-P-Cline/dp/0201309831/… ama şu anda başka kitapların da olduğunu görebiliyorum.
Onorio Catenacci

6

Mevcut temiz C ++ kodunu okumak, dili öğrenmek için harika bir yoldur.

Örneğin OpenFST araç setindeki kod çok temiz. Okunuyor ve denize düşmeden biraz gelişmiş özellikler kullanıyor.

Öte yandan Boost'un okunması biraz zor olabilir, çünkü kısmen anlaşılması zor C ++ hileleri kullanıyorlar ve farklı kodlayıcı sürümleri için kodu farklı geçici çözümlerle sık sık kullanıyorlar.


6

Scott Meyers tarafından " Etkili C ++ " yazmasını ve küçük oyuncak programlarında önerilerini kullanmanızı öneririm .


2
Küçük oyuncak programlarında hiçbir şey öğrenemezsin. Gerçek problemleri çözen programlar yazmanız gerekir. Büyük olmaları gerekmez, büyük programları tek başına yazmayı başaramazsınız, ancak yalnızca oyuncak olmamalıdır.
Jan Hudec

@JanHudec: Tanımladığınız şey, oyuncak programları dediğim şey : tek bir sorunu çözen bir kod parçası. Dolayısıyla, örneğin bir Runge-Kutta algoritması bir "oyuncak programı" olur, oysa tam bir N-vücut simülasyonu olmazdı.
Sardathrion - Monica

2
Her ikisi de "oyuncak programları" dır. Çünkü sayısal simülasyonlar yapmadığınız ve programcıların çoğunun yapmadığı sürece problemler bir problemin örnekleridir. Asıl sorun, sizin veya tanıdığınız birinin gerçekten kullanacağı bir şeydir. Muhtemelen GUI ya da en azından oldukça karmaşık komut satırı ayrıştırma ve dosyaları yönetme ya da ağa bağlanma ve varolan bazı kütüphaneleri kullanma ve önemsiz olmayan algoritmalara sahip olmayacak, çünkü% 99 programları yok.
Jan Hudec

1
@ JanHudec, bir kişinin önce küçük, kısıtlı problemlerle çalışarak hiçbir şey öğrenemediğini mi söylüyorsunuz? Programcılar en azından bazı temel ilkeleri ve bazı temel dil deyimlerini öğrenmeden doğrudan büyük ve karmaşık sorunlara atlarlarsa, işte bu "Büyük Çamur Topu" uygulamalarıyla sonuçlanır.
Onorio Catenacci

3
Bunun soruyu yanıtlayıp yanıtlamadığından emin değilim, ancak her C ++ programcısı bu kitabı (ve devam yollarını) okumalıdır.
Robotu

2

Yıllardır var olan ve büyük olan bir şey okumayı deneyin. Kodu anlamaya ve içinde bir şeyler yapmaya başlamak birkaç ay alacak.

Firefox, Thunderbird, OpenOffice.org, LibreOffice akla geliyor. Daha pek çok benzer olanlar da olmalı. Bu projeler birçok işletim sistemi ve donanım platformunda çalışır. Ayrıca okunabilirlik konusunda puan almaları gerekir. Bunlar aradığınız teknikleri size verebilir.


0

Kodu okumaktan daha iyisi, bu kodla hataları düzeltmek ve burada küçük geliştirmeler eklemek şeklinde çalışmak olacaktır. Tercihen kullandığınız bir programı seçin, e-posta listesine kaydolun, hata izleyicilerini araştırmaya başlayın ve bazı hataları teşhis etmeye çalışın. Makul bir şey için çözüm olup olmadığını veya takılıp kaldığınızı öğrenmek için posta listesinde sorun. Bu, kodu okurken size belirli hedefler verecektir, sizi gerçekten anlamaya zorlar ve herhangi bir işte çoğu zaman ne yapacağınızdır.

Belki bazı KDE uygulamalarına bakabilirsiniz. Çoğu C ++ ile yazılmıştır ve ilk önce daha küçük bir taneyle başlayabilirsiniz.


-3

Evet, Boost C ++ Kütüphanelerinin kodu, Gezegendeki en iyilerinden biri değilse bile, öğrenmek için harika bir kaynaktır. Ancak, bir acemi için, Boost kodundan öğrenmek, öğrenme eğrisini çok dik hale getirebilir. Eğer gerçekten Boost okumayı denemek istiyorsanız, Boost.Array gibi bazı küçük ve basit kütüphanelerle başlayın .


2
Bence kayak yapmayı öğrenmek için iyi bir yol önermek gibi bir şey olacak.
Robotu

@StevenBurnap lütfen cevabımı bir kez daha okuyun ve yaptığım saçma öneriyi işaret edin. Şunu bırak, sen ve yeni başlayanlar tarafından okunmaya değer daha kapsamlı bir kütüphaneye işaret et. Yeni başlayanlar için en iyi örneklerin yeni başlayanlar için bir kitaptan geldiği sonucuna varacaksınız.
mloskot

-3

C ++ PDF dosyasını okumayı deneyin. Ücretsiz, ve başka bir programlama deneyimim olmamasına rağmen C ++ 'ı öğrendim ve yalnızca 14 yaşındayım. Amazing.


3
Bu projelerle ilgili bazı kaynaklara link ekleyebilir misiniz?
Giorgio

3
Ne demek C ++ PDF?
Martijn Pieters,
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.