Depuis 4 ans, je programme avec Eclipse (pour Java) et Visual Studio Express (pour C #). Les IDE mentionnés semblaient toujours fournir toutes les fonctionnalités qu'un programmeur pourrait demander (liées à la programmation, bien sûr).
Dernièrement, j'ai entendu parler de quelque chose appelé «outils de construction». J'ai entendu dire qu'ils sont utilisés presque dans tous les types de développement dans le monde réel. Que sont-ils exactement? Quels problèmes sont-ils censés résoudre? Comment se fait-il que je n'en ai jamais eu besoin ces quatre dernières années? Sont-ils en quelque sorte des IDE dépouillés de la ligne de commande?
Les outils de construction servent généralement à transformer le code source en binaires - ils organisent le code source, définissent des indicateurs de compilation, gèrent les dépendances ... certains d'entre eux s'intègrent également à l'exécution de tests unitaires, à l'analyse statique, à la génération de documentation.
Eclipse ou Visual Studio sont également des systèmes de construction (mais plus un IDE), et pour Visual Studio, c'est le msbuild sous-jacent pour analyser les fichiers de projet Visual Studio sous le capot.
L'origine de tous les systèmes de construction semble être le fameux «make».
Il existe des systèmes de construction pour différentes langues:
Habituellement, construisez des systèmes en utilisant un langage spécifique au domaine propriétaire (make, cmake) ou xml (ant, maven, msbuild) pour spécifier une construction. La tendance actuelle est d'utiliser un vrai langage de script pour écrire le script de construction, comme lua pour premake et groovy pour gradle, l'avantage d'utiliser un script est qu'il est beaucoup plus flexible, et vous permet également de créer un ensemble de normes. API (comme version DSL).
la source
Le processus de construction est un processus de compilation de votre code source pour toute erreur à l'aide de certains outils de construction et de création de versions (qui sont des versions exécutables du projet). Nous (principalement les développeurs) apportons quelques modifications au code source et enregistrons ce code pour que le processus de construction se produise. Après le processus de construction, il donne deux résultats: 1. Soit vous construisez des PASSES et vous obtenez une version exécutable de votre projet (la construction est prête). 2. Il échoue et vous obtenez certaines erreurs et la construction n'est pas créée.
Il existe différents types de processus de construction comme: 1. Construction nocturne 2. Construction fermée 3. Construction d'intégration continue, etc.
Les outils de build aident et automatisent le processus de création de builds.
* So in Short Build est une version du logiciel au format pré-version utilisée par le développeur ou l'équipe de développement pour gagner en confiance pour le résultat final de son produit en surveillant en permanence son produit et en résolvant tout problème au début du processus de développement. *
la source
Ce sont différents types de processus par lesquels vous pouvez faire vos builds.
1. Construction d'intégration continue:Dans ce cas, les développeurs enregistrent principalement leur code et juste après leur enregistrement, une version est lancée pour la construction des modifications récentes afin que nous sachions si les modifications effectuées par le développeur ont fonctionné ou non juste après l'enregistrement. Ceci est préférable pour les petits projets ou les composants des projets. Dans le cas où plusieurs équipes sont associées au projet ou s'il y a un grand non. des développeurs travaillant sur le même projet ce scénario devient difficile à gérer comme s'il y avait des «n». des enregistrements et la construction échoue à certains moments, il devient très difficile de déterminer si toute la casse s'est produite à cause d'un problème ou de plusieurs problèmes, donc si les problèmes plus anciens ne sont pas résolus correctement, il devient très difficile de retracer le plus tard défauts survenus après ce changement.
2. Builds de check-in fermés: Dans ce type de check-in, une build est lancée juste après que le check-in soit fait en gardant les changements dans un ensemble de tablettes. Dans ce cas, si la génération réussit, l'archivage du jeu d'étagères est validé, sinon il ne sera pas validé dans Team Foundation Server. Cela donne une image légèrement meilleure de la construction de l'intégration continue, car seuls les enregistrements réussis sont autorisés à s'engager.
3. Builds nocturnes: Ceci est également appelé builds programmés. Dans ce cas, nous planifions l'exécution des builds pendant une durée spécifique afin de générer les modifications. Toutes les modifications précédentes non validées de la dernière génération sont générées au cours de ce processus de génération. Ceci est pratiqué lorsque nous voulons nous enregistrer plusieurs fois mais que nous ne voulons pas de compilation à chaque fois que nous enregistrons notre code afin que nous puissions avoir une heure ou une période fixe pendant laquelle nous pouvons lancer la construction pour la construction du code enregistré.
Vous trouverez plus de détails sur ces versions à l'emplacement ci-dessous.
Enregistrement fermé dans les builds
Constructions d'intégration continue
Constructions nocturnes
la source
Vous les avez utilisés - IDE est un outil de construction. Pour la ligne de commande, vous pouvez utiliser des choses comme
make
.Les gens utilisent des outils de ligne de commande pour des choses comme une construction de nuit - donc le matin avec une gueule de bois, le programmeur a réalisé que le code avec lequel il a joué avec les dernières versions des bibliothèques ne fonctionne pas!
la source
"... il est très difficile de garder une trace de ce qui doit être construit" - Les outils de construction n'aident pas avec tout cela. Vous devez savoir ce que vous voulez construire. (Cité de la réponse de Ritesh Gun)
"J'ai entendu dire qu'ils étaient utilisés presque dans tous les types de développement dans le monde réel" - Pour une raison quelconque, les développeurs de logiciels aiment travailler dans de grandes entreprises. Ils semblent avoir des directives de travail plus floues pour chaque personne qui y travaille.
"Comment se fait-il que je n'en ai jamais eu besoin ces quatre dernières années". Probablement parce que vous êtes un programmeur expérimenté.
Pseudo, méta. Je pense que les outils de construction ne fournissent aucun avantage réel. Il est juste là pour ajouter un sentiment de sécurité résultant de mauvaises pratiques de l'entreprise, d'un manque de direction - un mauvais leadership architectural logiciel menant à une mauvaise connaissance réelle du projet. Vous ne devriez jamais avoir à utiliser des outils de génération (pour les tests) dans votre projet. Faire des tests aléatoires avec un manque de connaissance du projet logiciel ne donne aucune aide du tout.
Vous ne devriez jamais ajouter quelque chose à un projet sans connaître son objectif et comment il fonctionnera avec les autres composants. Les composants peuvent être fonctionnels séparés, mais ne peuvent pas fonctionner ensemble. (C'est la responsabilité de l'architecte logiciel que j'assume).
Et si 4 à 5 composants sont ajoutés au projet. Vous ajoutez un 6e composant. Avec le premier composant ajouté, cela pourrait tout gâcher. Aucun automatique n'aiderait à détecter cela.
Il n'y a pas d'autre raccourci que de penser penser penser.
Ensuite, il y a le téléchargement automatique à partir des référentiels. Pourquoi voudriez-vous faire ça? Vous devez savoir ce que vous téléchargez, ce que vous ajoutez au projet. Comment détectez-vous les changements dans les versions des référentiels? Tu dois savoir. Vous ne pouvez rien «auto».
Et si nous testions des vélos et des transports pour bébé avec les yeux bandés avec un bâton et frappions au hasard avec. Cela semble être l'idée de tester les outils de construction.
Je suis désolé qu'il n'y ait pas de raccourci https://en.wikipedia.org/wiki/Scientific_method et https://en.wikipedia.org/wiki/Analysis
la source