Pendant la majeure partie de ma carrière en programmation, j'ai utilisé la commande "build / compile / run" dans n'importe quel IDE avec lequel je travaille pour créer un programme exécutable. Ceci est un bouton, assez facile. Alors que j'en apprends davantage sur différents langages et frameworks, je vois de plus en plus parler de "scripts de construction" (ANT, Maven, Gradle, etc.) pour faire fonctionner un projet. D'après ce que j'ai compris, il s'agit d'instructions adressées au compilateur / éditeur de liens / fabricant de programme magique qui spécifient les détails de la configuration - minuties.
Je me souviens d’avoir écrit des fichiers makefile à l’école, mais je ne voyais alors aucun avantage particulier (nous ne les utilisions que pour écrire dans un terminal Unix, où il n’y avait pas d’IDE avec son bouton "build" bien pratique). Au-delà de cela, j'ai vu d'autres questions ici qui expliquent comment les scripts de génération peuvent faire plus que créer votre programme: ils peuvent exécuter des tests unitaires ainsi que des ressources sécurisées indépendamment de la machine hôte .
Je ne peux m'empêcher de penser qu'il est important de comprendre les scripts de génération en tant que développeur, mais j'aimerais une explication significative. pourquoi devrais-je utiliser / écrire des scripts de construction?
Les responsabilités de Build Script et Build Server décrivent le rôle qu’il joue dans un cadre plus large. Je recherche les avantages spécifiques offerts par un script de construction par rapport à la commande "build / run" d'un IDE ou à des méthodes similaires.
important to understand as a developer
, mais certainement pas toujours. Même dans les environnements où les scripts de construction sont des exigences pratiques, de nombreux "développeurs" ne s'en soucient pas du tout. Mais les scripts sont alors importants pour les «constructeurs» plutôt que pour les développeurs. Aux derniers endroits où j'ai travaillé, la plupart des développeurs n'avaient pratiquement aucune connexion pour créer des scripts.