Question

Je n’avais jamais utilisé d’outils de CI auparavant, mais de ce que j’ai lu, je ne suis pas sûr que cela apporterait un avantage quelconque à un développeur solo qui n’écrit pas de code tous les jours.

Premièrement, quels sont les avantages de CI pour tout projet?

Deuxièmement, qui devrait utiliser le CI? Est-ce que cela profite à tous les développeurs?

Était-ce utile?

La solution

Le concept de base de CI est que vous avez un système qui construit le code et exécute des tests automatisés chaque fois que quelqu'un effectue un commit dans le système de contrôle de version. Ces tests incluraient des tests unitaires et fonctionnels, voire des tests comportementaux.

L'avantage est que vous savez immédiatement si quelqu'un a cassé la construction. Cela signifie soit A) ils ont commis un code empêchant la compilation, ce qui ferait chier tous ceux qui ont fait une «mise à jour», soit B) ils ont commis un code qui a cassé certains tests, ce qui signifie soit qu'ils ont introduit un bogue qui doit être corrigé, ou les tests doivent être mis à jour pour refléter le changement de code.

Si vous êtes un développeur solo, n'est pas vraiment utile si vous avez l'habitude d'exécuter vos tests avant un commit, ce que vous devriez être en train de faire. Cela étant dit, vous pourriez développer une mauvaise habitude de laisser l’IC faire vos tests à votre place.

En tant que programmeur solo, il s’agit principalement de discipline. L'utilisation de CI est une compétence utile, mais vous souhaitez éviter de développer de mauvaises habitudes qui ne se traduiraient pas par un environnement d'équipe.

Autres conseils

Comme d'autres l'ont déjà noté, CI a des avantages pour un développeur solo. Mais la question que vous devez vous poser est la suivante: est-ce que ça en vaut la peine? Si vous êtes comme moi, il faudra probablement une heure ou deux pour configurer un système de CI pour un projet, simplement parce que je vais devoir allouer un serveur, configurer tout le réseau et installer le logiciel. N'oubliez pas que le système CI ne vous fera gagner que quelques secondes à la fois. Pour un développeur solo, ces temps ne sont probablement pas supérieurs au temps nécessaire à la configuration du CI.

Toutefois, si vous n’avez jamais mis en place de système de CI auparavant, je vous recommande de le faire uniquement pour apprendre à le faire. Cela ne prend pas si longtemps que l'expérience d'apprentissage n'en vaut pas la peine.

L’avantage de CI réside dans sa capacité à découvrir tôt le moment où un enregistrement a rompu la construction. Vous pouvez également exécuter votre suite de tests automatisés par rapport à la construction, ainsi que tout type d’outil pour vous donner des métriques et autres.

Évidemment, cela est très utile lorsque vous avez une équipe de responsables, qui n’ont pas tous la tâche de vérifier les changements apportés. En tant que développeur solo, ce n'est pas aussi précieux. Vraisemblablement, vous exécutez vos tests unitaires, et peut-être même des tests d'intégration. Cependant, j’ai vu à plusieurs reprises un développeur oublier d’archiver un fichier dans un jeu.

Le build CI peut également être considéré comme votre "release". construire. L’environnement doit être stable et ne pas être affecté par le gizmo de développement que vous venez d’ajouter à votre machine. Cela devrait vous permettre de toujours reproduire une construction. Cela peut être utile si vous ajoutez une nouvelle dépendance à votre projet et oubliez de configurer l'environnement de génération de version pour en tenir compte.

Si vous devez prendre en charge plusieurs compilateurs, il est pratique de disposer d'un système de construction de CI pour faire tout cela pendant que vous ne développez que dans un seul IDE. Mon code est construit avec Vc6 à VS2008 en x86 et x64 avec VS2005 & amp; 8, donc 7 compilations par projet par configuration de projet ... Avoir un système CI signifie que je peux développer dans un IDE et laisser le système CI prouver que tous les compilateurs que je supporte sont toujours construits.

De même, si vous construisez des bibliothèques utilisées par plusieurs projets, alors CI veillera à ce qu'ils fonctionnent avec TOUS les projets plutôt qu'avec celui avec lequel vous travaillez actuellement ...

La vérité est que l’intégration continue a plus de sens dans les équipes. Les développeurs individuels peuvent également bénéficier de certains avantages. Vous devez décider vous-même s’ils suffisent pour vous épargner le temps que vous investissez dans la configuration d’un système CI.

  • Si vous avez oublié d’archiver certains fichiers nécessaires, le référentiel contient une version endommagée, même s’il fonctionne sur votre ordinateur. CI détecterait ce cas.
  • Si votre serveur CI s'exécute sur un autre ordinateur, il peut indiquer des dépendances sur votre environnement de construction. Moyens, la construction et tous les tests peuvent fonctionner sur votre dev-box, mais sur une autre machine, certaines dépendances ne sont pas remplies et la construction se casse.
  • Les constructions quotidiennes peuvent indiquer que votre ancien logiciel ne fonctionne pas avec la dernière mise à jour du système d'exploitation / compilateur / bibliothèque ...
  • Si votre système CI dispose d'une archive d'artefacts de construction, vous pouvez facilement obtenir la distribution d'une version antérieure de votre logiciel.
  • Certains CI ont une belle interface pour vous montrer des statistiques sur votre construction, des liens vers de la documentation générée automatiquement, etc.

Nous utilisons notre système de CI pour réaliser les versions Release (ainsi que les versions "on-commit" automatiques habituelles).

Pouvoir cliquer sur un bouton qui lance une version Release qui parcourt tous les processus pour libérer une configuration est:

  • rapide (je peux continuer tout droit avec d'autres choses, et il fonctionne sur une machine séparée pour ne pas me ralentir);
  • répétitif (il n'oublie rien, y compris la copie de la configuration dans le dossier de publication et la notification à tous ceux qui ont besoin de savoir)
  • fiable (pas d'erreur, contrairement à un humain!).

Dans un environnement agile, où vous vous attendez à fournir un logiciel fonctionnel toutes les 2 à 4 semaines, cela vaut vraiment la peine, même dans une équipe de 1.

CI profite à un développeur solo en ce sens que vous êtes conscient si vous avez oublié d’enregistrer quelque chose (car la construction sera brisée). La valeur d’intégration de celui-ci est cependant réduite en l’absence d’autres développeurs.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top