Cómo mejorar en la arquitectura de una aplicación de software

Lo que debes hacer es mejorar en la abstracción. Retrasar las decisiones arquitectónicas el mayor tiempo posible. El famoso “Tío Bob”, en una charla en una conferencia de Ruby que cubre una variedad de mejores prácticas de ingeniería de software, con aplicaciones web específicamente en mente, utiliza una de sus aplicaciones de prueba como ejemplo. La idea era que parecía una conclusión inevitable que tendrían que integrar una base de datos en algún momento. Él y su equipo llegaron tan lejos como pudieron sin integrar una base de datos, codificando contra contratos (por ejemplo, interfaces en Java) en lugar de una base de datos real.

Parecía que era hora de finalmente conectar la base de datos, ya que necesitaban poner algunos datos reales en el sistema. Pero luego alguien les sugirió que podían burlarse de la base de datos con archivos. Así que pudieron hacer lo que tenían que hacer sin la base de datos, simplemente usando los archivos. Eventualmente, se les ocurrió que el almacenamiento basado en archivos era lo suficientemente bueno, y terminaron enviando la aplicación de prueba sin soporte para una base de datos. Más tarde, alguien los criticó por el soporte de MySQL y cedieron, pero la implementación en ese punto fue trivial.

Si diseña su arquitectura por completo antes de comenzar su proyecto, está en desventaja porque carece del beneficio de cualquiera de los conocimientos que obtiene al implementar su proyecto. Sin embargo, si implementa las cosas de una manera que retrase sus decisiones arquitectónicas el mayor tiempo posible, cuando tenga el mayor conocimiento posible antes de tomar cada decisión, su arquitectura se acercará mucho más a lo que hubiera deseado al finalizar tu proyecto.

Aquí está el video. Si tienes interés en Agile, el tío Bob es el que quieres escuchar:

Sigue haciéndolo y aprende cosas nuevas.

Si cada vez que crea una nueva aplicación comienza a comprender las limitaciones de cómo la creó y trabaja para abordarlas, pronto comenzará a comprender cómo construir mejores arquitecturas.
Nada ayuda más que la experiencia.

En cuanto a aprender cosas nuevas, eche un vistazo a algunas de las charlas sobre arquitectura de google, twitter, facebook, etc. Estos tipos son donde podría estar en 15 años y pueden mostrarle cómo es una buena arquitectura.

La buena arquitectura es lenguaje ciego y realmente se reduce a los algoritmos subyacentes y la estructura de datos utilizada.

Necesitas práctica y mucha. En particular, es mejor si su trabajo involucra programación y arquitectura.

Incluso para las tareas más simples, asigne a usted pensar en las opciones de solución y sopesar cada una. Es mejor hacer esto con un círculo de compañeros de aprendizaje y el entrenador ocasional.

Como no tienes antecedentes serios, puedes probar esto http://www.amazon.es/Object-orie

Hay libros nuevos, pero este lo probé yo mismo cuando era un tipo inexperto de programación, hace mucho, mucho tiempo. Creo que es muy bueno para empezar.