Programmeurs multiples dans le développement de logiciels. Comment pouvons-nous travailler sur le même code et nous assurer qu’il est toujours mis à jour?

Cela semble être quelque chose que je devrais savoir maintenant, mais pour une raison quelconque, je ne le sais pas. Je n’ai pas non plus beaucoup de chance de chercher sur le sujet.

Un ami et moi commençons ensemble un projet simple, loin du travail, nous sums tous deux très jeunes dans le monde de la programmation et voulons entreprendre un projet éducatif simple pour notre temps libre … Ma question est, nous voulons pouvoir travailler sur le même projet, et les fichiers être mis à jour en conséquence, sans que nous ayons constamment à partager des fichiers entre eux. Je suis certain qu’il existe des logiciels qui existent uniquement à cette fin, ou un type de client de partage que nous pourrions utiliser. Le problème est que je ne sais pas par où commencer.

Des conseils simples sur comment et quoi utiliser pour aider ce projet à progresser plus facilement seraient formidables. Et c’est en grande partie la raison pour laquelle nous le faisons en premier lieu.

Mettre à jour:

Après quelques recherches, je me suis installé sur Tortoise SVN. Le simple clic droit sur Windows pour mettre à jour / valider les fichiers sur votre serveur hébergé est très simple et convivial.

Clarification supplémentaire

Cela fait quelques années que je pose cette question et j’ai beaucoup appris! Si vous êtes ici avec la même question, je vous conseille de rechercher “contrôle des sources”. J’ai initialement accepté une réponse suggérant une subversion, et j’ai même déclaré que je m’étais installé sur “Tortoise SVN” en tant que client se connectant à subversion. Comme toutes les choses que nous adaptons comme nous l’avons appris, et le contrôle de source primaire que j’utilise maintenant est Git. La courbe d’apprentissage est plus large, mais je peux honnêtement dire que c’est beaucoup plus puissant.

On dirait que vous avez besoin d’un contrôle de source! Avez-vous cherché dans Subversion (SVN) ? Il existe un client Windows génial appelé TortoiseSVN . Les deux sont gratuits et open source.

Vous devez configurer un serveur Subversion sur l’une de vos machines ou sur un serveur Web quelque part. Vous engagez tous les deux vos modifications sur le serveur à intervalles réguliers, et le serveur gère des tâches telles que la révision, les commentaires que vous attachez à des commits, etc. Avec le client, vous pouvez afficher des différences entre les révisions et les modifications de fusion (automatiquement ou manuellement) dans les fichiers. Il est également facile d’append d’autres développeurs à votre projet, donnez-leur simplement access à votre serveur Subversion. Il existe des plug-ins SVN pour Eclipse et Visual Studio , ou vous pouvez utiliser TortoiseSVN qui peut être exécuté en mode autonome sur la ligne de commande et s’intégrer au shell Windows (voir ci-dessous).

Intégration du shell TortoiseSVN http://soffr.miximages.com/sharing/create_repo_tortoisesvn.png

Ce que j’aime le plus chez TortoiseSVN, c’est qu’il est totalement indépendant du langage ou de l’IDE et que je peux l’utiliser pour des projets Java à partir d’Eclipse, des projets .NET à partir de VS2008 ou des logiciels de développement de pilotes en C / C ++.

Notez que l’outil SubWCRev fourni avec TortoiseSVN expose également une interface COM qui vous permet de faire des choses intéressantes comme vérifier par programme qui a effectué le dernier commit et quand, quel est le dernier numéro de révision, etc. Je le mentionne car il n’y a pas beaucoup de des informations à ce sujet en dehors des documents de TortoiseSVN, et cela m’a été très utile récemment d’écrire un addin VS2008 que j’utilise sur mes projets .NET pour synchroniser automatiquement le numéro de révision et l’incrémentation du numéro de build.

Un certain nombre de sites fournissent un access gratuit au référentiel SVN pour les projets open source (ou access payant pour les produits à source fermée / commerciaux), tels que Google Code et Sourceforge . Ces référentiels en ligne peuvent également être très utiles pour le travail de projet, surtout si vous êtes un étudiant travaillant sur un projet de groupe.

Le type de logiciel que vous recherchez est le contrôle de source (également appelé contrôle de révision). C’est un sujet énorme, mais je commencerais par regarder dans Wikipedia, puis je chercherais un type de contrôle de source qui fonctionne avec le langage et les outils que vous utilisez. (Exemple: Team Foundation Server en option pour Visual Studio, SVN pour une solution complète, etc.)

Vous allez éventuellement demander des suggestions sur l’outil de contrôle de code source à utiliser. Pour notre équipe, nous utilisons SVN (aka SubVersion), qui est une très bonne solution open source qui fonctionne avec presque tout.

Lien Wikipedia:

http://en.wikipedia.org/wiki/Revision_control

La réponse simple est que vous voulez une sorte de logiciel de contrôle de révision.

La réponse plus complexe est que le contrôle des révisions est beaucoup plus facile que de l’ utiliser ou de l’utiliser correctement.

Si vous commencez, choisir un outil facile à utiliser est la clé. Subversion est un bon choix car il dispose d’importantes implémentations d’interfaces graphiques, mais fournit toujours beaucoup de puissance et de flexibilité une fois que vous commencez à y entrer au niveau de la ligne de commande.

Cependant, le système de contrôle de révision que vous choisissez est moins important que de cultiver les habitudes d’utilisation qui vous permettront de tirer parti de vos outils. Les développeurs expérimentés utilisant les meilleurs outils peuvent se retrouver dans des référentiels sources mal conçus ou mal gérés.

Quelques points à considérer:

  • Si vous n’actualisez pas votre repo fréquemment et systématiquement en routine, cela ne sera pas très utile lorsque vous en aurez besoin.

  • Apprendre ce que différentes personnes ont à dire sur les meilleures pratiques est utile dans une certaine mesure, mais parfois, le facteur le plus important est simplement qu’il existe une norme et que toutes les personnes impliquées la comprennent et l’acceptent.

  • L’organisation des pensions dépend fortement du chemin.
    La configuration et le déassembly sont peu coûteux au démarrage de votre projet. N’ayez pas peur d’être pointilleux sur la structure organisationnelle au début. C’est peut-être le seul moment où vous pouvez être.

Si vous souhaitez en apprendre un peu plus sur Git, vous pouvez héberger votre travail sur github.com tout en travaillant séparément.

Il y a deux choses importantes lorsque deux développeurs ou plus travaillent sur le même projet. Premièrement, les outils utilisés et, deuxièmement, le processus convenu.

L’outil utilisé dans votre cas est très simple. Choisissez un système de contrôle de version et apprenez à l’utiliser. Les choix sont nombreux, mais le facteur le plus important est le support des outils. Par exemple, les outils de type tortuise sont parfaits pour les utilisateurs de Windows (TortuiseSVN, ToruiseCVS, TortuiseHg) car ils s’intègrent dans le shell de Windows et vous permettent de voir ce qu’ils contiennent. vert ok et etc.).

La deuxième partie, la plus importante, est le processus. La plupart des équipes font la même chose et il faut du temps pour en adopter une et que tout le monde la suive. Vous et votre partenaire devez accepter le même processus et vous devez tous les suivre.

Le processus comprendra l’organisation de base du dossier, ce qui sera mis et où, comment et quand vous allez commettre / valider et quel type de code vous utiliserez.

À mon avis, il y a deux choses importantes ici:

  1. Le code dans le repository doit toujours être capable de permettre à l’autre de continuer à travailler sans problème

  2. Tout le monde doit savoir quoi mettre et où, par exemple, un dossier sera choisi pour le code source et l’autre pour la firebase database, etc.

Voici un exemple de processus simple:

  1. Installer un serveur de référentiel (svn, mercuiral etc.). Pour vous, la seule différence est le support des outils.
  2. S’entendre sur une structure de référentiel commune (documents, source, extras)
  3. Mise à jour au début de chaque jour
  4. S’engager souvent avant chaque mise à jour de la validation depuis le référentiel
  5. À la fin de chaque journée, engagez-vous

Contrôle des sources de recherche. Voici une belle introduction:

http://www.ericsink.com/scm/source_control.html

Beaucoup peuvent être hébergés gratuitement en ligne ou pour une sum modique, de sorte que vous et votre partenaire pouvez collaborer sur Internet, sauf si vous avez un serveur partagé. tel). Sinon, GitHub (pas le seul) est un système de contrôle de source dissortingbué. Peut-être un peu accablant au début, mais c’est un exemple.

Au cours des 6 derniers mois, je suis passé à Git et j’en suis plutôt satisfait. mais en général, cvs | svn | git sont les SCM open source (gestion de code source) les plus courants et chacun d’entre eux devrait pouvoir répondre à vos besoins.

“ou un type de client de partage que nous pourrions utiliser”

Le contrôle de source est probablement l’approche officiellement recommandée, mais le moyen le plus simple de partager des fichiers est d’installer quelque chose comme DropBox .

Vous vous inscrivez pour un compte gratuit de 2 Go avec un nom d’utilisateur / mot de passe partagé entre vous et votre ami. Ensuite, vous installez le client DropBox sur votre PC et celui de vos amis et utilisez le compte partagé.

Une fois en cours d’exécution, Dropbox crée un dossier sous Mes documents nommé “My Dropbox”. Maintenant, tout ce que vous faites dans ce dossier, comme la création, la modification, la suppression de fichiers et de dossiers, sera automatiquement synchronisé dans le dossier “My Dropbox” sur le PC de vos amis et vice versa. L’access à Internet est tout ce qui est requirejs.

Vous obtenez également l’historique et les révisions de vos fichiers, de sorte que vous pouvez restaurer et restaurer les versions antérieures si nécessaire. Si vous travaillez tous deux sur les mêmes fichiers à la fois, tout comme le contrôle de code source, vous devrez fusionner manuellement les fichiers, mais Dropbox enregistre une “copie en conflit” dans ce cas.

J’ai utilisé Dropbox moi-même pendant presque un an et je suis très satisfait de sa facilité d’utilisation. Je ne travaille pas pour Dropbox ou je n’ai rien à voir avec eux alors qu’ils sont des utilisateurs heureux.

Un “vrai” système de contrôle de source vous offre principalement des sauvegardes automatiques, la possibilité de revenir aux versions antérieures et la gestion de plusieurs utilisateurs qui modifient le code source, mais aussi Dropbox.

C’est une question très simple mais importante. Ceci est une question de version de code source. Ma propre expérience me disait d’éviter les solutions Dropbox et Co traditionnelles, car elles ne sont pas très conviviales.

En regardant votre message, vous voulez:

  1. Simple avec configuration et utilisation faciles
  2. Partage du code (navigation et modification)
  3. Voir qui a modifié quoi et quand

Je recommanderais Git parce que les réponses aux trois avec l’outil de base Git et Github.com ou Bitbucket.org .

CVS et SVN sont lourds et ne disposent pas d’une interface web très pratique comme Github ou Bitbucket. Et même si j’étais un grand fan de CVS et que je me suis déplacé vers SVN, je dois admettre qu’ils ont maintenant un goût très ancien par rapport aux nouveaux systèmes Git et J’aime.