He terminado de leer y poner un poco en práctica este libro sobre desarrollo de temas en Magento 2 y quería resumir los puntos fuertes/débiles del libro, así como dar mi opinión.
Nota aparte: realmente no sé el motivo, pero para Magento 2 me ocurre que cuando quiero profundizar y busco tutoriales largos o cursos o libros, todos cubren más o menos lo mismo y llegan más o menos hasta el mismo punto… por lo que al final me quedo más o menos con las mismas dudas. Intentaré resaltar lo que me ha gustado del libro y lo que no, teniendo en cuenta esto, ya que entiendo que le estará pasando a más gente. Inlcuso he visto en udemy un curso que te preparaba para la certificación backend de Magento 2 y era el mismo temario (al 90%) que otro curso de «development fundamentals»…
El libro en cuestión es este https://www.packtpub.com/web-development/magento-2-theme-design-second-edition.
Opinión General
En general me ha parecido que rasca la superficie. No llega a profundizar en lo más complejo o en lo que en la práctica te vas a encontrar en el desarrollo de temas para Magento 2. Es decir, es bastante teórico y cuando hay un tema peliagudo o no lo toca o lo toca por encima.
Por tanto para introducirse en el tema está bien. Pero para agilizar el desarrollo en themes de Magento 2 o para mejorar la forma de trabajar resolviendo los típicos detalles que te pueden hacer perder tiempo, no me parece que este libro sirva.
Sin embargo, ha sido uno de los pocos que me ha hecho entender conceptos básicos bien explicados y a tener una visión global de todos las partes que entran en juego y como se relacionan entre sí.
Puntos a destacar
- Te da una base para poder entender conceptos más complejos. Esta base es difícil de explicar en tutoriales de blogs o vídeos sueltos ya que igual requieren 3 o 4 capítulos de un libro y unos cuantos ejemplos.
- Complejidad ascendente correcta. Empieza por lo fácil y va escalando.
- Bien explicado. El libro se entiende bastante bien.
- Enlaces a la documentación oficial con ampliación al tema tratado. Me parece algo esencial, ya que permite ver de primera mano como lo explica Magento y además permite renovar una determinada cuestión para futuras actualizaciones de la plataforma.
- Empieza por el principio (no da por supuesto que sabes determinadas cosas)
- El código de ejemplo tiene pocos errores (y digo «poco» como algo bueno, porque normalmente te dan código con ejemplos pero siempre falla algo… en este caso ha sido muy poquito)
- Da una visión bastante global de todo lo que hay en el desarrollo de temas de Magento 2 y cómo se deberían hacer las cosas correctamente. Es decir, toca todos los temas front al menos a un nivel básico. No es un libro que hable en concreto de un tema, sino que sirve para «orquestarlo» todo y a partir de ahí entrar en materia de lo que nos interese más.
Lo que no me ha gustado
- No es lo que me esperaba. Es decir, esperaba que profundizara un poco más en el tema de crear un theme realmente. Llega a cambiar el logo, colores y poner dos widgets. Pero en ningún momento llegas a hacer un theme con ojos y cara propia.
- Se ven muchos temas relacionados, pero en ninguno se da un ejemplo práctico y real. Son ejemplos muy «preparados».
- Me esperaba una sección de «boilerplates», «starter kits» o algo similar. En su lugar se queda simplemente explicando los conceptos pero no te da una herramienta práctica para ponerte a trabajar, simplemente explica conceptos que a veces quedan inconexos.
¿Qué le falta?
Se queda un poco a caballo entre un libro muy básico y uno intermedio, por tanto no explica en profundidad las bases ni entra en profundidad en ejemplos más completos. Le falta primero definir si es un libro básico o si pretende profundizar un poquito.
Y como complemento, le falta un ejemplo de theme customizado más completo.
¿Lo recomendaría para aprender desarrollo de temas en Magento 2?
A pesar de lo dicho, lo recomiendo.
Me ha dado el ABC para poder entender mucho mejor el funcionamiento interno de muchas cosas.
Lo consideraría un paso inicial para el desarrollo de themes en Magento 2.
¿De qué trata cada capítulo?
- Cap1: Pequeña introducción de diferencias entre Magento 1 y 2 a nivel de frontend.
- Cap2: Conceptos básicos explicados (themes nativos en Magento 2, qué es un bloque, qué es un widget, qué es una página, estructura básica de la home, etc)
- Cap3: Estructura básica de un theme, funcionamiento de caches/modos/consola, abc de los layouts que existen, hacer un child theme cambiando el logo.
- Cap4: Introducción a LESS, cómo utiliza Magento 2 los componentes UI (y qué archivos utiliza para ello a nivel de LESS), estructura básica del UI de Magento 2
- Cap5: Ejemplo muy básico de un child theme (logo, colores, alguna plantilla phtml).
- Cap6: Usar grunt para agilizar
- Cap7: Ejemplos muy básicos de utilizar el componentes UI en back y en front. Pero tán básicos que se quedan prácticamente en un listado y dos ejemplos incompletos.
- Cap8: Quizás el capítulo más útil. Cómo manejar los layouts, qué tipos de layouts se utiliza y para qué sirven, extender/sobreescribir layouts, utilizar bloques en phtmls y layouts.
- Cap9: El segundo capítulo más útil. Ecosistema javascript para Magento 2 (RequireJs, UI, jQuery, Componentes UI…), utilizar componentes UI como lo hace Magento 2, como inicializa Magento 2 sus fragmentos de JS, utilizar jQuery Widgets.
- Cap10: Un ejemplo de módulo (que sin nociones básicas no se entiende nada) y que tampoco aclara mucho la parte de theme ni estilos. Es un copiar y pegar que no aclara mucho nada.
- Cap11: Recomendaciones básicas, estandarizaciones (PSR, estructura de directorios…)
- Cap12: básico sobre cómo empaquetar un theme y distribuirlo via composer