Le développement Web n'est plus ce qu'il était. Il consistait à hacker ensemble quelques scripts PHP (je n'ai rien contre PHP, en fait c'est actuellement mon principal langage de programmation), en les téléchargeant via FTP vers un hébergeur et c'est tout. Aujourd'hui, les choses sont plus compliquées. Comme je peux le voir en regardant un certain nombre de sites Web professionnels et modernes (SO étant le principal, je considère que SO est un excellent exemple de bonne pratique dans le développement web, même si elle est faite avec ASP.NET et hébergé sur Windows), développant un site Web est beaucoup plus que cela:Comment créer un site Web approprié?
- le code de site est en fait dans un dépôt (ce petit de révision svn en bas de page fait mes sentiments ringard picotent);
- Les fichiers statiques (CSS, JavaScript, images) sont stockés sur un domaine distinct;
Ok, ce sont mes observations. Maintenant pour mes questions:
- Que faites-vous avec les fichiers JavaScript et CSS? Ne les gardez-vous pas sous contrôle de version? Cela semblerait stupide. Créez-vous un référentiel séparé pour eux?
- Comment configurez-vous le référentiel? En créez-vous un à la racine du serveur Web? Ou créez-vous une sorte de déclencheur post-commit qui copie les derniers fichiers vers leurs destinations appropriées? Que se passe-t-il si plusieurs machines exécutent le site Web et que vous souhaitez y apporter des modifications?
- Chaque projet de ce type doit avoir des fichiers de configuration. Ceux-ci diffèrent du référentiel local au distant. Par exemple, sur ma machine de développement, je n'ai pas de mot de passe root MySQL, alors que sur le serveur de production j'ai certainement un mot de passe. Ce mot de passe serait stocké dans un fichier de configuration, entre autres, ce qui serait complètement différent sur ma machine et sur le serveur. Peut-être sont-ils également différents entre les machines de production (comme je l'ai déjà dit, peut-être que le site fonctionne sur plusieurs machines pour l'équilibrage de charge). Comment puis-je gérer cela?
Je cherche à lancer un nouveau projet Web en utilisant:
- Python + SQLAlchemy + Werkzeug + Jinja2
- Apache httpd + modwsgi
- MySQL
- Mercurial
Ce que je voudrais, c'est un conseil de bonne pratique sur l'utilisation des outils susmentionnés et répondre s à mes questions ci-dessus.
Je ne sais pas quelle réponse accepter. Tous fournissent des informations très utiles. Cependant, en choisir un comme «réponse acceptée» semblerait injuste et, bien, faux. Ils sont tous acceptés. Est-ce que le fait de marquer ce post comme wiki de communauté serait une bonne idée? – Felix