En ce qui concerne l'hébergement de vos projets personnels à jeter, une structure de service et de projet se démarque-t-elle? [fermé]

12

Je regarde Google Code, SourceForge, BitBucket et GitHub, car ils semblent être les grands joueurs. Maintenant, je n'ai pas encore décomposé toutes les fonctionnalités qu'ils fournissent, mais je cherche vraiment un endroit pour mettre divers codes que j'écris (mes solutions pour Project Euler, code que je pourrais écrire pour le Code Golf / Programmation de puzzles Stack Exchange, etc.) dans un emplacement centralisé.

Donc, ma première question est: pour une situation comme celle-ci, un service se distingue-t-il parmi les autres?


Une fois que j'ai choisi un service, je dois ensuite choisir comment je vais distribuer le code. Il y a quelques options que je vois pour configurer les référentiels et les projets. Un référentiel unique peut contenir n'importe quel nombre de projets - par exemple, je pourrais avoir un référentiel "Tom Owens's Project Euler Solutions" pour toutes mes différentes solutions pour Project Euler, avec des projets pour chaque langue et environnement dans les répertoires de ce référentiel, un autre référentiel pour mes différentes solutions Code Kata et ainsi de suite. Ou je pourrais décomposer quelque chose comme ça par langage (avoir des solutions Project Euler en Python dans un référentiel, des solutions PE en Java dans un autre référentiel et des solutions Code Kata C ++ dans un troisième référentiel).

Ma deuxième question: existe-t-il des limitations ou des conventions pour déterminer comment partager vos exemples de code que vous choisissez de rendre ouverts, notamment en termes de création de référentiels? Ma pensée est que cela pourrait être dicté par le service que vous choisissez (basé sur les conventions de la communauté).

Thomas Owens
la source

Réponses:

10

Bitbucket.

Ils fournissent un excellent service, des référentiels privés dans leur package gratuit (plus public illimité) et sont assez réactifs dans leur suivi des problèmes.

La même chose, moins les référentiels privés gratuits, est vraie pour Github, mais je n'aime pas du tout git. C'est une préférence personnelle, je ne préconise pas contre git, si pour une raison étrange vous le préférez à hg, alors Github est un choix parfaitement valide.

Quant à la façon d'organiser les dépôts, ne mélangez pas les langues si vous pouvez l'éviter. La plupart des IDE sont construits autour de l'hypothèse qu'un projet est construit sur une seule langue (sauf pour les projets Web où une combinaison de langue + html, css & js est attendue). Je ne dis pas que l'IDE ne sera pas en mesure de faire face, juste que des fonctionnalités telles que la complétion de code seront un peu plus lentes car l'IDE devra charger des données sur la façon de gérer chaque langue.

Si vos dépôts sont publics (donc illimités), j'opterais pour un dépôt par langue par schéma de projet, c'est-à-dire "euler_cpp", "euler_python", etc. Peu importe le service que vous choisissez, la façon dont vous organisez votre repos dépend entièrement de vous.

Quant à la structure des dossiers, pour les solutions du projet euler:

  • Un dossier par problème, si vous prévoyez d'avoir des solutions différentes au même problème
  • Un fichier par problème, pour des solutions uniques

Choisissez celle qui s'applique et respectez-la, si pour un problème vous avez plus d'une solution, choisissez la première structure même si vous n'avez pas de deuxième solution pour un autre problème.

mise à jour:

Le seul fichier par problème n'est proposé que lorsqu'il est réellement applicable et il est suggéré comme schéma potentiel pour des solutions aux projets de problèmes euler, car c'est le seul projet spécifié dans la question.

Selon le commentaire de btilly, j'ajoute que la structure meilleure / plus naturelle devrait être décidée par langue, car chaque langue et / ou plate-forme a ses propres conventions et pratiques concernant les fichiers et les dossiers.

yannis
la source
1
La structure des dossiers doit dépendre de la langue. Une personne utilisant un langage de script écrit fréquemment du code dans un fichier qui, en C / C ++, serait naturellement écrit sur plusieurs fichiers d'un dossier.
btilly
@btilly C'est vrai.
J'ajoute
En fait, je ne cherchais pas spécifiquement comment disposer des fichiers dans un projet, mais comment disposer un certain nombre de projets dans le service utilisé.
Thomas Owens
@Thomas En ce qui concerne la façon d'organiser les prises en pension ... . Traditionnellement, vous auriez un projet par référentiel. Vous recherchez des instructions spécifiques sur chaque service?
yannis
Ce que je recherche, ce sont des conventions qui existent dans chaque communauté, s'il y a quelque chose qui sort de l'ordinaire. Dans mes expériences, des choses comme BitBucket, GitHub et SourceForge sont plus des communautés avec des normes et des conventions que de simples services (bien que certaines personnes les utilisent comme des services).
Thomas Owens
3

Vous avez oublié une option: héberger votre propre référentiel. C'était vraiment le seul moyen de voler jusqu'à récemment.

Si je devais en utiliser un aujourd'hui, je choisirais bitbucket principalement parce qu'ils autorisent les dépôts privés et les roches mercuriales.

Wyatt Barnett
la source
Je l'ai fait avec VisualSVN sans trop de douleur.
Cody Sand
J'y ai fait ça. Vous pouvez être encore plus efficace avec les appliances turnkeylinux.org . .
Wyatt Barnett
3

Après avoir utilisé Google Code, SourceForge et GitHub à différents moments, je dirais que GitHub est bien meilleur que les deux autres:

  • Se concentre entièrement sur le travail réel de création et de partage de code.
  • La gestion des problèmes est activée par défaut, et n'est pas seulement simple à utiliser, mais bien connectée avec le code et les demandes d'extraction.
  • L'aide des débutants est excellente, comme des instructions pas à pas pour démarrer avec un référentiel et pour gérer les demandes d'extraction.
  • Non destiné à la distribution binaire; cela est mieux géré par des sites spécialisés comme PyPI.
  • Wiki simple au lieu de devoir développer votre propre page Web à partir de zéro.
  • Excellent support de flux - Un seul flux pour tout ce qui m'intéresse.
  • Communication informelle et donc lisible.
  • Développement très actif de nouvelles fonctionnalités.
l0b0
la source
En outre, Github est parfait pour stocker des choses comme les solutions Project Euler et des extraits de golf de code grâce à l'utilisation de gists.
Matt Ellen
1

Mes projets personnels ne sont pas très gros (beaucoup de texte, pas de graphiques), j'ai donc des référentiels Mercurial avec les maîtres de DropBox. C'est un moyen rapide de démarrer avec la sauvegarde (si DropBox disparaît, j'ai toujours une copie du référentiel sur chaque ordinateur que je possède) et la portabilité.

En supposant que j'ai un projet qui arrive au point où je veux le distribuer, je peux toujours le déplacer vers Bitbucket pour une plus grande visibilité. Cela n'inclut pas le code des solutions du projet Euler.

David Thornley
la source