Ha pasado un tiempo desde que hice un desarrollo web sustancial y me gustaría aprovechar las últimas prácticas, pero estoy luchando por visualizar el flujo de trabajo para incorporar todo.
Esto es lo que estoy buscando usar:
- Marco de CakePHP
- jsmin (JavaScript Minify)
- SASS (Hojas de estilo sintacticamente impresionantes)
- Git
CakePHP:
Bastante autoexplicativo, hacer modificaciones y actualizar la fuente.
jsmin:
Cuando modifica una secuencia de comandos, ¿ejecuta manualmente jsmin para generar el nuevo código minificado, o sería mejor ejecutar un enlace previo a la confirmación que genera automáticamente salidas jsmin de archivos javascript que han cambiado? Suponga que no tengo conocimiento de la implementación de commit hooks.
HABLAR CON DESCARO A:
Realmente me gusta lo que SASS tiene para ofrecer, pero también sé que el código SASS no es compatible con los navegadores de manera predeterminada, por lo que, en algún momento, el código SASS debe transformarse a CSS normal. En qué punto del flujo de trabajo se hace esto.
Git
Estoy aterrorizado de admitirlo, pero la última vez que realicé un desarrollo web sustancial, no utilicé el control de fuente SCM (es decir, utilicé el control de fuente pero consistía en un registro de cambios muy detallado con copias de seguridad).
Desde entonces, tengo mucha experiencia en el uso de Git (así como mercurial y SVN) para el desarrollo de escritorio, pero me pregunto cómo implementarlo mejor para el desarrollo web).
¿Es una práctica común implementar un repositorio remoto en el servidor web para que pueda enviar los cambios directamente al servidor de producción, o existe alguna herramienta multiplataforma (windows / linux) que facilite cargar solo los archivos modificados al servidor de producción? . ¿Existen empresas de alojamiento web que faciliten la implementación de un repositorio remoto, necesito acceso SSH, etc.?
Sé cómo lograr esto en mi propio servidor de prueba con un repositorio remoto con una rama de seguimiento remoto separada, pero nunca antes lo había hecho en un servidor de alojamiento web de producción remoto, así que todavía no conozco las opciones.
Extra:
Estaba considerando implementar un marco de JavaScript donde los archivos de JavaScript separados utilizados en una página se compilan en un solo archivo para cada página en el servidor de producción para limitar la cantidad de descargas de archivos necesarias por página.
¿Ya existe algo como esto? ¿Ya existe un proyecto de código abierto en la naturaleza que implementa algo similar que podría usar y contribuir?
Teniendo en cuenta lo paranoicos que están los desarrolladores web sobre el rendimiento (y el hecho de que la cantidad de solicitudes de archivos en un sitio web es un gran éxito para el rendimiento), supongo que hay algún hacker mago en la red que ya ha abordado este problema.
fuente
jsmin
Si no tiene un montón de JS, puede configurar algo para minimizar cada vez que presione guardar. Si tiene muchos JS, hágalo parte de su proceso de implementación (consulte Git a continuación).
HABLAR CON DESCARO A
Use el Marco de Compass . Incluye SASS, además de un pequeño script que "vigila" su directorio SASS y compila los archivos en CSS (incluido CSS minificado, si lo desea) cada vez que guarda. Está construido con RoR en mente, pero puede usarlo fácilmente con cualquier marco web creando un archivo de configuración de Compass y ejecutando el comando "compass watch". Compass también incluye muchas otras herramientas útiles como Blueprint , mixins útiles y generación automática de sprites a través del complemento Lemonade (que debe integrarse en Compass en la próxima versión ).
Git
Dependiendo del tamaño / complejidad del sitio, considere seguir el Capistranomodelo de despliegue. No estoy seguro si puede usar Capistrano directamente con CakePHP, pero la esencia es esta: cada servidor de producción tiene una carpeta "actual" que contiene todo el código que se está ejecutando en producción en ese momento. Cada vez que desea implementar un nuevo código, ejecuta un script que es ssh en cada servidor de producción y hace que (a) copie el contenido de la carpeta "actual" en una carpeta de respaldo (con el nombre de la versión / marca de tiempo), ( b) verifique el último código de Git en la carpeta "actual" y (c) comience a publicar este nuevo código desde la carpeta "actual". De esta manera, puede volver a cualquier versión anterior si es necesario y puede saber exactamente qué revisión está en vivo en producción. Capistrano también le permite agregar todo tipo de tareas personalizadas como parte del proceso de implementación, incluida la minifacción JS / CSS,
Extra
Sí, hay muchos. Google para algo como "CSS / JS concat". Aquí hay uno rápido que encontré para CakePHP: Asset Packer .
fuente