Prefacio
Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com
El mundo de JavaScript ha avanzado mucho desde que escribí la primera edición de Aprender patrones de diseño de JavaScript hace más de 10 años. Por aquel entonces, trabajaba en aplicaciones web a gran escala y descubrí que la falta de estructura y organización en el código JavaScript dificultaba el mantenimiento y la escalabilidad de esas aplicaciones.
Si avanzamos rápidamente hasta hoy, el panorama del desarrollo web ha cambiado radicalmente. JavaScript se ha convertido en uno de los lenguajes de programación más populares del mundo y se utiliza para todo, desde sencillos scripts hasta complejas aplicaciones web. El lenguaje JavaScript ha evolucionado para incluir módulos, promesas y async
/await
, lo que ha influido enormemente en la forma en que arquitecturamos las aplicaciones. La forma en que los desarrolladores escriben componentes, como con React, también ha influido significativamente en su forma de pensar sobre la mantenibilidad. Esto ha dado lugar a la necesidad de patrones modernos que tengan en cuenta estos nuevos cambios.
Con el auge de bibliotecas y marcos de trabajo modernos como React, Vue y Angular, los desarrolladores construyen ahora aplicaciones más complejas que nunca. Reconocí la necesidad de una versión actualizada de Aprendizaje de Patrones de Diseño de JavaScript para reflejar los cambios en JavaScript y en el desarrollo de aplicaciones web.
En esta segunda edición de Learning JavaScript Design Patterns, mi objetivo es ayudar a los desarrolladores a aplicar patrones de diseño modernos a su código JavaScript y a sus aplicaciones React. El libro cubre más de 20 patrones de diseño esenciales para construir aplicaciones mantenibles y escalables. El libro no trata sólo de patrones de diseño, sino también de patrones de renderizado y rendimiento, que son fundamentales para el éxito de las aplicaciones web modernas.
La primera edición de este libro se centraba en los patrones de diseño clásicos, como el patrón Módulo, el patrón Observador y el patrón Mediador. Estos patrones siguen siendo importantes y relevantes hoy en día, pero el mundo del desarrollo web ha evolucionado significativamente en la última década, y han surgido nuevos patrones. Esta nueva edición cubre estos nuevos patrones, como las promesas, async
/await
, y las variaciones más recientes del patrón Módulo. También cubrimos patrones arquitectónicos como MVC, MVP y MVVM, y discutimos dónde encajan los marcos modernos con estos patrones arquitectónicos.
Los desarrolladores de hoy en día están expuestos a muchos patrones de diseño específicos de bibliotecas o marcos. El maduro ecosistema de React y la utilización de nuevas primitivas JS proporcionan una excelente plataforma de lanzamiento para hablar de buenas prácticas y patrones en el contexto del marco o la biblioteca. Además de los patrones de diseño clásicos, este libro cubre los patrones modernos de React, como Hooks, Componentes de Orden Superior y Render Props. Estos patrones son específicos de React y esenciales para construir aplicaciones web modernas utilizando este popular framework.
Este libro no trata sólo de patrones, sino también de buenas prácticas. Cubrimos temas como la organización del código, el rendimiento y la renderización, que son cruciales para construir aplicaciones web de alta calidad. Aprenderás sobre importaciones dinámicas, división de código, renderizado del lado del servidor, hidratación y arquitectura de islas, todos ellos esenciales para crear aplicaciones web rápidas y con capacidad de respuesta.
Al final de este libro, tendrás un profundo conocimiento de los patrones de diseño y de cómo aplicarlos a tu código JavaScript y a tus aplicaciones React. También sabrás qué patrones son relevantes para la web moderna y cuáles no. Este libro no es sólo una referencia sobre patrones; también es una guía para construir aplicaciones web de alta calidad. Aprenderás cómo estructurar tu código para obtener la máxima mantenibilidad y escalabilidad, y cómo optimizar tu código para mejorar el rendimiento.
Estructura del Libro
Este libro está organizado en 15 capítulos, diseñados para guiarte a través de los patrones de diseño de JavaScript desde una perspectiva moderna, incorporando características actualizadas del lenguaje y patrones específicos de React. Cada capítulo se basa en el anterior, lo que te permite ampliar tus conocimientos de forma gradual y aplicarlos con eficacia:
-
Capítulo 1, "Introducción a los patrones de diseño": Conoce la historia de los patrones de diseño y su importancia en el mundo de la programación.
-
Capítulo 2, "Pruebas de "Patrones", Protopatronesy la Regla de Tres": Comprende el proceso de evaluación y perfeccionamiento de los patrones de diseño.
-
Capítulo 3, "Estructurar y escribir patrones": Aprende la anatomía de un patrón bien escrito y cómo crear uno.
-
Capítulo 4, "Antipatrones": Descubre qué son los antipatrones y cómo evitarlos en tu código.
-
Capítulo 5, "Sintaxis y características modernas de JavaScript": Explora las últimas características del lenguaje JavaScript y su impacto en los patrones de diseño.
-
Capítulo 6, "Categorías de patrones de diseño": Profundiza en las distintas categorías de patrones de diseño: creacionales, estructurales y de comportamiento.
-
Capítulo 7, "Patrones de diseño de JavaScript": Estudia más de 20 patrones de diseño clásicos en JavaScript y sus adaptaciones modernas.
-
Capítulo 8, "Patrones MV* de JavaScript": Aprende sobre patrones arquitectónicos como MVC, MVP y MVVM y su importancia en el desarrollo web moderno.
-
Capítulo 9, "Patrones de programación asíncrona": Comprende el poder de la programación asíncrona en JavaScript y varios patrones para manejarla.
-
Capítulo 10, "Patrones de diseño modular de JavaScript": Descubre patrones para organizar y modular tu código JavaScript.
-
Capítulo 11, "Patrones de espaciado de nombres": Aprende varias técnicas de espaciado de nombres en tu código JavaScript para evitar la contaminación del espacio de nombres global.
-
Capítulo 12, "Patrones de diseño de React.js": Explora los patrones específicos de React, incluidos los Componentes de Orden Superior, Render Props y Hooks.
-
Capítulo 13, "Patrones de renderizado": Comprende las distintas técnicas de renderizado, como el renderizado del lado del cliente, el renderizado del lado del servidor, la hidratación progresiva y la arquitectura de Islas.
-
Capítulo 14, "Estructura de aplicaciones para React.js": Aprende a estructurar tu aplicación React para una mejor organización, mantenimiento y escalabilidad.
-
Capítulo 15, "Conclusiones": Concluye el libro con conclusiones clave y reflexiones finales.
A lo largo del libro, se proporcionan ejemplos prácticos para ilustrar los patrones y conceptos tratados. Al final de tu viaje, tendrás una sólida comprensión de los patrones de diseño de JavaScript y estarás equipado para escribir código elegante, mantenible y escalable.
Tanto si eres un desarrollador web experimentado como si acabas de empezar, este libro te proporcionará los conocimientos y las herramientas que necesitas para crear aplicaciones web modernas, mantenibles y escalables. Espero que este libro sea un recurso valioso para ti mientras sigues desarrollando tus habilidades y construyendo aplicaciones web asombrosas.
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 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.
Utilizar ejemplos de código
El material complementario (ejemplos de código, ejercicios, etc.) se puede descargar en https://github.com/addyosmani/learning-jsdp.
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í requierepermiso.
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 "Learning JavaScript Design Patterns, 2ª ed., de Addy Osmani (O'Reilly). Copyright 2023 Adnan Osmani, 978-1-098-13987-2".
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)
Disponemos de 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/js_design_patterns_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
Agradecimientos
Me gustaría dar las gracias a los increíbles revisores de la segunda edición, entre ellos Stoyan Stefanov, Julian Setiawan, Viswesh Ravi Shrimali, Adam Scott y Lydia Hallie.
Entre los apasionados y talentosos revisores técnicos de la primera edición se encontraban Nicholas Zakas, Andrée Hansson, Luke Smith, Eric Ferraiuolo, Peter Michaux y Alex Sexton. Ellos -así como miembros de la comunidad en general- ayudaron a revisar y mejorar este libro, y los conocimientos y el entusiasmo que aportaron al proyecto fueron sencillamente asombrosos.
Un agradecimiento especial a Leena Sohoni-Kasture por sus aportaciones y comentarios a la edición de la segunda edición.
Por último, me gustaría dar las gracias a mi maravillosa esposa, Elle, por todo su apoyo mientras elaboraba esta publicación.
Get Aprender patrones de diseño de JavaScript, 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.