cuando algo no funciona según lo previsto (por ejemplo, no funcionó como lo planeamos por alguna razón), soluciono el problema de mi lado y luego le devuelvo la plantilla
Esa es la raíz de tus problemas. El flujo del diseño siempre debe ser de Designer to Developer
y nunca invertido. El diseñador debería haber realizado revisiones y cambios, y luego haberlo enviado a usted para su implementación en el sitio web. Siempre puede hacer arreglos rápidos usted mismo, pero trate de aceptar que esos arreglos rápidos son solo temporales. El diseñador necesita volver a sus diseños y encontrar la solución adecuada. Luego, te envía el cambio, y si resulta ser lo mismo que tu solución rápida, entonces genial, de lo contrario, actualizas desde sus diseños.
Me envía la plantilla completa (la exportación HTML desde Pinegrow)
No se vuelva adicto a recibir HTML con el que pueda trabajar. Es mejor si implementa la tecnología del sitio web (Bootstrap, CSS, jQuery, React, PHP, etc., etc., etc.) de la manera que la necesita. Luego reproduces sus diseños usando esas herramientas. Si el HTML que le da es un comienzo rápido, entonces excelente, pero más tarde a medida que el proyecto crezca, no será de mucha utilidad. Tendrá que hacer los cambios usted mismo porque solo usted comprende su motor de plantillas (es decir, vistas, plantillas, complementos, componentes, etc. de CakePHP, etc.)
Este proceso, como uno podría imaginar, es minuciosamente lento e ineficiente.
Siempre ha sido así. Los diseñadores no son programadores. Se toman su tiempo para descubrir qué funciona mejor para el usuario y, a veces, cometen errores. No entienden conceptos como componentes, marcos y demás. Como programador, tiene que hablar con su diseñador y compartir cómo implemento lo que diseña .
El diseñador está atrapado en el medio. Por un lado, deben satisfacer las necesidades del programador y, por otro lado, deben satisfacer las necesidades del usuario.
Entonces mi pregunta es, ¿cómo podemos hacer que este proceso sea más fácil?
Descubrí que sentarse físicamente al lado del diseñador y programar allí realmente ayuda con la comunicación. Si ustedes dos están trabajando de forma remota, entonces mantengan el tiempo de funcionamiento durante unos días. Realmente ayuda a acelerar las cosas.
He visto muchas cosas sobre eso, deberíamos usar React y RESTful y otras cosas, pero queremos usar CakePHP para ello.
CakePHP es uno de los mejores frameworks del planeta (divulgación completa, estoy en el equipo central de CakePHP).
Cake es un marco de desarrollo de conejo donde las características están diseñadas para construir sitios web rápidamente. Sé que suena como un argumento de venta, pero esto es lo que se clasifica como. Hay muchos otros marcos que se clasifican como conejo. Java sería un ejemplo de un marco que es más empresarial que el conejo. Si estuvieras usando ese idioma, habría hecho una recomendación para cambiar. Ya que estás usando CakePHP. Yo diría que deberías quedarte con eso.
CakePHP es un buen servidor de fondo si necesita API RESTful.
React / Angular / Vue son marcos front-end populares y de tendencia, pero no han existido por mucho tiempo. CakePHP por otro lado ha existido por más de 13 años. Mi punto no es una crítica. Es el hecho de que estas bibliotecas de JavaScript tienen una vida útil corta. En 5 años todos hablaremos de algo nuevo, pero sospecho que CakePHP seguirá existiendo.
Entonces digo. Usa React / Angular / Vue ahora mientras están calientes, pero no te comprometas con ellos. Algo nuevo y mejor llegará pronto. Creo que ahora vivimos en un mundo donde no puedes construir buenos sitios web sin ellos.
¿Podría alguna gente guiarme a algunos recursos útiles al respecto?
Las solicitudes de listas están fuera de tema aquí. Lo siento.
EDITAR :
Me perdí la parte sobre el seguimiento de los cambios de diseño.
Haga que su diseñador guarde su salida HTML en BitBucket (tienen repositorios privados gratuitos). Luego puede realizar un seguimiento y hacer comparaciones utilizando el sitio web de BitBucket. Cada vez que el diseñador realiza un cambio importante, agrega una nueva sucursal con un número de versión.
Debería ser relativamente fácil para él hacer esto, y esto le permitirá tener un lugar para comentar dichos cambios. Por ejemplo; él puede hacer una solicitud de extracción para actualizar el repositorio donde realice una revisión de los cambios antes de que se fusionen.