Di mana Anda pergi untuk membaca contoh kode sumber yang baik? [Tutup]

53

Saya telah mendengar beberapa orang mengatakan bahwa salah satu cara terbaik untuk meningkatkan kemampuan pengkodean Anda adalah dengan membaca kode orang lain dan memahaminya. Pertanyaan saya, sebagai programmer yang relatif baru, di mana saya pergi untuk menemukan contoh kode sumber yang baik yang tidak terlalu jauh di atas kepala saya?

Jesse McCulloch
sumber
Ini telah ditanyakan pada StackOverflow: stackoverflow.com/questions/3083525/…
nikie
3
Saya hanya melihat kembali kode lama saya.
Paul
Paul, itu tidak akan membantu OP kan? Jelas mereka tidak memiliki kode yang baik yang telah ditulis sebelumnya. sheesh.
Junky
2
@Junky semoga mereka memiliki selera humor :)
Konrad Morawski
ini adalah pertanyaan yang akan saya tanyakan tetapi saya beruntung bahwa saya menemukannya. saya pikir ini hanya masalah saya bahwa saya tidak tahu di mana menemukan kode
Dhananjay

Jawaban:

30

Anda dapat menelusuri proyek sumber terbuka di situs repositori seperti GitHub , Codeplex , Google Code , atau BitBucket . Anda akan menemukan proyek dengan tingkat kompleksitas yang berbeda, jadi Anda harus dapat menemukan sesuatu yang menarik minat Anda dan tidak terlalu berlebihan pada awalnya.

Pilihan lain adalah posting blog Kode Sumber Mingguan Scott Hanselman .

Saya sarankan memulai dengan proyek aktif yang sudah mapan untuk menurunkan peluang mulai membaca kode yang belum melalui penggunaan dan pengawasan. Idealnya, temukan sesuatu yang menarik minat Anda dan yang dapat Anda gunakan. Menggunakan aplikasi akan membantu Anda memahami kode sumber. Manfaat lain dari memilih proyek open source adalah Anda mungkin dapat berkontribusi beberapa perbaikan atau fitur, yang akan membantu membuat membaca kode lebih menarik.

Menatap sekelompok kode orang lain bisa jadi menakutkan, jadi mulailah dengan mainfungsi (atau yang setara) dan selesaikanlah dari sana.

Adam Lear
sumber
3
-1: seorang pemula tidak bisa membedakan antara kode baik dan buruk, jadi proyek 'menjelajah' tidak akan membantu. Anda semacam membahas hal ini dengan merekomendasikan proyek 'mapan', tetapi saya telah melihat kode mengerikan dalam proyek yang kita semua pernah dengar. Saya tidak punya jawaban yang lebih baik. Ini sebenarnya pertanyaan yang sulit, membutuhkan jawaban yang disesuaikan dengan tingkat keterampilan, minat, dan disaring melalui pengetahuan seorang mentor.
Cris
1
@ Chris Saya tidak setuju, tapi saya akan perhatikan bahwa ada banyak yang harus dipelajari dari membaca kode yang buruk juga. Bisa dibilang, membaca dan mengikuti kode buruk bahkan lebih sulit daripada menyelam ke dalam proyek yang terorganisir dengan baik. (Dan ini sebelum kita mencoba mencari tahu apa kode "baik" itu.))
Adam Lear
1
cukup benar. Tetapi bagi kebanyakan dari kita yang bukan jenius, pendidikan mandiri memiliki batasan. Sebagian besar pemula (di semua bidang) membutuhkan paparan "yang baik" untuk merasakan apa yang baik. Dan "Internet" adalah seruan dunia "Aku baik!", Yang tidak membantu.
Cris
10

Sangat sedikit orang menulis kode sumber yang baik pada percobaan pertama mereka. Kode sumber yang baik sering dihasilkan oleh serangkaian revisi. Jadi, jika Anda dapat menemukan kode sumber yang telah ditinjau oleh rekan beberapa kali, dan diperbaiki beberapa kali, Anda mungkin berada di lokasi yang lebih baik. Beberapa proyek sumber terbuka (dan sebagian dari mereka) ditinjau dengan sangat baik. Kode yang berasal dari perusahaan yang memiliki siklus peninjauan wajib (misalnya, Google tetapi ada banyak lainnya) mungkin sesuai dengan tagihan.

Yang sedang berkata, saya tidak yakin tujuan Anda harus menemukan "kode hebat". Seharusnya melihat gaya kode yang berbeda (seperti yang ditulis oleh rekan kerja Anda), dan belajar mengidentifikasi poin baik dan buruk tentang hal itu. Semakin banyak poin buruk yang Anda identifikasi, semakin Anda akan berusaha untuk membuat kode Anda lebih baik dan tahu caranya.

Secara khusus, saya percaya bahwa pendekatan yang sangat baik untuk mendapatkan rasa kode yang baik adalah dengan menggunakan debugger interaktif untuk melacak melalui kode yang kompleks, mengikuti rantai doa. Misalnya, buka salah satu file utama perusahaan Anda, letakkan breakpoint, dan mulailah mencari tahu dari mereka.

Setelah beberapa kali Anda mengalami disorientasi oleh fungsi 100-line dengan sepuluh tingkat lekukan dan ketergantungan pada global, dan beberapa kali Anda menelusuri kode terurai dengan baik, Anda akan meningkatkan pemrograman Anda sendiri.

Uri
sumber
4

Alih-alih menemukan kode-kode hebat, Cari Buku Pemrograman Umum.

mis. Kode Lengkap, Menulis kode padat, Pola Desain (Saya yakin ada banyak buku lain di sekitar dalam pertanyaan dan jawaban lain di situs ini)

Buku-buku itu menggambarkan filosofi apa yang dianggap sebagai kode yang baik. Keterbacaan, kinerja, pemeliharaan, deteksi bug, dll.

Yang melayani sumber daya yang lebih baik dan lebih efisien daripada mencoba mencari tahu apa yang penulis coba capai.

Ps Desain Software yang bagus adalah apa yang harus Anda perhatikan juga. Yang akan sulit dikenali hanya dari mengamati kode, mengingat proyek ini cukup besar.

Zekta Chan
sumber
1
Saya ingin menyebut "Kode Bersih" sebagai sumber yang bagus.
mhr
3

Saya menemukan bahwa kode perpustakaan yang datang dengan bahasa pemrograman pilihan Anda sering merupakan awal yang baik untuk melihat apa yang dianggap praktik terbaik dan gaya pengkodean yang baik.

Meskipun Anda tidak ingin memulai dengan tempat-tempat seperti algoritma pengurutan atau kelas wadah kompleks.

Tempat lain untuk wawasan menarik dalam penulisan kode adalah Project Euler ( http://projecteuler.net/ ). Kerugian ringan di sana: Anda harus menyelesaikan masalah terlebih dahulu untuk mendapatkan akses ke forum tempat orang lain memposting solusi mereka (tantangan menarik untuk semua tingkat pengalaman). Tetapi setelah selesai Anda akan menemukan contoh untuk hampir semua bahasa pemrograman utama. Dan karena Anda sudah menyelesaikan masalah, itu akan membantu Anda memahami kode orang lain. Selain itu, Anda bisa melihat kode bahasa yang belum Anda ketahui, tetapi mungkin menarik.

thorsten müller
sumber
3

Saya sangat menikmati membaca Kode Indah . Ini memiliki contoh kode pendek, tapi sangat bagus dengan penjelasan rinci.

... ilmuwan komputer terkemuka menawarkan studi kasus yang mengungkapkan bagaimana mereka menemukan solusi yang tidak biasa dan dirancang dengan cermat untuk proyek-proyek profil tinggi. Anda akan dapat melihat dari balik ahli koding dan desain utama untuk melihat masalah melalui mata mereka.

... Para penulis berpikir keras ketika mereka bekerja melalui arsitektur proyek mereka, pengorbanan yang dibuat dalam konstruksinya, dan ketika penting untuk melanggar aturan.

Buku ini berisi 33 bab yang disumbangkan oleh 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 , Jack Dongarra dan PiotrLuszczek, Adam Kolawa, Greg Kroah-Hartman, Diomidis Spinellis, AndrewKuchling, Travis E. Oliphant, Ronald Mak. Otte dan Douglas C. Schmidt, Andrew Patzer, Andreas Zeller, Yukihiro Matsumoto, Arun Mehta, Raman TV, Laura Wingerd dan Christopher Seiwald, dan Brian Hayes ...

pyvi
sumber