Comment plusieurs personnes peuvent-elles travailler sur un même site Web?


11

J'ai récemment regardé The Social Network, et cela pourrait être une question stupide, mais comment est-il possible pour plusieurs personnes de travailler sur un site Web? Je veux dire, s'ils travaillent sur la même page, comment est-ce possible? Et aussi, est-il possible de télécharger des fichiers sur un hôte en ligne sans les faire vivre?


12
Contrôle de source. Chaque développeur travaille sur les fichiers localement, doit vérifier le fichier qui interdit les autres développeurs de remplacer le contenu dans le fichier jusqu'à ce qu'il soit archivé. En.wikipedia.org/wiki/List_of_revision_control_software

3
N'utilisez jamais la fonctionnalité de verrouillage du contrôle de version sur les fichiers, sauf s'ils sont binaires.
Colin Goudie

@gommo: Qu'entendez-vous par «binaire»? Pouvez-vous développer?
Cam

1
@Cam: dans ce contexte "binaire" = "tout ce qui n'est pas un fichier texte"
Konrad Rudolph

Réponses:


27

Habituellement, lorsque plusieurs personnes doivent apporter des modifications au même fichier, elles utilisent une sorte de système de contrôle de version pour suivre qui a apporté quelles modifications. Il leur permet également de fusionner et de synchroniser les modifications apportées par différentes personnes.


1
Simple mais élégant.
Ryan Hayes

14

Très peu de sites Web se composent d'une seule "page" et, dans les cas où plusieurs personnes travailleraient sur la même page, la plupart des systèmes de contrôle des révisions ont des mécanismes intégrés pour fusionner les modifications dans un fichier unifié.


Juste pour être difficile :) à moins qu'il ne s'agisse d'un système basé sur CMS, où toutes les pages sont virtuelles et n'existent que dans une base de données.
Darknight

6

Plusieurs personnes travaillant dans les mêmes fichiers: contrôle de code source

Sans les faire vivre: des serveurs et bases de données de développement, qui ne sont pas la même branche que le vrai site web.


3

Ils ont besoin d'une sorte de manager.

En règle générale, les équipes sont divisées en segments qui ne devraient jamais interférer les uns avec les autres (fameux derniers mots). Par exemple, si l'API foo dépend des assistants des personnes qui codent en C, la rupture devrait (jamais se produire), mais si c'est le cas, cela se produit parce que l'application d'assistance ne comprend pas ce que vous lui passez.

C'est un cas classique où la main droite ne sait pas ce que fait la main gauche, ce qui illustre clairement la faute, qui est probablement la mienne.

Si vous poussez du code sans d'abord tirer et résoudre les fusions (tout en cassant ce que l'autre développeur a fait en supprimant tout ce que vous n'avez pas écrit), avant de communiquer avec d'autres personnes qui éditent le même, je vais vous doser avec une haute tension. Après cela, je vais vous emmener dîner (pour réparer les 1,21 gigawatts) et vous assurer que vous ingérez une sorte de nourriture folle, dégoûtante et assez exotique. Pensez ... Klingon .

Vous m'en remercierez alors, et ne recommencerez plus jamais.

Bien sûr, vous pouvez remplacer ici une sorte de «conversation» normale , mais qu'est-ce que c'est amusant?


1

Vous constaterez probablement que des développeurs travaillent sur différentes pages. Un modèle ou un maître de site est généralement créé afin que chaque page ait la même apparence. Par exemple, si l'entreprise utilise le contrôle de code source comme Team Foundation Server, chaque développeur vérifiera son code source et cela permettra aux autres développeurs d'obtenir leurs dernières modifications.


2
TFS était le meilleur que vous pouviez trouver pour un exemple de système de gestion du contrôle de source? Allez donc.
Matt Phillips

1

Ils pourraient soit:

  • Être en programmation dans un éditeur via une session SSH (par exemple vi, vim, nano, emacs).
  • Soyez édité via FTP avec leur IDE (par exemple emacs, notépad ++).
  • Utilisation d'un système de contrôle de version.

Pour le dernier, les gens utilisent maintenant le contrôle de version distribué tel que mercurial , git et bazar , au lieu du contrôle de version centralisé comme CVS et subversion. Pour mercurial, consultez bitbucket.org et l' hébergement de projet de code google , pour git, consultez github , qui sont des sites qui hébergent le code pour que vous puissiez le partager en collaboration sans avoir à configurer un serveur.

Également:


1

Développement de pages avec des composants VS Pages dans leur ensemble

J'ai travaillé sur de nombreux sites Web à grande échelle, et la façon dont plusieurs personnes travaillent sur la même page est que la plupart des sites Web sont des portails . En général, de nombreux sites comme Facebook contiennent de nombreux contrôles, tels que des photos, des annonces, de petites zones de texte, etc., sur lesquels plusieurs personnes travailleront. De plus, les en-têtes et pieds de page sont généralement divisés en leur propre fichier include réutilisable. Cela divise le site en composants qui peuvent non seulement être travaillés individuellement, mais peuvent également être réutilisés sur plusieurs sites et zones.


savez-vous ce qu'est un portail web? (indice, ce n'est pas un mashup. pensez aux temps anciens Yahoo)
Javier

Oui, j'essayais d'utiliser un exemple qui montre qu'une technique consiste à diviser les pages en composants. Un bon exemple de cela est un portail, sauf que les utilisateurs peuvent déposer des widgets de portail d'entrée / sortie, tandis que la création de pages à l'aide de composants ne peut se faire que du côté des développeurs. Les portails sont un bon exemple visuel.
Ryan Hayes

0

Vous pouvez utiliser une sorte de système de synchronisation en direct comme OneNote utilise .... En outre, vous pouvez télécharger des fichiers vers un hôte mais ne pas y faire votre lien de domaine principal.


0

N'oubliez pas qu'il peut également y avoir des systèmes de gestion de contenu que certains sites utilisent pour diffuser du contenu, de sorte que même si vous pensez que quelque chose est une page Web, c'est vraiment ce mélange de choses.

De nombreux systèmes de gestion de contenu auront une fonction d'aperçu pour permettre aux auteurs de visualiser le contenu avant de le rendre accessible au public.


0

Tous ces outils mentionnés sont utiles, mais pour moi, cela ressemble plus à l'OP demande davantage comment les gens empêchent de se mettre sur le chemin des autres.

En plus d'utiliser des outils pour résoudre ces conflits, il y a généralement une division en piles ou en niveaux pour aider à éviter les conflits en premier lieu.

Avec l'approche de la pile, chaque personne travaille sur une fonctionnalité non liée (une personne peut ouvrir un compte et une peut soumettre du contenu). Il y aura un conflit où les deux peuvent se croiser (les enregistrements utilisateur dans cet exemple probablement) et qui sera traité dans le cadre de la fusion avec la génération suivante.

Avec l'approche par niveaux, quelqu'un construit tous les bits les plus intimes, quand ils ont terminé une partie, une autre personne écrit les bits qui se trouvent au-dessus de ceux-ci et ainsi de suite. les conflits générés ici se produisent généralement lorsque quelque chose doit être retourné à un niveau inférieur pour une modification ultérieure qui pourrait affecter le niveau suivant au-dessus et est géré de manière similaire avant la prochaine génération.

La partie sur les fichiers promus mais non en direct a une grande variété de réponses / implémentations, mais un serveur séparé pour prévisualiser, un mode d'aperçu spécifique ou une classe d'utilisateurs ou un droit qui tire la version de pointe tandis que les utilisateurs réguliers obtiennent la version stable sont ceux que j'ai tendance à voir le plus souvent.


0

Pour répondre à la deuxième partie en premier, une façon de télécharger des fichiers sans les rendre vivants est de leur donner un nom qui ne sera pas lié. Par exemple, pour créer une nouvelle version d'une index.htmlpage, téléchargez-la avec le nom index2.html, puis visitez http://yoursite.com/index2.htmlet vérifiez qu'elle fonctionne correctement. Une fois que vous êtes satisfait, renommez-le index.html. Ce n'est vraiment que pour les très petits sites, et cela devient un peu compliqué si vous voulez changer quelque chose d'extérieur à la page, comme des images, des fichiers CSS ou JavaScript, parce que vous devez l'avoir image2.png, alors index2.htmlla seule différence est qu'il pointe vers le Nouvelle image.

Un programmeur professionnel aurait toujours un système de test sur lequel travailler, puis téléchargerait sur son "hôte en ligne" une fois qu'il serait satisfait des changements. Vous pouvez configurer un serveur Web sur votre ordinateur qui ne servira que les pages de votre réseau local. Bien sûr, vous pouvez également utiliser un ordinateur distinct ou (comme moi) une machine virtuelle exécutée sur votre ordinateur principal.

Lorsque plusieurs développeurs travaillent ensemble, chacun a son propre système de test sur lequel travailler, puis télécharge ses modifications dans un système de contrôle de version qui garde la trace de toutes les modifications de toutes les différentes personnes. Voir la parabole git pour savoir comment cela fonctionne.

Le système de contrôle de version permet de voir facilement qui a changé quoi et pourquoi. Celui-ci peut être vérifié par la personne en charge, puis le fusionner dans le maître et le remettre au service de test / AQ. Une fois qu'ils auront entièrement testé les nouvelles fonctionnalités, ils l'approuveront pour le téléchargement sur le site en direct.


0

La première chose à établir est que de nombreux sites ne sont pas une collection de pages statiques sur lesquelles travaillent une ou plusieurs personnes.

Les pages que vous voyez en tant que visiteur n'existent pas sur le site Web pour y apporter des modifications car, dans ces sites, elles sont automatiquement assemblées à la volée par un système de gestion de contenu - logiciel exécuté sur le serveur d'hébergement, utilisant le contenu du site Web les propriétaires ont produit. Le CMS assemble la page à partir du contenu présenté à l'aide de fichiers modèles (CSS et les propres fichiers de configuration du CMS) et la page résultante est servie à votre navigateur.

Les propriétaires du site modifient le contenu et les modèles de mise en page plutôt que les pages statiques. En partant de là, votre réponse dépend du type de changement et du rôle de la personne qui le fait:

  1. un utilisateur public du site , poster un blog ou un commentaire
  2. si vous modifiez le contenu du site (rôle de producteur de contenu, par exemple journaliste travaillant pour le propriétaire du site) ou
  3. ajout et modification des fonctionnalités du site (développeur de site travaillant pour le propriétaire du site).

Drupal est un système de gestion de contenu gratuit et puissant qui fournit une gestion multi-utilisateurs pour gérer les mises à jour de contenu, ce qui affecte à son tour ce qui est vu par les visiteurs sur les pages. Drupal fournira également des moyens de modifier le comportement des pages, par exemple la façon dont elles sont présentées ou si des commentaires sur un article peuvent être publiés, en abordant les 1er et 2e types de changement. Si vous effectuez les modifications dans Drupal, celles-ci seront stockées dans une base de données SQL. Drupal fournit un certain contrôle de version / révision du contenu.

Un système de contrôle de version complet est nécessaire pour les changements de comportement du site plus impliqués, le 3ème type de changement, par exemple introduire plus de fonctionnalités, recevoir des mises à jour de Drupal ou corriger des bogues sur son propre code ajouté, alors cela signifie changer le code et comme d'autres l'ont posté ici. Des systèmes de contrôle de version tels que GIT, Subversion ou Mercurial - tous gratuits - sont utilisés pour gérer les modifications apportées par plusieurs développeurs du site.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.