it-swarm-tr.com

Kaynak kodun iyi örneklerini nerede okuyorsunuz?

Birkaç kişinin kodlama yeteneğinizi geliştirmenin en iyi yollarından birinin başkalarının kodunu okumak ve anlamak olduğunu söylediğini duydum. Benim sorum, nispeten yeni bir programcı olarak, kafamın çok üzerinde olmayan iyi kaynak kodu örneklerini nerede bulabilirim?

53
Jesse McCulloch

GitHub , Codeplex , Google Code veya BitBucket gibi açık sitelerdeki açık kaynak projelerine göz atabilirsiniz. Farklı karmaşıklık düzeylerine sahip projeler bulacaksınız, bu yüzden hem ilginizi çeken hem de başınızı çok fazla aşmayan bir şey bulabilmelisiniz.

Başka bir seçenek de Scott Hanselman'ın Haftalık Kaynak Kod blog gönderisidir.

Henüz kullanım ve incelemeden geçirilmemiş kodları okuma olasılığını azaltmak için yerleşik, aktif bir projeyle başlamanızı öneririm. İdeal olarak, ilginizi çeken ve kullanabileceğiniz bir şey bulun. Uygulamayı kullanmak kaynak kodunu anlamanıza yardımcı olacaktır. Açık kaynaklı bir proje seçmenin bir başka yararı da, kod üzerinden okumayı daha ilginç hale getirmeye yardımcı olacak bazı düzeltmelere veya özelliklere katkıda bulunabilmenizdir.

Başka birinin koduna bakmak korkutucu olabilir, bu nedenle main işleviyle (veya eşdeğeriyle) başlayın ve oradan yolunuza devam edin.

30
Adam Lear

Çok az kişi ilk denemelerinde iyi kaynak kodu yazar. İyi kaynak kodu genellikle bir dizi revizyonla üretilir. Böylece, birden çok kez hakem tarafından incelenmiş ve birden çok kez düzeltilmiş bir kaynak kodu bulabilirseniz, muhtemelen daha iyi bir konumtasınız demektir. Bazı açık kaynaklı projeler (ve bunların bazı bölümleri) özellikle iyi incelenmiştir. Zorunlu inceleme döngülerine sahip şirketlerden gelen kod (ör. Google, ancak başkaları da vardır) faturaya uygun olabilir.

Olduğu söyleniyor, emin değilim amacınız "büyük kod" bulmak olmalıdır. Farklı kod stillerine (iş arkadaşlarınız tarafından yazılanlar gibi) bakmak ve bununla ilgili iyi ve kötü noktaları tanımlamayı öğrenmek olmalıdır. Tanımladığınız daha kötü noktalar, kodunuzu daha iyi hale getirmek ve nasıl yapacağınızı bilmek için daha fazla çaba göstereceksiniz.

Özellikle, iyi bir kod duygusu elde etmek için çok iyi bir yaklaşımın, invokasyon zincirlerini takip ederek, karmaşık kodları izlemek için etkileşimli hata ayıklayıcıyı kullanmak olduğuna inanıyorum. Örneğin, şirketinizin ana dosyalarından birine gidin, bir kesme noktası koyun ve onlardan bir şeyler bulmaya başlayın.

Birkaç kez 100 hat fonksiyonuyla küreselleşmeye on seviye girintiye ve bağımlılığa sahip olursanız ve iyi ayrıştırılmış koddan esinlendiğiniz birkaç kez, kendi programlamanızı geliştirirsiniz.

10
Uri

Harika kodlar bulmak yerine, Genel Programlama Kitaplarına bakın.

örneğin. Kod Tamamlandı, Katı Kod Yazma, Tasarım Desenleri (Bu sitede başka bir soru ve cevap çevresinde çok sayıda başka kitap olduğundan eminim)

Bu kitaplar, iyi kod olarak kabul edilen felsefeyi anlatıyor. Okunabilirlik, performans, bakım kolaylığı, hata algılama vb.

Bu da yazarın neyi başarmaya çalıştığını anlamaya çalışmaktan daha iyi ve daha verimli kaynaklar sunuyor.

Not; İyi Yazılım tasarımı da sizin de aradığınız şey. Projenin yeterince büyük olması nedeniyle, sadece kodları gözlemlemenin farkına varmak zor olurdu.

4
Zekta Chan

Programlama dilinizle birlikte gelen kütüphanelerin kodunun, en iyi uygulamalar ve iyi kodlama tarzı olarak düşünülen şeyleri görmek için genellikle iyi bir başlangıç ​​olduğunu buldum.

Rağmen sıralama algoritmaları veya karmaşık kap sınıfları gibi yerlerle başlamak istemiyorum.

Kod yazma konusunda ilginç bilgiler için başka bir yer de Project Euler ( http://projecteuler.net/ ). Orada küçük bir dezavantaj: Başkalarının çözümlerini paylaştığı foruma erişmek için ilk önce sorunu çözmelisiniz (tüm deneyim seviyeleri için ilginç zorluklar). Ancak bir kez bittiğinde neredeyse tüm büyük programlama dilleri için örnekler bulacaksınız. Ve sorunu zaten çözdüğünüz için, diğer insanların kodlarını anlamanıza yardımcı olacaktır.Plus henüz bilmediğiniz, ancak ilginç bulabileceğiniz dillerin kodunu göreceksiniz.

3
thorsten müller

Gerçekten okumaktan keyif aldım Güzel Kod . Ayrıntılı açıklamaları olan kısa ama çok güzel kod örnekleri vardır.

... önde gelen bilgisayar bilimcileri, yüksek profilli projelere alışılmadık, özenle tasarlanmış çözümler bulduklarını ortaya koyan vaka çalışmaları sunuyor. Sorunları gözlerinden görmek için büyük kodlama ve tasarım uzmanlarının omzuna bakabileceksiniz.

... Yazarlar, projelerinin mimarisi, yapımında yapılan ödünleşmeler ve kuralları çiğnemenin önemli olduğu zamanlarda çalışırken yüksek sesle düşünüyorlar.

Bu kitap, Brian Kernighan, KarlFogel, Jon Bentley, Tim Bray, Elliotte Rusty Harold, Michael Feathers, Alberto Savoia, Charles Petzold, Douglas Crockford, Henry S. Warren, Jr., Ashish Gulhati, Lincoln Stein, Jim Kent'in katkıda bulunduğu 33 bölüm içeriyor , Jack Dongarra ve PiotrLuszczek, Adam Kolawa, Greg Kroah-Hartman, Diomidis Spinellis, AndrewKuchling, Travis E. Oliphant, Ronald Mak, Rogerio Atem de Carvalho ve Rafael Monnerat, Bryan Cantrill, Jeff Dean ve Sanjay Ghemawat, SimonPeyton Jones, Kent Dybvig, William Otte ve Douglas C. Schmidt, AndrewPatzer, Andreas Zeller, Yukihiro Matsumoto, Arun Mehta, TV Raman, Laura Wingerd ve Christopher Seiwald ve Brian Hayes ...

3
pyvi