Por buen diseño me refiero a cosas como clases y arquitectura significativas, buen uso de patrones de diseño, buen uso de abstracción, buena organización de componentes, alta cohesión y bajo acoplamiento entre componentes.
Primero, un software, bueno o malo, no vive en la soledad: modela un escenario del mundo real que los humanos conciben como un problema y, por lo tanto, siempre se asocia estrechamente con algo llamado "dominio de aplicación". Entonces, cada vez que hable sobre software, primero conozca y estudie el dominio, ya que solo entonces puede lograr la discreción de lo bueno y lo malo.
git : no solo bueno, sino un diseño increíble. En esencia, no es un control de versiones, solo un sistema de archivos. Una fina capa de funcionalidad en la parte superior del núcleo lo convierte en un sistema de control de versiones. Conozca los aspectos internos de git, y su sentido del diseño de software se iluminará.
jQuery : no es una biblioteca muy bien documentada (internamente), pero es una fuente inspiradora que demuestra cómo el código JavaScript del lado del cliente puede hacer maravillas.
NodeJS : si está interesado en crear servidores, este proyecto tiene nuevas ideas y patrones que ofrecer.
v8 : muy buen código C ++, biblioteca fantástica para aprender / estudiar implementaciones de máquinas virtuales.
Proyectos NoSQL - Couch, Mongo, Redis, Cassandra - estos proyectos demuestran formas inteligentes de resolver problemas de persistencia. También abrazan la idea de la persistencia políglota.
Impulsar bibliotecas : buena dosis de C ++.
OpenStack : muy buenos proyectos sobre computación en la nube y virtualización.
The Apache Software Foundation : elija cualquiera de sus proyectos y estudíelo. La estructura modular de HTTPd es una gran fuente si desea ver cómo se unen los componentes. APR (tiempo de ejecución portátil apache): una lib realmente buena también.
mod_wsgi : uno de los mejores programas en C que he encontrado.
"buen uso de patrones de diseño" - NO es importante que el código corresponda a un patrón de diseño bien conocido - es más importante que resuelva el problema "inteligentemente" - que sea mantenible, reutilizable y legible. Si el código está repleto de una "forma" particular, solo para adherirse a un patrón de diseño, puede ser un código incorrecto.
"no menos de 100,000 líneas de código", ya que cuando el número de líneas se convirtió en una métrica de buena calidad, probar el "software bien diseñado / con arquitectura" no requiere que sea GRANDE.
Nuevamente, recuerde estudiar primero la naturaleza y los matices del dominio del problema y luego profundizar en la lectura del código.
ACTUALIZACIÓN: octubre de 2015
InfluxDB - https://influxdb.com/
Este proyecto Go está en desarrollo activo y aún no es muy complejo. Por lo tanto, puede comenzar a cavar en el código con relativa facilidad que algo como OpenStack.