¿A dónde vas a leer buenos ejemplos de código fuente? [cerrado]

53

He escuchado a algunas personas decir que una de las mejores maneras de mejorar su capacidad de codificación es leer el código de otros y comprenderlo. Mi pregunta, como programador relativamente nuevo, ¿dónde voy a encontrar buenos ejemplos de código fuente que no estén demasiado lejos de mi cabeza?

Jesse McCulloch
fuente
Esto se ha pedido en StackOverflow: stackoverflow.com/questions/3083525/…
nikie
3
Solo miro mi antiguo código.
Paul
Paul, eso no va a ayudar al OP, ¿verdad? Obviamente no tienen un buen código ya escrito en el pasado. sheesh
junky
2
@junky espero que tengan un poco de sentido del humor :) :)
Konrad Morawski
esta es la pregunta que iba a hacer, pero es mi suerte que lo haya encontrado. Pensé que este es solo mi problema, no sé dónde encontrar los códigos
Dhananjay

Respuestas:

30

Puede explorar proyectos de código abierto en sitios de repositorio como GitHub , Codeplex , Google Code o BitBucket . Encontrarás proyectos de diferentes niveles de complejidad, por lo que deberías poder encontrar algo que te interese y que al principio no te pase por alto.

Otra opción son las publicaciones de blog del Código fuente semanal de Scott Hanselman .

Recomiendo comenzar con un proyecto establecido y activo para reducir las probabilidades de comenzar a leer el código que aún no ha sido utilizado y analizado. Idealmente, encuentre algo que le interese y que pueda usar. Usar la aplicación te ayudará a entender el código fuente. Otro beneficio de elegir un proyecto de código abierto es que puede contribuir con algunas correcciones o características, lo que ayudará a que la lectura del código sea más interesante.

Mirar fijamente el código de alguien más puede ser intimidante, así que comienza con la mainfunción (o equivalente) y avanza desde allí.

Adam Lear
fuente
3
-1: un principiante no puede distinguir entre el código bueno y el malo, por lo que 'explorar' los proyectos no va a ayudar. De alguna manera cubriste esto recomendando proyectos 'establecidos', pero he visto un código horrible en proyectos de los que todos hemos oído hablar. Sin embargo, no tengo una mejor respuesta. En realidad, es una pregunta difícil, que necesita una respuesta adaptada a los niveles de habilidad, intereses del individuo y filtrada a través del conocimiento de un mentor.
Cris
1
@Cris No estoy en desacuerdo, pero notaré que también hay mucho que aprender leyendo un código incorrecto. Podría decirse que leer y seguir un código incorrecto es aún más difícil que sumergirse en un proyecto debidamente organizado. (Y esto es antes de comenzar a tratar de descubrir qué es el código "bueno". :))
Adam Lear
1
Suficientemente cierto. Pero para la mayoría de nosotros no genios, la autoeducación tiene límites. La mayoría de los principiantes (en todos los campos) necesitan exposición a "lo bueno" para tener una idea de lo que es bueno. Y "Internet" es un clamor mundial de "¡Estoy bien!", Lo que no ayuda.
Cris
10

Muy pocas personas escriben un buen código fuente en su primer intento. Un buen código fuente a menudo es producido por una serie de revisiones. Por lo tanto, si puede encontrar el código fuente que ha sido revisado por pares varias veces y corregido varias veces, probablemente esté en una mejor ubicación. Algunos proyectos de código abierto (y algunas partes de ellos) están particularmente bien revisados. El código que proviene de compañías que tienen ciclos de revisión obligatorios (por ejemplo, Google pero hay muchos otros) puede ajustarse a la factura.

Dicho esto, no estoy seguro de que tu objetivo sea encontrar un "código excelente". Debe ser observar diferentes estilos de código (como los escritos por sus compañeros de trabajo) y aprender a identificar los puntos buenos y malos al respecto. Cuantos más puntos negativos identifique, más se esforzará por mejorar su código y saber cómo.

En particular, creo que un enfoque muy bueno para obtener un sentido de buen código es utilizar el depurador interactivo para rastrear códigos complejos, siguiendo las cadenas de invocaciones. Por ejemplo, vaya a uno de los archivos principales de su empresa, coloque un punto de interrupción y comience a descifrar cosas a partir de ellos.

Después de algunas veces que te desorientan las funciones de 100 líneas con diez niveles de muescas y dependencias de los globales, y unas pocas veces que navegas por un código bien descompuesto, mejorarás tu propia programación.

Uri
fuente
4

En lugar de encontrar buenos códigos, busque en los libros de programación general.

por ejemplo, código completo, escribir código sólido, patrones de diseño (estoy seguro de que hay muchos otros libros en otra pregunta y respuesta en este sitio)

Esos libros describen la filosofía que se considera un buen código. Legibilidad, rendimiento, mantenibilidad, detección de errores, etc.

Lo que sirve aún mejores recursos y más eficiente que tratar de averiguar lo que el autor intenta lograr.

Ps. El buen diseño de software es lo que usted también debe considerar. Lo cual sería difícil de reconocer únicamente por la observación de códigos, dado que el proyecto es lo suficientemente grande.

Zekta Chan
fuente
1
Me gustaría mencionar "Clean Code" como un buen recurso.
mhr
3

Descubrí que el código de las bibliotecas que vienen con el lenguaje de programación de su elección a menudo es un buen comienzo para ver lo que se considera mejores prácticas y un buen estilo de codificación.

Aunque no desea comenzar con lugares como algoritmos de clasificación o clases complejas de contenedores.

Otro lugar para obtener ideas interesantes al escribir código es Project Euler ( http://projecteuler.net/ ). Ligera desventaja allí: primero debe resolver el problema para obtener acceso al foro donde otros publicaron sus soluciones (desafíos interesantes para todos los niveles de experiencia). Pero una vez hecho esto, encontrará ejemplos para casi todos los principales lenguajes de programación. Y dado que ya ha resuelto el problema, le ayudará a comprender el código de otras personas. Además, puede ver el código de idiomas que aún no conoce, pero que puede encontrar interesantes.

Thorsten Müller
fuente
3

Realmente disfruté leyendo Beautiful Code . Tiene ejemplos de código cortos pero muy agradables con explicaciones detalladas.

... los principales científicos informáticos ofrecen estudios de casos que revelan cómo encontraron soluciones inusuales y cuidadosamente diseñadas para proyectos de alto perfil. Podrá mirar por encima del hombro de los principales expertos en codificación y diseño para ver los problemas a través de sus ojos.

... Los autores piensan en voz alta mientras trabajan a través de la arquitectura de su proyecto, las compensaciones hechas en su construcción y cuando era importante romper las reglas.

Este libro contiene 33 capítulos aportados por 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 y PiotrLuszczek, Adam Kolawa, Greg Kroah-Hartman, Diomidis Spinellis, AndrewKuchling, Travis E. Oliphant, Ronald Mak, Rogerio Atem de Carvalho y Rafael Monnerat, Bryan Cantrill, Jeff Dean y Sanjay Ghemawat, SimonPeyton Jones, Kent Dybvig Jones, Kent Dybvig Jones, Kent Otte y Douglas C. Schmidt, Andrew Patzer, Andreas Zeller, Yukihiro Matsumoto, Arun Mehta, TV Raman, Laura Wingerd y Christopher Seiwald, y Brian Hayes ...

pyvi
fuente