Parte del valor de Open Source es proporcionar un excelente código de ejemplo para las personas que comienzan con una nueva plataforma o lenguaje.
¿Cuál es el mejor código de código abierto que has encontrado y por qué te gusta tu elección? Cualquier lenguaje servirá, pero estoy particularmente interesado en los mejores ejemplos de Objective-C que pueda señalar.
Obviamente esta es una pregunta abierta, así que dejaré la pregunta abierta por un tiempo y veré qué tipo de respuestas obtenemos.
¡Gracias!
EDITAR: para "lo mejor", estaba pensando en un código que siga las expresiones idiomáticas en el lenguaje o plataforma dados, así como también incluye las partes que hacen que el código sea "profesional": buena documentación, un conjunto de pruebas, etc. Código conciso, pero no es demasiado inteligente se prefiere el código muy breve o hablador.
Respuestas:
Tengo que decir que después de haber examinado fragmentos de código fuente abierto a lo largo de los años, me ha decepcionado enormemente casi todo.
La principal irritación para mí es que generalmente hay muy pocos comentarios, con frecuencia los únicos comentarios son un aviso de copyright largo y legal.
El kernel de Linux es un ejemplo en el que los archivos con frecuencia ni siquiera tienen un comentario que indique qué propósito tienen (por ejemplo, el controlador para XYZ al menos me dice que estoy aproximadamente en el lugar correcto).
Vengo de la programación comercial y de defensa, donde los estándares de codificación requieren comentarios sensibles e inteligibles, no solo para decir lo que hace una unidad de código, sino que a lo largo del código debe haber bloques de comentarios que describan algoritmos, métodos, peculiaridades, hacks / cosas inteligentes , todo para que quienquiera que venga pueda mirar y descubrir RÁPIDAMENTE lo que se está haciendo en lugar de leer el código real minuciosamente.
Quizás la moraleja es: dime qué estás haciendo, no me hagas resolverlo.
No he encontrado NINGÚN código fuente abierto que haga esto bien. En cuanto a buscar el código abierto como un medio para aprender buenas prácticas de codificación, mi consejo es: no lo hagas.
fuente
He escuchado cosas muy buenas sobre la base de código Sqlite .
Por lo poco que lo había mirado, se ve muy limpio.
fuente
Donald Knuth escribió dos programas para ayudarlo a componer sus fórmulas matemáticas en sus libros mejor que su editor.
Estos dos programas (en su versión final) se escribieron usando la programación Literate que permitió crear una versión impresa y tipográfica del código fuente, y se publicaron como libros. ¡Estos son simplemente los mejores programas documentados que he leído!
No están disponibles para lectura en línea, pero Amazon también le permite "mirar dentro" del libro Metafont en http://www.amazon.com/Computers-Typesetting-D-Metafont-Program/dp/0201134381/
Advertencia: es algo pesado, por eso cada libro tiene 600 páginas.
fuente
El libro Beautiful Code intenta responder a esta pregunta con varias muestras de lo que los colaboradores piensan que son ejemplos de código hermoso de proyectos de código abierto.
fuente
CodeIgniter
Algunos de los códigos fuente más limpios y mejor documentados que he visto de un proyecto de sistema operativo.
fuente
He visto 2 proyectos que están muy bien estructurados:
Especialmente, el segundo es muy interesante basado en algunas cosas:
También escuché que Postgre está escrito limpiamente (a diferencia de MySql), pero no lo he leído yo mismo.
fuente
Algunos dicen que el código C para el kernel de Linux es bastante bueno.
(¡No es que entienda la cosa! Es posiblemente el mejor proyecto C de código abierto escrito).
fuente
He encontrado que el código fuente de LLVM es muy legible. Estoy bastante seguro de que es el C ++ más limpio que he visto. Si no está familiarizado con él, es básicamente un kit de herramientas de construcción de compiladores.
Sin embargo, es un proyecto bastante grande, así que no esperes ser capaz de comprender rápidamente exactamente cómo funciona todo. Pero debería ser bastante fácil obtener una visión general de alto nivel.
fuente
No es un gran proyecto, pero SubSonic ORM fue extremadamente fácil de piratear para mí. Fue el primer proyecto real de código abierto que pude modificar exactamente como lo necesitaba. La mayoría de los demás terminé mirando la fuente y golpeándome la cabeza contra la pared. Lo hice parcialmente compatible con PostgreSQL (basándolo en el proveedor de SQL Server) en unas pocas horas. Es el proyecto mejor organizado que he visto hasta ahora ... aunque no quiere decir que haya examinado muchos proyectos de código abierto.
fuente
Primero un ejemplo simple: El código para el sistema de manejo de eventos zope.event. Había usado otros sistemas de eventos, que distribuían eventos a diferentes oyentes de eventos. Cuando vi el código zope.event era tiempo de facepalm, cuando me di cuenta de lo simple que podían ser algunas cosas.
Está escrito en Python, y aquí está el código en su totalidad:
Para agregar un suscriptor, haga esto:
El mejor ejemplo de KISS que he visto.
Luego, un ejemplo más complejo: la base de código marciano es muy agradable y fácil de leer, a pesar de que está utilizando algunos trucos inteligentes de Python. Lo mismo ocurre con la mayoría del código de Grok, que está construido con Martian.
fuente
Considere leer este libro La arquitectura de las aplicaciones de código abierto . Debería darle una crítica de por qué y cómo se tomaron las decisiones de diseño en los proyectos que se discuten en el libro.
En lugar de buscar lo mejor, que puede eludirlo por mucho tiempo, intente apreciar el diseño de algunos proyectos, tal vez más allá del alcance del libro. Eso podría ayudarlo a construir sobre los éxitos de estos proyectos en lugar de repetir sus errores (o, como se llama popularmente, reinventar la rueda).
fuente