8791 sujets

Développement web côté serveur, CMS

Hello,

Voilà un petit post dédié à éveiller ma curiosité : quelle architecture utilisez-vous en agence (pour ceux qui y bossent) ou en environnement de développement "à plusieurs" pour travailler de façon collaborative sur les même projets ?

Je cherche à améliorer de façon significative mon fonctionnement lorsqu'il m'arrive de travailler avec deux ou trois personnes sur un même projet sur le même site (physique). Je voulais au départ centraliser sur un serveur de dev les projets, bases, etc ... La solution était alors de pousser ses sources modifiées en local sur le serveur (via ftp par ex). Seulement quid de la modification simultané des mêmes sources par deux personnes (la feuille de style principale par exemple) ?

Donc, je sous avide de retours d'expériences ... Comment vous faites de votre côté, est-ce que vous avez des suggestions ?

Merci !

[EDIT]
En continuant mes fouilles sur le web, je suis tombé sur cet article Deploying A Web Application with Git and FTP. Ca semble être une approche intéressante, facilement transposable sous Mac avec les "Transmit Disk feature" ...
[EDIT]
Modifié par MAD's (02 Oct 2010 - 10:25)
Tu as deux aspects:
- ce qui touche aux sources de toutes sortes : système de gestion de version tels que subversion, git, bazaar, mercurial etc. Sur ton serveur ou sur un service en ligne (github, bitbucket)

- ce qui touche au 'reste' : rédaction de contenus, graphisme, discussions, relation client: appli de gestion de projet, hébergé chez toi (activecolab, projectpier, collabtive) ou service (basecamp, appolohq)

Sur un autre post, je parlais des applis telles que trac (python) et redmine (ruby) qui sont des solutions très adaptées pour développeurs et offrent un système de dépot, ticket, wiki.
Effectivement, j'utilise déjà Git pour la gestion des sources et Redmine pour le suivi de projets/rapports de bugs.

Concrètement, la solution qui est en place est plutôt pas mal, mais jenme pose surtout la question de l'optimisation. Est-ce que, finalement, avoir un serveur web qui tourne en local sur "sa" machine pour développer ses bouts de codes; puis récupérer la dernière version (fetch) sur le serveur de gestion avant de pousser l'ensemble vers un serveur de beta/build pour l'ensemble du parc de développeurs/intégrateurs n'est pas la meilleure solution ?

En fait, en me relisant, je me rends compte que je suis plus à la recherche d'un workflow que d'une architecture système (qui découlera fatalement du workflow choisi) ccc
Je pense que ca va être la solution sans doute.

Donc, en résumé :
- développement en local avec un serveur web installé sur la machine
- versionning en local avec Git
- fetch des modifications sur le dépôt central et push vers le dépôt des modifications locales
- manuellement, ou avec un hook, clone du dépôt central sur un serveur "beta" permettant à l'ensemble de la communauté, voire des clients, de consulter la dernière version disponible

Ca semble être une bonne solution, sans trop se marcher sur les pieds, non ?