Onde você lê bons exemplos de código fonte? [fechadas]

53

Ouvi algumas pessoas dizerem que uma das melhores maneiras de melhorar sua capacidade de codificação é ler o código de outras pessoas e entendê-lo. Minha pergunta, como programador relativamente novo, onde vou encontrar bons exemplos de código-fonte que não estão muito longe da minha cabeça?

Jesse McCulloch
fonte
Isso foi solicitado no StackOverflow: stackoverflow.com/questions/3083525/…
nikie
3
Apenas olho para o meu código antigo.
Paul
Paul, isso não vai ajudar o OP, é? Obviamente, eles não têm um bom código já escrito no passado. sheesh.
Jun12
2
@junky espero que eles têm algum senso de humor embora :)
Konrad Morawski
esta é a pergunta que eu ia perguntar, mas sua minha boa sorte que eu achei .i pensei que este é apenas o meu problema que eu não sei onde encontrar códigos
Dhananjay

Respostas:

30

Você pode procurar projetos de código aberto em sites de repositório como GitHub , Codeplex , Google Code ou BitBucket . Você encontrará projetos de diferentes níveis de complexidade; portanto, poderá encontrar algo que lhe interesse e que não exagere demais em primeiro lugar.

Outra opção são as postagens do blog de código fonte semanal de Scott Hanselman .

Eu recomendo começar com um projeto ativo e estabelecido para diminuir as chances de começar a ler código que ainda não foi usado e examinado. Idealmente, encontre algo que lhe interesse e que você possa usar. O uso do aplicativo ajudará você a entender o código fonte. Outro benefício da escolha de um projeto de código aberto é que você poderá contribuir com algumas correções ou recursos, o que ajudará a tornar a leitura do código mais interessante.

Olhar fixamente para um monte de código de outra pessoa pode ser intimidador, então comece com a mainfunção (ou equivalente) e trabalhe a partir daí.

Adam Lear
fonte
3
-1: um iniciante não pode distinguir entre código bom e ruim, portanto, 'navegar' nos projetos não vai ajudar. Você meio que cobriu isso recomendando projetos 'estabelecidos', mas eu já vi um código terrível em projetos que todos ouvimos falar. Eu não tenho uma resposta melhor, no entanto. Na verdade, é uma pergunta difícil, necessitando de uma resposta adaptada aos níveis de habilidade, interesses e filtrada pelo conhecimento de um mentor.
29412 Cris
11
@ Cris Não discordo, mas observarei que há muito a ser aprendido com a leitura de códigos ruins. Indiscutivelmente, ler e seguir códigos incorretos é ainda mais difícil do que mergulhar em um projeto adequadamente organizado. (E isso é antes de começarmos a tentar descobrir o que é um código "bom". :))
Adam Lear
11
verdade o suficiente. Mas para a maioria de nós, não gênios, a auto-educação tem limites. A maioria dos iniciantes (em todos os campos) precisa de exposição ao "bom" para ter uma idéia do que é bom. E "Internet" é um clamor mundial de "Estou bem!", O que não ajuda.
29412 Cris
10

Muito poucas pessoas escrevem um bom código-fonte na primeira tentativa. Um bom código-fonte geralmente é produzido por uma série de revisões. Portanto, se você encontrar o código-fonte que foi revisado por pares várias vezes e corrigido várias vezes, provavelmente está em um local melhor. Alguns projetos de código aberto (e algumas partes deles) são particularmente bem revisados. Os códigos provenientes de empresas que possuem ciclos de revisão obrigatórios (por exemplo, Google, mas existem muitos outros) podem ser adequados.

Dito isto, não tenho certeza de que seu objetivo seja encontrar "ótimo código". Deve-se examinar diferentes estilos de código (como os escritos por seus colegas de trabalho) e aprender a identificar os pontos positivos e negativos sobre ele. Quanto mais pontos negativos você identificar, mais você se esforçará para melhorar seu código e saber como.

Em particular, acredito que uma abordagem muito boa para obter uma boa noção de código é usar o depurador interativo para rastrear códigos complexos, seguindo as cadeias de invocações. Por exemplo, acesse um dos arquivos principais da sua empresa, coloque um ponto de interrupção e comece a descobrir coisas a partir deles.

Depois de algumas vezes você se desorientar com as funções de 100 linhas, com dez níveis de indentações e dependências das globais, e algumas vezes que você percorre um código bem decomposto, aprimora sua própria programação.

Uri
fonte
4

Em vez de encontrar ótimos códigos, consulte os Livros de programação geral.

por exemplo, código completo, escrita de código sólido, padrões de design (tenho certeza de que existem muitos outros livros em outra pergunta e resposta neste site)

Esses livros estão descrevendo a filosofia que considerou um bom código. Legibilidade, desempenho, capacidade de manutenção, detecção de erros etc.

O que serve recursos ainda melhores e mais eficientes do que tentar descobrir o que o autor está tentando alcançar.

Ps Good design de software é o que você deve procurar também. O que seria difícil de reconhecer apenas pela observação de códigos, dado que o projeto é grande o suficiente.

Zekta Chan
fonte
11
Eu gostaria de mencionar o "Código Limpo" como um bom recurso.
21413 mhr
3

Descobri que o código das bibliotecas que acompanham sua linguagem de programação de escolha geralmente é um bom começo para ver o que se pensa serem práticas recomendadas e um bom estilo de codificação.

Embora você não queira começar com lugares como algoritmos de classificação ou classes de contêineres complexas.

Outro lugar para informações interessantes sobre como escrever código é o Project Euler ( http://projecteuler.net/ ). Pequena desvantagem: você deve resolver o problema primeiro para ter acesso ao fórum em que outras pessoas postaram suas soluções (desafios interessantes para todos os níveis de experiência). Mas uma vez feito, você encontrará exemplos para quase todas as principais linguagens de programação. E como você já resolveu o problema, ele ajudará você a entender o código de outras pessoas. Além disso, você verá o código de idiomas que ainda não conhece, mas que pode ser interessante.

thorsten müller
fonte
3

Eu realmente gostei de ler o Beautiful Code . Possui exemplos de código curtos, mas muito agradáveis, com explicações detalhadas.

... os principais cientistas da computação oferecem estudos de caso que revelam como encontraram soluções incomuns e cuidadosamente projetadas para projetos de alto nível. Você será capaz de olhar por cima dos ombros dos principais especialistas em codificação e design para ver os problemas através de seus olhos.

... Os autores pensam em voz alta enquanto trabalham na arquitetura de seu projeto, nas compensações feitas em sua construção e quando era importante quebrar as regras.

Este livro contém 33 capítulos contribuídos por Brian Kernighan, KarlFogel, Jon Bentley, Tim Bray, Elliotte Rusty Harold, Michael Feathers, Michael Feathers, Alberto Savoia, Charles Petzold, Douglas Crockford, Henry S. Warren, Jr., Ashish Gulhati, Lincoln Stein e Jim Kent. O objetivo deste estudo foi avaliar a eficácia do uso de antimicrobianos em pacientes com câncer de próstata em pacientes com câncer de próstata, em pacientes com câncer de próstata e em pacientes com câncer de próstata e em pacientes com câncer de próstata. Otte e Douglas C. Schmidt, AndrewPatzer, Andreas Zeller, Yukihiro Matsumoto, Arun Mehta, TV Raman, Laura Wingerd e Christopher Seiwald e Brian Hayes ...

pyvi
fonte