Parte do valor do Open Source é fornecer um excelente exemplo de código para as pessoas que estão começando com uma nova plataforma ou idioma.
Qual é o melhor código-fonte aberto que você encontrou e por que gosta da sua escolha? Qualquer idioma serve, mas estou particularmente interessado nos melhores exemplos de Objective-C que você pode destacar.
Obviamente, essa é uma pergunta em aberto, então deixarei a pergunta em aberto por um tempo e verei que tipos de respostas obteremos.
Obrigado!
EDIT: Para "melhor", eu estava pensando em código que segue os idiomas no idioma ou plataforma fornecida, além de incluir as partes que tornam o código "profissional" - boa documentação, uma suíte de testes etc. Código que é conciso, mas não excessivamente inteligente é preferível a códigos muito concisos ou faladores.
Respostas:
Devo dizer que, tendo analisado partes do código-fonte aberto ao longo dos anos, fiquei imensamente desapontado com tudo isso.
A principal irritação para mim é que geralmente há muito poucos comentários, freqüentemente os únicos comentários são alguns avisos de direitos autorais longos e legalistas.
O kernel do linux é um exemplo em que os arquivos freqüentemente nem têm um comentário neles dizendo a que finalidade eles servem (por exemplo, o driver para XYZ pelo menos me diria que estou no lugar mais ou menos certo).
Eu vim da programação comercial e de defesa, onde os padrões de codificação exigem comentários inteligíveis e sensatos, não apenas para dizer o que uma unidade de código faz, mas através do código deve haver blocos de comentários que descrevam algoritmos, métodos, peculiaridades, hacks / coisas inteligentes , tudo para que quem vier depois possa olhar e descobrir rapidamente o que está sendo feito, em vez de percorrer meticulosamente o código real.
Talvez a moral seja: diga-me o que você está fazendo, não me faça descobrir.
Não encontrei nenhum código-fonte aberto que faça isso bem. No que diz respeito ao código aberto como um meio de aprender boas práticas de codificação, meu conselho é: Não.
fonte
Eu ouvi coisas muito boas sobre a base de código Sqlite .
Pelo pouco que eu olhei, parece muito limpo.
fonte
Donald Knuth escreveu dois programas para ajudá-lo a digitar melhor suas fórmulas matemáticas em seus livros do que sua editora.
Esses dois programas (em sua versão final) foram escritos usando a programação alfabetizada, que permitiu criar uma versão impressa e tipográfica do código-fonte e foram publicados como livros. Estes são simplesmente os melhores programas documentados que eu já li!
Eles não estão disponíveis para leitura on-line, mas a Amazon também permite que você "examine o interior" do livro Metafont em http://www.amazon.com/Computers-Typesetting-D-Metafont-Program/dp/0201134381/
Aviso: são coisas pesadas, e é por isso que cada livro tem 600 páginas.
fonte
O livro Beautiful Code tenta responder a essa pergunta com vários exemplos do que os contribuidores acham que são exemplos de código bonito de projetos de código aberto.
fonte
CodeIgniter
Alguns dos códigos-fonte mais limpos e documentados que eu já vi em um projeto de sistema operacional.
fonte
Eu já vi dois projetos muito bem estruturados:
Especialmente, o segundo é muito interessante com base em algumas coisas:
Também ouvi dizer que o Postgre está escrito de maneira limpa (em oposição ao MySql), mas eu mesmo não o li.
fonte
Alguns dizem que o código C para o Linux Kernel é bastante bom.
(Não que eu entenda a coisa! É possivelmente o melhor projeto C de código aberto escrito por aí.)
fonte
Eu achei o código fonte LLVM muito legível. Tenho certeza de que é o C ++ mais limpo que eu já vi. Se você não está familiarizado com isso, é basicamente um kit de ferramentas de construção do compilador.
É um projeto bastante grande, portanto, não espere entender rapidamente exatamente como tudo funciona. Mas deve ser bem fácil obter uma visão geral de alto nível.
fonte
Não é um projeto enorme, mas o SubSonic ORM foi extremamente fácil para eu hackear. Foi o primeiro projeto de código aberto real que eu consegui modificar exatamente como eu precisava. A maioria dos outros acabei olhando a fonte e batendo a cabeça na parede. Eu tinha parcialmente suporte ao PostgreSQL (baseando-o no provedor do SQL Server) dentro de algumas horas. É o projeto mais bem organizado que eu já vi ... embora isso não signifique que eu olhei para muitos projetos de código aberto.
fonte
Primeiro, um exemplo simples: o código para o sistema de manipulação de eventos zope.event. Eu tinha usado outros sistemas de eventos, que enviavam eventos para diferentes ouvintes de eventos. Quando vi o código do zope.event, estava na hora do facepalm, quando percebi como algumas coisas poderiam ser simples.
Está escrito em Python, e aqui está o código completo:
Para adicionar um assinante, faça o seguinte:
O melhor exemplo de KISS que eu já vi.
Em seguida, um exemplo mais complexo: a base de código marciana é muito agradável e fácil de ler, embora esteja usando alguns hacks inteligentes do Python. O mesmo vale para a maioria dos códigos do Grok, que são criados usando o Marciano.
fonte
Considere ler este livro A arquitetura de aplicativos de código aberto . Deverá fornecer uma crítica de por que e como as decisões de design foram tomadas nos projetos discutidos no livro.
Em vez de procurar o melhor, que pode iludi-lo por muito tempo, tente apreciar o design de alguns projetos, talvez além do escopo do livro. Isso pode ajudá-lo a desenvolver o sucesso desses projetos em vez de repetir seus erros (ou, como é chamado popularmente, reinventar a roda).
fonte