Prefacio
Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com
Cuando escribimos la primera edición de Construyendo Arquitecturas Evolutivas en 2017, la idea de una arquitectura de software evolutiva era todavía algo radical. Durante una de sus primeras presentaciones sobre el tema, Rebecca fue abordada después por alguien que la acusó de ser profesionalmente irresponsable por sugerir que la arquitectura de software puede evolucionar con el tiempo; después de todo, la arquitectura es lo que nunca cambia.
Sin embargo, como nos enseña la realidad, los sistemas deben evolucionar para satisfacer las nuevas demandas de sus usuarios y reflejar los cambios en elecosistema de desarrollo de software, en constante evolución.
Cuando se publicó la primera edición, existían pocas herramientas para aprovechar las técnicas que describimos. Afortunadamente, el mundo del desarrollo de software sigue evolucionando, e incluye muchas más herramientas para facilitar la construcción de arquitecturas evolutivas.
La estructura de este libro
Hemos cambiado la estructura de la primera edición para delimitar más claramente los dos temas principales: las prácticas de ingeniería para hacer evolucionar los sistemas de software y los enfoques estructurales que lo facilitan.
En la Parte I, definimos los distintos mecanismos y prácticas de ingeniería que los equipos pueden utilizar para poner en práctica los objetivos de la arquitectura evolutiva, incluyendo técnicas, herramientas, categorías y otra información que los lectores necesitan para comprender este tema.
La arquitectura del software también implica un diseño estructural, y algunas decisiones de diseño facilitan la evolución (y la gobernanza). Trataremos esto en la Parte II, que también incluye la cobertura de los estilos de arquitectura, así como los principios de diseño en torno al acoplamiento, la reutilización y otras consideraciones estructurales pertinentes.
Prácticamente nada en la arquitectura de software existe de forma aislada; muchos principios y prácticas de la arquitectura evolutiva implican el entrelazamiento holístico de muchas partes del proceso de desarrollo de software, que tratamos en la Parte III.
Casos prácticos y PenúltimoWidgets
En este libro destacamos varios casos prácticos. Los cuatro autores éramos (y algunos siguen siendo) consultores mientras trabajábamos en el material de este libro, y utilizamos nuestra experiencia del mundo real para derivar muchos de los casos prácticos que aparecen aquí. Aunque no podemos divulgar los detalles de clientes concretos, queríamos ofrecer algunos ejemplos relevantes para que el tema fuera menos abstracto. Así, adoptamos la idea de una empresa sustituta, PenultimateWidgets, como "anfitriona" de todos nuestros casos prácticos.
En la segunda edición, también hemos solicitado casos prácticos a nuestros colegas, que ponen aún más de relieve ejemplos de aplicación de las técnicas que tratamos. A lo largo del libro, cada caso práctico aparece como uno de PenultimateWidgets, pero cada uno procede de un proyecto real.
Convenciones utilizadas en este libro
En este libro se utilizan las siguientes convenciones tipográficas:
- Cursiva
-
Indica nuevos términos, URL, direcciones de correo electrónico, nombres de archivo y extensiones de archivo.
Constant width
-
Se utiliza en los listados de programas, así como dentro de los párrafos para referirse a elementos del programa como nombres de variables o funciones, bases de datos, tipos de datos, variables de entorno, sentencias y palabras clave.
Constant width bold
-
Muestra comandos u otros textos que deben ser tecleados literalmente por el usuario.
Constant width italic
-
Muestra el texto que debe sustituirse por valores proporcionados por el usuario o por valores determinados por el contexto.
Consejo
Este elemento significa un consejo o sugerencia.
Nota
Este elemento significa una nota general.
Advertencia
Este elemento indica una advertencia o precaución.
Utilizar ejemplos de código
El material complementario (ejemplos de código, ejercicios, etc.) se puede descargar en http://evolutionaryarchitecture.com.
Si tienes una pregunta técnica o un problema al utilizar los ejemplos de código, envía un correo electrónico a bookquestions@oreilly.com.
Este libro está aquí para ayudarte a hacer tu trabajo. En general, si se ofrece código de ejemplo con este libro, puedes utilizarlo en tus programas y documentación. No es necesario que te pongas en contacto con nosotros para pedirnos permiso, a menos que estés reproduciendo una parte importante del código. Por ejemplo, escribir un programa que utilice varios trozos de código de este libro no requiere permiso. Vender o distribuir ejemplos de los libros de O'Reilly sí requiere permiso. Responder a una pregunta citando este libro y el código de ejemplo no requiere permiso. Incorporar una cantidad significativa de código de ejemplo de este libro en la documentación de tu producto sí requiere permiso.
Agradecemos la atribución, pero en general no la exigimos. Una atribución suele incluir el título, el autor, la editorial y el ISBN. Por ejemplo: "Building Evolutionary Architectures", 2ª edición, de Neal Ford, Rebecca Parsons, Patrick Kua y Pramod Sadalage (O'Reilly). Copyright 2023 Neal Ford, Rebecca Parsons, Patrick Kua y Pramod Sadalage, 978-1-492-09754-9".
Si crees que el uso que haces de los ejemplos de código no se ajusta al uso legítimo o al permiso concedido anteriormente, no dudes en ponerte en contacto con nosotros en permissions@oreilly.com.
Aprendizaje en línea O'Reilly
Nota
Durante más de 40 años, O'Reilly Media ha proporcionado formación tecnológica y empresarial, conocimientos y perspectivas para ayudar a las empresas a alcanzar el éxito.
Nuestra red única de expertos e innovadores comparten sus conocimientos y experiencia a través de libros, artículos y nuestra plataforma de aprendizaje online. La plataforma de aprendizaje en línea de O'Reilly te ofrece acceso bajo demanda a cursos de formación en directo, rutas de aprendizaje en profundidad, entornos de codificación interactivos y una amplia colección de textos y vídeos de O'Reilly y de más de 200 editoriales. Para más información, visita https://oreilly.com.
Cómo contactar con nosotros
Dirige tus comentarios y preguntas sobre este libro a la editorial:
- O'Reilly Media, Inc.
- 1005 Gravenstein Highway Norte
- Sebastopol, CA 95472
- 800-998-9938 (en Estados Unidos o Canadá)
- 707-829-0515 (internacional o local)
- 707-829-0104 (fax)
Tenemos una página web para este libro, donde se enumeran erratas, ejemplos y cualquier información adicional. Puedes acceder a esta página en https://oreil.ly/evolutionary-arch-2e.
Envía un correo electrónico a bookquestions@oreilly.com para comentar o hacer preguntas técnicas sobre este libro.
Para obtener noticias e información sobre nuestros libros y cursos, visita https://oreilly.com.
Encuéntranos en LinkedIn: https://linkedin.com/company/oreilly-media.
Síguenos en Twitter: https://twitter.com/oreillymedia.
Míranos en YouTube: https://youtube.com/oreillymedia.
Información adicional
Los autores mantienen un sitio web complementario para este libro en http://evolutionaryarchitecture.com.
Agradecimientos
Los autores queremos dar las gracias de todo corazón a los colegas que nos han proporcionado los esquemas y las inspiraciones para los numerosos casos prácticos de funciones de fitness que presentamos. Sin ningún orden en particular, gracias a Carl Nygard, Alexandre Goedert, Santhoshkumar Palanisamy, Ravi Kumar Pasumarthy, Indhumathi V., Manoj B. Narayanan, Neeraj Singh, Sirisha K., Gireesh Chunchula, Madhu Dharwad, Venkat V., Abdul Jeelani, Senthil Kumar Murugesh, Matt Newman, Xiaojun Ren, Archana Khanal, Heiko Gerin, Slin Castro, Fernando Tamayo, Ana Rodrigo, Peter Gillard-Moss, Anika Weiss, Bijesh Vijayan, Nazneen Rupawalla, Kavita Mittal, Viswanath R., Dhivya Sadasivam, Rosi Teixeira, Gregorio Melo, Amanda Mattos, y muchos otros cuyos nombres no hemos podido recoger.
Neal quiere dar las gracias a todos los asistentes a las diversas conferencias en las que ha intervenido en los últimos años para ayudar a perfeccionar y revisar este material en persona y, sobre todo, en línea, debido a las inusuales circunstancias de una pandemia mundial. Da las gracias a todos los trabajadores de primera línea que han intervenido valientemente para ayudarnos a todos en estos momentos difíciles. También le gustaría dar las gracias a los revisores técnicos que hicieron todo lo posible por proporcionarnos comentarios y consejos excelentes. A Neal también le gustaría dar las gracias a sus gatos, Amadeus, Fauci y Linda Ruth, por proporcionarnos distracciones útiles que a menudo nos condujeron a reflexiones. Los gatos nunca se detienen en el pasado ni en el futuro; siempre están en el momento actual, así que aprovecha el tiempo que pasa con ellos para unirse a su presencia en el aquí y ahora. Gracias también a nuestro "club de cócteles" al aire libre del barrio, que empezó como una forma comunitaria de ver a los amigos y ha evolucionado hasta convertirse en el grupo de expertos del barrio. Y, por último, Neal quiere dar las gracias a su sufrida esposa, que soporta con una sonrisa sus viajes, y luego la abrupta ausencia de viajes, y otras indignidades profesionales.
Rebecca quiere dar las gracias a todos los colegas, asistentes y ponentes de conferencias y autores que, a lo largo de los años, han aportado ideas, herramientas y métodos y han formulado preguntas esclarecedoras sobre el campo de la arquitectura evolutiva. Se hace eco del agradecimiento de Neal a los revisores técnicos por su cuidadosa lectura y sus comentarios. Además, Rebecca quiere dar las gracias a sus coautores por todas las conversaciones y discusiones esclarecedoras mientras trabajaban juntos en este libro. En particular, agradece a Neal la gran discusión, o quizá debate, que mantuvieron hace varios años sobre la distinción entre arquitectura emergente y evolutiva. Estas ideas han avanzado mucho desde aquella primera conversación.
Patrick quiere dar las gracias a todos sus colegas y clientes de ThoughtWorks, que han impulsado la necesidad y proporcionado el banco de pruebas para articular las ideas en la construcción de la arquitectura evolutiva. También le gustaría hacerse eco del agradecimiento de Neal y Rebecca a los revisores técnicos, cuyos comentarios ayudaron a mejorar el libro enormemente. Por último, le gustaría dar las gracias a sus coautores por los últimos años y por la oportunidad de colaborar estrechamente en este tema, a pesar de los numerosos husos horarios y vuelos que hicieron que reunirse en persona fuera una rara ocasión.
Pramod quiere dar las gracias a todos sus colegas y clientes, que siempre le han proporcionado el espacio y el tiempo necesarios para explorar nuevas ideas e impulsar nuevas ideas y pensamientos. Le gustaría dar las gracias a sus coautores por sus reflexivos debates, que garantizan que se tengan en cuenta todos los aspectos de la arquitectura. También quiere dar las gracias a los revisores -Cassandra Shum, Henry Matchen, Luca Mezzalira, Phil Messenger, Vladik Khononov, Venkat Subramanium y Martin Fowler- por sus atentos comentarios, que ayudaron enormemente a los autores. Y, por último, le gustaría dar las gracias a sus hijas, Arula y Arhana, por la alegría que traen a su vida, y a su mujer, Rupali, por todo su amor y apoyo.
Get Construyendo Arquitecturas Evolutivas, 2ª Edición now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.