Cela fait un moment que je n'ai effectué aucun développement web substantiel et j'aimerais profiter des dernières pratiques mais j'ai du mal à visualiser le flux de travail pour tout incorporer.
Voici ce que je cherche à utiliser:
- Cadre CakePHP
- jsmin (JavaScript Minify)
- SASS (Feuilles de style impressionnantes sur le plan syntaxique)
- Git
CakePHP:
Assez explicite, faites des modifications et mettez à jour la source.
jsmin:
Lorsque vous modifiez un script, exécutez-vous manuellement jsmin pour sortir le nouveau code minifié, ou serait-il préférable d'exécuter un hook de pré-validation qui génère automatiquement des sorties jsmin des fichiers javascript qui ont changé. Supposons que je n'ai aucune connaissance de l'implémentation de hooks de validation.
TOUPET:
J'aime vraiment ce que SASS a à offrir, mais je suis également conscient que le code SASS n'est pas pris en charge par les navigateurs par défaut, donc, à un moment donné, le code SASS doit être transformé en CSS normal. À quel stade du workflow est-ce fait?
Git
Je suis terrifié de l'admettre mais, la dernière fois que j'ai effectué un développement Web substantiel, je n'ai pas utilisé le contrôle de source SCM (IE, j'ai utilisé le contrôle de source mais il s'agissait d'un journal des modifications très détaillé avec des sauvegardes).
J'ai depuis eu beaucoup d'expérience en utilisant Git (ainsi que mercurial et SVN) pour le développement de bureau, mais je me demande comment le mettre en œuvre au mieux pour le développement Web).
Est-il courant d'implémenter un référentiel distant sur l'hôte Web afin que je puisse pousser les modifications directement vers le serveur de production, ou existe-t-il un outil multiplateforme (windows / linux) qui facilite le téléchargement de fichiers modifiés uniquement sur le serveur de production . Existe-t-il des sociétés d'hébergement Web qui facilitent la mise en œuvre d'un référentiel distant, ai-je besoin d'un accès SSH, etc ...
Je sais comment accomplir cela sur mon propre serveur de test avec un référentiel distant avec une branche de suivi à distance séparée, mais je ne l'ai jamais fait auparavant sur un serveur d'hébergement Web de production à distance, donc je ne suis pas encore au courant des options.
Supplémentaire:
J'envisageais d'implémenter un framework javascript où des fichiers javascript séparés utilisés sur une page sont compilés en un seul fichier pour chaque page du serveur de production afin de limiter le nombre de téléchargements de fichiers nécessaires par page.
Est-ce que quelque chose comme ça existe déjà? Existe-t-il déjà un projet open source dans la nature qui implémente quelque chose de similaire que je pourrais utiliser et contribuer?
Compte tenu de la façon dont les développeurs Web paranoïaques sont sur les performances (et le fait que le nombre de demandes de fichiers sur un site Web est un gros coup pour les performances), je suppose qu'il y a un pirate informatique sur le net qui a déjà résolu ce problème.
la source
jsmin
Si vous n'avez pas une tonne de JS, vous pouvez configurer quelque chose à réduire à chaque fois que vous appuyez sur Enregistrer. Si vous avez beaucoup de JS, intégrez-le à votre processus de déploiement (voir Git ci-dessous).
TOUPET
Utilisez le Compass Framework . Il comprend SASS, plus un petit script qui "surveille" votre répertoire SASS et compile les fichiers en CSS (y compris le CSS minifié, si vous le souhaitez) chaque fois que vous enregistrez. Il est construit avec RoR à l'esprit, mais vous pouvez facilement l'utiliser avec n'importe quel framework Web en créant un fichier de configuration Compass et en exécutant la commande "compass watch". Compass comprend également de nombreux autres outils pratiques tels que Blueprint , des mixins utiles et la génération automatique de sprites via le plugin Lemonade (qui devrait être intégré à Compass dans la prochaine version ).
Git
En fonction de la taille / complexité du site, pensez à suivre le Capistranomodèle de déploiement. Je ne sais pas si vous pouvez utiliser Capistrano directement avec CakePHP, mais l'essentiel est le suivant: chaque serveur de production a un dossier "actuel" qui contient tout le code qui s'exécute en production à ce moment. Chaque fois que vous souhaitez déployer du nouveau code, vous exécutez un script qui ssh est sur chaque serveur de production et le fait (a) copier le contenu du dossier "actuel" dans un dossier de sauvegarde (avec le nom de la version / l'horodatage), ( b) extraire le dernier code de Git dans le dossier "actuel" et (c) commencer à servir ce nouveau code à partir du dossier "actuel". De cette façon, vous pouvez revenir à n'importe quelle version précédente si nécessaire et vous pouvez dire exactement quelle révision est en cours de production. Capistrano vous permet également d'ajouter toutes sortes de tâches personnalisées dans le cadre du processus de déploiement, y compris la minifaction JS / CSS,
Supplémentaire
Oui, il y en a un tas. Google pour quelque chose comme "CSS / JS concat". En voici un rapide que j'ai trouvé pour CakePHP: Asset Packer .
la source