usados software práctico patrones mas los lista introducción enfoque ejemplos diseño arquitectura design-patterns oop open-source tdd solid-principles

design-patterns - software - patrones de diseño mas usados



Ejemplos de excelente diseño e implementación de software (8)

Espero que esto no sea un duplicado ...

¿Cuál es el sistema / framework / aplicación de software más sólidamente diseñado e implementado con el que te has cruzado?

Parece que TDD, principios SÓLIDOS, patrones de diseño OO, y cosas por el estilo se pueden teorizar fácilmente en podcasts y blogs usando ejemplos realmente simples, pero es difícil imaginar el desarrollo de sistemas grandes que cumplan con estos estándares, sin una explosión de código. . En mi compañía, hacer un TDD completo parece casi imposible con nuestras restricciones de tiempo.

Si alguien puede indicarme algún buen proyecto de código abierto, me gustaría profundizar y ver qué buen TDD / SOLID / etc. parece. Gracias.


¿El software Space Shuttle ?

Ellos escriben las cosas correctas

Pero cuánto trabajo hace el software no es lo que lo hace notable. Lo que lo hace notable es qué tan bien funciona el software. Este software nunca falla. Nunca necesita ser reiniciado. Este software no tiene errores. Es perfecto, tan perfecto como lo han logrado los seres humanos. Considere estas estadísticas: las últimas tres versiones del programa, cada una de 420,000 líneas, tenían un solo error cada una. Las últimas 11 versiones de este software tuvieron un total de 17 errores. Los programas comerciales de complejidad equivalente tendrían 5,000 errores.


¿Texas?

Knuth aún ofrece la recompensa por errores confirmados .

Por cierto: no estoy seguro de que Knuth se suscriba a ningún mecanismo de palabra de moda para hacer un desarrollo realmente sólido. No tengo idea de cómo lo hace. Tal vez solo atención a los detalles.


Apache httpd.

  • Limpiar
  • Sencillo
  • Funcional

También : Graphviz: un impresionante ejemplo de poder, consistencia y simplicidad.

El mejor código que vi fue el decoro; había sido trabajado en una cosa de verdadera elegancia y belleza. Pero lamentablemente debe permanecer en el anonimato.

Por cierto : cualquier interfaz enorme / API que podría simplificarse, no está sólidamente diseñada por definición. Y para muchas compañías, las grandes y feas interfaces solo se vuelven más grandes y feas .

Pablo.


Boost library


El .NET Framework.

  • Es genial cuando "salpicé" un espacio de nombres y sus miembros son exactamente lo que esperaría.
  • "Simplemente funciona".

Google Chrome


Firefox 2.0

  • UI simple
  • Funcionalidad robusta
  • Muy estable

Muchas de las otras publicaciones mencionan programas que no se han implementado con TDD y, por lo tanto, no dan respuesta a "Me gustaría profundizar y ver qué aspecto tiene TDD / SOLID / etc". Por ejemplo, estoy bastante seguro de que las fuentes de Apache HTTPD Server y Firefox nunca han visto TDD. Solo busqué un poco sus fuentes, y solo había un par de archivos pequeños en las carpetas de prueba, y el código de producción no parecía estar escrito con TDD ni tampoco con SOLID.

Por ejemplo, Fitnesse ha sido escrito usando TDD por el inventor de SOLID. Esa debería ser una buena referencia de cómo se ve ese código, especialmente las partes más nuevas del código (en su libro Código limpio , el tío Bob tiene algunos ejemplos de código incorrecto de Fitnesse, que luego limpia, por lo que no necesariamente todo el código de Fitnesse está limpio).

También incluiré mi propio proyecto, el servidor de aplicaciones Dimdwarf , que se ha escrito al 100% con TDD / BDD y tratando de escribir lo más limpio posible (siguiendo a SOLID, etc.). También hay algunas partes feas allí (principalmente en la programación de tareas y la recolección de basura), pero esas partes todavía están en funcionamiento y se limpiarán cuando se completen esas características.