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:

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

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

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 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.