La standardisation de l'application s'appuie


Philip Brown introduit sa colonne et explique comment s'assurer que vos applications sont compilés correctement.
la Standardisation de l'Application crée
j'espère que je serai capable d'en faire un intéressant et stimulant de la série, explorer les nombreuses facettes de Delphi développement. Tout d'abord, permettez-moi de me présenter. Je suis un consultant en TI et active programmeur pendant près de deux décennies, juste à temps pour attraper la disparition de la carte perforée et annoncent l'avènement de relativement accessible, bon marché et de puissance de calcul. Au cours de ces années, j'ai utilisé de nombreuses langues et il est ma conviction que Delphi est le meilleur usage général Windows outil de développement actuellement disponibles, avec un excellent mélange de puissantes constructions, les outils de l'interface utilisateur et de soutien à forte orientée objet, les techniques de développement.
Pas de balles d'argent
C'est une caractéristique de notre industrie que de nombreux fournisseurs d'essayer de nous vendre de la 'silver bullet' solutions de développement d'applications. Nous sommes constamment bombardés d'informations de tenter de nous persuader que si nous utilisons cette société de l'outil, de la société middleware ou le lendemain de l'entreprise de base de données, puis tous les sujets autour du développement de l'application disparaît. Pour la nuit, nous serons en mesure de produire des systèmes complexes dans les délais et dans le budget, même en présence de l'insuffisance de la documentation relative à la conception et à l'évolution des exigences des utilisateurs. Au fil des ans de haut niveau, des langues, du génie logiciel, des méthodologies structurées, 4GL, l'orientation de l'objet, client/serveur, middleware, rapide et la conception d'application Java ont tous été vantés par leurs évangélistes de solutions complètes pour le développement de logiciels et la liste continue. L'amère expérience montre qu'il n'existe pas de solution magique et c'est à nous, que l'application de designers et de développeurs, d'accepter que, dans un monde où les clients ont de plus en plus des attentes de plus en plus de systèmes complexes, nous devons nous efforçons continuellement d'améliorer la qualité de notre travail. Ces jours-ci, quelques applications de vivre dans l'isolement et doit interagir avec d'autres systèmes de façon complexe. Développement d'applications modernes est de plus en plus difficile plutôt que facile, et il est faux de supposer que toute une approche fournit la réponse.
Mon intérêt particulier, qui, je l'espère, à explorer dans le présent et l'avenir colonnes, est de promouvoir le développement d'une meilleure applications Delphi. Supposons deux équipes de programmation sont donné le même court pour développer une application à partir d'un des systèmes complets document d'exigences, et que les deux produire un bug-programme libre (à noter que nous sommes déjà dans les domaines du développement de logiciels, fantasy). Deux différents, mais fonctionnellement identiques programmes séparés en termes de qualité? Ce qui rend une application mieux que l'autre?
Dans la pratique, chaque décision prise au cours du développement aura un impact sur la qualité du programme. Interface utilisateur décisions auront une incidence sur la façon conviviale (ou hostile) le programme est. Apparemment, les choses simples comme des boutons avec des fonctions similaires ayant le même nom dans l'application, il peut avoir une incidence fondamentale sur la façon dont facilement les utilisateurs pourront se familiariser au fonctionnement du programme. Le choix de la base de données, la facilité d'installation, la compatibilité avec d'autres applications, même la mise en page de code à l'intérieur des unités et variable des conventions de nommage (ou l'absence) peuvent tous avoir un impact significatif ou de la perception ou mesurables concept de la qualité d'une application. Les développeurs et les utilisateurs seront tous de se former une opinion quant à l'importance relative de la qualité d'une application, sans nécessairement être en mesure d'identifier ou de justifier pourquoi ils ont pris ce point de vue. L'évaluation de la qualité d'un programme englobe pratiquement tous les aspects et la mise en œuvre de la décision rendue, et le but de cet article est de présenter et de discuter des moyens par lesquels la qualité des systèmes peut être augmenté de façon significative. Cela permettra de couvrir les concepts de style de l'interface utilisateur, la saisie des données et de la validation, le stockage persistant de l'information, et une grande quantité de temps sera consacré aux discussions sur l'architecture des programmes.
des Études ont montré que la plus importante contribution au cours des vingt dernières années en faveur de l'accroissement de la qualité du programme est le concept de la clandestinité. L'orientation de l'objet est l'expression la plus pure de ce concept et de cette colonne va promouvoir la bonne OO techniques tout au long de. Nous allons explorer la construction de vraiment orientée objet des systèmes et de démontrer comment ils mènent à des applications qui sont beaucoup plus rapides à développer et plus facile à maintenir. Le long de la façon dont nous allons défi accepté façons d'écrire Delphi programmes et de démontrer en quoi les approches alternatives sont souvent mieux.
la Cohérence est roi
Si il y a un seul moyen d'évaluer la qualité d'un programme, ma définition serait 'Est-il cohérent?' La cohérence peut être appliquée à pratiquement tous les aspects du programme, et dans presque tous les cas, il est préférable d'être plus cohérent que de moins en moins. Compatible avec quoi? Eh bien, cela dépend de ce qui est évalué. Envisager l'interface utilisateur: est-ce que chaque forme apparaissent à l'écran centré, ou sont quelques-uns à gauche au moment de la conception coordonnées? Sont tous les boutons de la même taille et apparaissent dans une cohérence horizontale ou verticale de l'avion? Chaque bouton 'OK' définir comme valeur par défaut pour la forme (et sont étiquetés 'Ok')? Faire toutes les formes de répondre correctement lorsque l'utilisateur change de Windows préférences pour la taille de la police et des couleurs? D'ailleurs, l'application ressemblent et se comportent comme les autres applications de Windows? Sont des icônes de barre d'outils, les mêmes que ceux dans d'autres applications qui remplissent une fonction similaire? Ont-ils tous une info-bulle? Sont des éléments similaires utilisés pour la même fonction dans l'application, ou un mélange éclectique de zones d'édition, masked edit, les calendriers et la date/heure sélecteur de contrôles utilisés pour la saisie de l'utilisateur de dates?
Une série de questions analogues peuvent être ciblées à tous les autres aspects du système. Faire toutes les tables et les champs ont les mêmes conventions de nommage? Le code source est indentation standard de la même façon dans chaque unité? Dans tous les cas, il est préférable que ces facteurs soient similaires tout au long de l'application. Cela importe beaucoup moins exactement normes qui ont été choisis, aussi longtemps que quelle que soit la norme choisie est omniprésent (même s'il existe souvent de meilleurs choix que les autres, et ceux-ci seront discutés).
Automatisation des Builds

Un petit, mais très important, facteur dans l'examen de la cohérence est de s'assurer que vous livrons toujours le même produit à vos clients (avec de nouvelles fonctionnalités intacte et quelques bugs supprimés, espérons-le). Élément fondamental de ce processus est le concept d'une génération. Ceci est défini comme la préparation de toutes les prestations d'un état connu avant leur expédition vers un client. Pour le plus trivial des applications de la prestation, peut-être un seul exécutable, mais pour les plus importants systèmes de construction peut inclure un certain nombre de fichiers exécutables, les bibliothèques de liens dynamiques, des fichiers d'aide, les fichiers de ressources, des informations de configuration, tables de base de données et ainsi de suite. Comment pouvons-nous nous assurer que tous ces fichiers sont créés correctement dans chaque génération, de sorte que toutes les modifications apportées depuis la dernière génération sont reflétées de manière appropriée? Juste le chargement de l'application en Delphi et en forçant un Construire Tous ne garantit pas que vous aurez toujours livrer une application appropriée de la suite.
Considérant seulement la situation pour Delphi exécutables, les paramètres du compilateur peut avoir été modifié depuis la dernière fois que vous avez fait une version de votre client. Si vous oubliez de changer ces paramètres (tels que la désactivation des symboles de débogage), vous allez livrer un de fondamentalement différent de l'application. Parfois, ce ne sera pas grave, mais si votre application repose sur un particulier de la taille de la pile ou de l'optimisation de la possibilité de faire fonctionner correctement, alors vous risquez de rencontrer des problèmes importants.
Toute demande de diffusion publique devrait avoir une documentation de processus de construction, de préférence un qui est complètement automatisé. La taille de l'application et du nombre de fichiers à être produites qui doit dicter la complexité de ce processus pour les applications simples d'un simple fichier batch peut être tout ce qui est nécessaire, mais dans des situations extrêmes d'un environnement dédié peut s'avérer nécessaire (le processus de génération de Windows NT utilisé pour prendre la meilleure partie de la journée sur un quadri-processeur de la machine).
Dans le Delphi monde, il y a un certain nombre d'options pour l'automatisation de la plupart des processus de génération: un fichier de commandes (DOS ou Windows Script) qui appelle la Delphi compilateur de ligne de commande, à l'aide d'un 'faire' de l'utilitaire ou une application personnalisée dédiée à la construction d'une suite de produits livrables.
Inprise fournir une version de la vénérable 'faire' de l'utilitaire avec Delphi. 'Faire' utilitaires fonctionnent à partir d'un fichier texte qui décrit les fichiers source sur laquelle la cible dépend, et les commande(s) requis pour la compilation. Dans les premiers jours de la programmation en C, l'utilisation de 'faire' des services publics était fondamental dans l'amélioration de la qualité de publié applications. Cependant, l'un des principaux avantages de 'faire' offrait une façon de décrire l'interdépendance des fichiers source C, quelque chose qui le Delphi (Pascal) 'utilise' clause de faire très bien. Par conséquent, l'apprentissage de la peu les arcanes de la syntaxe des fichiers sur lesquels 'faire' dépendent en a de moins en moins de bénéfices pour les programmeurs Delphi.
Pour de nombreux systèmes écrit avec Delphi, un seul fichier de commandes suffira pour un processus de construction. Ce fichier de commandes contient les commandes nécessaires pour s'assurer qu'un système complet est compilé. Cela devrait contenir non seulement les commandes pour compiler les fichiers de ressources et Delphi projets, mais aussi de s'assurer que le contrôle de version de la base de données est complète (vous utilisez un système de contrôle de code source, n'est-ce pas?)
la Figure 1 montre un exemple de commandes DOS script pour la compilation d'un projet particulier, en montrant quelques-uns des types d'entrées typiques dans un processus de construction. La première partie du script s'assure que tout le code source d'unités ont été archivé dans le contrôle de version de la base de données d'une étape primordiale pour prévenir la compilation d'un projet, tandis que les développeurs n'ont pas fait leurs changements à l'échelle mondiale. Le système de contrôle de version qui est présentée ici est SourceSafe, mais la quasi-totalité de qualité commerciale des systèmes peut être piloté à partir de la ligne de commande.
Après s'être assuré que tous les fichiers ont été archivés dans le code source du système, le code source complet est récupérée et stockée dans une nouvelle arborescence de répertoire sur la machine effectuant le construire. Évidemment, pour construire la dernière version du programme, tous les fichiers les plus récents sont nécessaires. Un point intéressant ici est qu'il est recommandé que si la machine effectuant le construire est également une station de travail du développeur, puis un répertoire différent de l'arbre est utilisé pour contenir le code source plutôt que celui utilisé par le développeur. La raison pour cela est que la construction sera généralement compiler l'application avec aucune des informations de débogage et la plupart des optimisations sur. Si le chemin d'accès du répertoire ont été partagés avec l'environnement de développement le programmeur aurait besoin de se rappeler de délivrer un Construire Tout pour éviter de liaison dans les unités qui serait difficile à déboguer.
après Avoir récupéré tous les derniers code source de l'application(s) doit ensuite être compilé. Pour Delphi projets de la version en ligne de commande du compilateur (qui se trouve dans le Delphi bin) appelé dcc32 doit être utilisé. Cette version du compilateur reconnaît de nombreux paramètres pour permettre un contrôle total de la ligne de commande. Alternativement, un ensemble d'options du compilateur peuvent être contrôlés à partir d'un fichier de configuration (.CFG) avec le même nom que le projet lui-même, qui est souvent plus visible de contrôle de la compilation. Notez que Delphi 5 remplace ce fichier à partir de l'environnement de développement, une autre bonne raison de garder les construire répertoire source distincte de celle du développement. Il est particulièrement utile drapeau (-E) pour dcc32 qui déplace le fichier dans un nouveau répertoire, généralement orienté vers un nouveau répertoire qui va contenir les fichiers compilés qui constituent la construction.
bien sûr, De nombreux systèmes sont constitués de fichiers supplémentaires tels que des fichiers de ressources, fichiers d'aide et ainsi de suite. Vous pouvez utiliser n'importe quel outils de ligne de commande sont adaptés pour compiler les fichiers cibles de nouveau, Delphi fournit un compilateur en ligne de commande pour les fichiers de ressources dans brcc32.
UN fichier batch DOS ou Windows Script peut être adéquate pour les systèmes plus petits, mais plus complexes nécessitant une logique complexe et le contrôle peuvent bénéficier d'avoir leur propre processus de construction de l'écrit comme une application personnalisée. De telles applications peuvent shell à la ligne de commande des versions de compilateur outils, mais conduisent souvent à travers une interface COM qui offre plus de souplesse et de contrôle. Dans les deux cas, le concept du processus de construction est le même - pour garantir que tous les fichiers sont compilés dans une et cohérente de l'état. Vous pouvez construire toutes les mesures que vous voulez dans votre processus de build - telles que la notification de l'élaboration ou de l'équipe QA par courriel que la compilation a réussi et qu'une nouvelle suite d'applications est prêt pour les essais ou de livraison.
C'est une bonne politique pour effectuer une génération à intervalles réguliers. Savoir quand une construction est en raison permet à l'équipe de développement à travailler vers cet objectif et de s'assurer qu'un ensemble cohérent d'unités sont enregistrés dans le contrôle de version de la suite. À moins que votre processus de création prend tellement de temps qu'il serait inapproprié, c'est une bonne règle pour empêcher tout travail sur l'application jusqu'à ce que la construction est terminée. Une fois la création terminée, il est d'usage d'exiger que tous les développeurs pour obtenir la version la plus récente de toutes les unités pour s'assurer qu'ils ne fonctionnent pas à partir de la date de code source. Le concept derrière un build, c'est qu'il ne fait pas partie du développement et processus de test - toutes les versions sont prévu pour compiler correctement et sans erreurs, et généralement sans avertissements. 'La rupture de la construction' en soumettant les modifications de code qui causent alors le processus de construction à l'échec doit être considérée comme un crime odieux pour être corrigées dès que possible.
Toutes les applications écrites pour une diffusion générale devraient avoir leur propre processus de génération automatique, garantissant l'existence d'un ensemble cohérent de prestations sont préparés chaque fois d'une version. Le mois prochain, nous allons nous intéresser à la valeur ajoutée des fonctionnalités qui peuvent être mis dans le processus de construction afin de faciliter le suivi des nombreuses versions de programmes co-existant 'dans la nature'.
Figure 1 - Exemple de commandes DOS script pour construire un seul exécutable et un fichier de ressource
Figure 2 - Exemple .CFG fichier de contrôle de Delphi application de la compilation
Suivant dans la série









La standardisation de l'application s'appuie


La standardisation de l'application s'appuie : Plusieurs milliers de conseils pour vous faciliter la vie.


Philip Brown introduit sa colonne et explique comment s'assurer que vos applications sont compiles correctement.
la Standardisation de l'Application cree
j'espere que je serai capable d'en faire un interessant et stimulant de la serie, explorer les nombreuses facettes de Delphi developpement. Tout d'abord, permettez-moi de me presenter. Je suis un consultant en TI et active programmeur pendant pres de deux decennies, juste a temps pour attraper la disparition de la carte perforee et annoncent l'avenement de relativement accessible, bon marche et de puissance de calcul. Au cours de ces annees, j'ai utilise de nombreuses langues et il est ma conviction que Delphi est le meilleur usage general Windows outil de developpement actuellement disponibles, avec un excellent melange de puissantes constructions, les outils de l'interface utilisateur et de soutien a forte orientee objet, les techniques de developpement.
Pas de balles d'argent
C'est une caracteristique de notre industrie que de nombreux fournisseurs d'essayer de nous vendre de la 'silver bullet' solutions de developpement d'applications. Nous sommes constamment bombardes d'informations de tenter de nous persuader que si nous utilisons cette societe de l'outil, de la societe middleware ou le lendemain de l'entreprise de base de donnees, puis tous les sujets autour du developpement de l'application disparaît. Pour la nuit, nous serons en mesure de produire des systemes complexes dans les delais et dans le budget, meme en presence de l'insuffisance de la documentation relative a la conception et a l'evolution des exigences des utilisateurs. Au fil des ans de haut niveau, des langues, du genie logiciel, des methodologies structurees, 4GL, l'orientation de l'objet, client/serveur, middleware, rapide et la conception d'application Java ont tous ete vantes par leurs evangelistes de solutions completes pour le developpement de logiciels et la liste continue. L'amere experience montre qu'il n'existe pas de solution magique et c'est a nous, que l'application de designers et de developpeurs, d'accepter que, dans un monde ou les clients ont de plus en plus des attentes de plus en plus de systemes complexes, nous devons nous efforçons continuellement d'ameliorer la qualite de notre travail. Ces jours-ci, quelques applications de vivre dans l'isolement et doit interagir avec d'autres systemes de façon complexe. Developpement d'applications modernes est de plus en plus difficile plutot que facile, et il est faux de supposer que toute une approche fournit la reponse.
Mon interet particulier, qui, je l'espere, a explorer dans le present et l'avenir colonnes, est de promouvoir le developpement d'une meilleure applications Delphi. Supposons deux equipes de programmation sont donne le meme court pour developper une application a partir d'un des systemes complets document d'exigences, et que les deux produire un bug-programme libre (a noter que nous sommes deja dans les domaines du developpement de logiciels, fantasy). Deux differents, mais fonctionnellement identiques programmes separes en termes de qualite? Ce qui rend une application mieux que l'autre?
Dans la pratique, chaque decision prise au cours du developpement aura un impact sur la qualite du programme. Interface utilisateur decisions auront une incidence sur la façon conviviale (ou hostile) le programme est. Apparemment, les choses simples comme des boutons avec des fonctions similaires ayant le meme nom dans l'application, il peut avoir une incidence fondamentale sur la façon dont facilement les utilisateurs pourront se familiariser au fonctionnement du programme. Le choix de la base de donnees, la facilite d'installation, la compatibilite avec d'autres applications, meme la mise en page de code a l'interieur des unites et variable des conventions de nommage (ou l'absence) peuvent tous avoir un impact significatif ou de la perception ou mesurables concept de la qualite d'une application. Les developpeurs et les utilisateurs seront tous de se former une opinion quant a l'importance relative de la qualite d'une application, sans necessairement etre en mesure d'identifier ou de justifier pourquoi ils ont pris ce point de vue. L'evaluation de la qualite d'un programme englobe pratiquement tous les aspects et la mise en œuvre de la decision rendue, et le but de cet article est de presenter et de discuter des moyens par lesquels la qualite des systemes peut etre augmente de façon significative. Cela permettra de couvrir les concepts de style de l'interface utilisateur, la saisie des donnees et de la validation, le stockage persistant de l'information, et une grande quantite de temps sera consacre aux discussions sur l'architecture des programmes.
des Etudes ont montre que la plus importante contribution au cours des vingt dernieres annees en faveur de l'accroissement de la qualite du programme est le concept de la clandestinite. L'orientation de l'objet est l'expression la plus pure de ce concept et de cette colonne va promouvoir la bonne OO techniques tout au long de. Nous allons explorer la construction de vraiment orientee objet des systemes et de demontrer comment ils menent a des applications qui sont beaucoup plus rapides a developper et plus facile a maintenir. Le long de la façon dont nous allons defi accepte façons d'ecrire Delphi programmes et de demontrer en quoi les approches alternatives sont souvent mieux.
la Coherence est roi
Si il y a un seul moyen d'evaluer la qualite d'un programme, ma definition serait 'Est-il coherent?' La coherence peut etre appliquee a pratiquement tous les aspects du programme, et dans presque tous les cas, il est preferable d'etre plus coherent que de moins en moins. Compatible avec quoi? Eh bien, cela depend de ce qui est evalue. Envisager l'interface utilisateur: est-ce que chaque forme apparaissent a l'ecran centre, ou sont quelques-uns a gauche au moment de la conception coordonnees? Sont tous les boutons de la meme taille et apparaissent dans une coherence horizontale ou verticale de l'avion? Chaque bouton 'OK' definir comme valeur par defaut pour la forme (et sont etiquetes 'Ok')? Faire toutes les formes de repondre correctement lorsque l'utilisateur change de Windows preferences pour la taille de la police et des couleurs? D'ailleurs, l'application ressemblent et se comportent comme les autres applications de Windows? Sont des icones de barre d'outils, les memes que ceux dans d'autres applications qui remplissent une fonction similaire? Ont-ils tous une info-bulle? Sont des elements similaires utilises pour la meme fonction dans l'application, ou un melange eclectique de zones d'edition, masked edit, les calendriers et la date/heure selecteur de controles utilises pour la saisie de l'utilisateur de dates?
Une serie de questions analogues peuvent etre ciblees a tous les autres aspects du systeme. Faire toutes les tables et les champs ont les memes conventions de nommage? Le code source est indentation standard de la meme façon dans chaque unite? Dans tous les cas, il est preferable que ces facteurs soient similaires tout au long de l'application. Cela importe beaucoup moins exactement normes qui ont ete choisis, aussi longtemps que quelle que soit la norme choisie est omnipresent (meme s'il existe souvent de meilleurs choix que les autres, et ceux-ci seront discutes).
Automatisation des Builds

Un petit, mais tres important, facteur dans l'examen de la coherence est de s'assurer que vous livrons toujours le meme produit a vos clients (avec de nouvelles fonctionnalites intacte et quelques bugs supprimes, esperons-le). Element fondamental de ce processus est le concept d'une generation. Ceci est defini comme la preparation de toutes les prestations d'un etat connu avant leur expedition vers un client. Pour le plus trivial des applications de la prestation, peut-etre un seul executable, mais pour les plus importants systemes de construction peut inclure un certain nombre de fichiers executables, les bibliotheques de liens dynamiques, des fichiers d'aide, les fichiers de ressources, des informations de configuration, tables de base de donnees et ainsi de suite. Comment pouvons-nous nous assurer que tous ces fichiers sont crees correctement dans chaque generation, de sorte que toutes les modifications apportees depuis la derniere generation sont refletees de maniere appropriee? Juste le chargement de l'application en Delphi et en forçant un Construire Tous ne garantit pas que vous aurez toujours livrer une application appropriee de la suite.
Considerant seulement la situation pour Delphi executables, les parametres du compilateur peut avoir ete modifie depuis la derniere fois que vous avez fait une version de votre client. Si vous oubliez de changer ces parametres (tels que la desactivation des symboles de debogage), vous allez livrer un de fondamentalement different de l'application. Parfois, ce ne sera pas grave, mais si votre application repose sur un particulier de la taille de la pile ou de l'optimisation de la possibilite de faire fonctionner correctement, alors vous risquez de rencontrer des problemes importants.
Toute demande de diffusion publique devrait avoir une documentation de processus de construction, de preference un qui est completement automatise. La taille de l'application et du nombre de fichiers a etre produites qui doit dicter la complexite de ce processus pour les applications simples d'un simple fichier batch peut etre tout ce qui est necessaire, mais dans des situations extremes d'un environnement dedie peut s'averer necessaire (le processus de generation de Windows NT utilise pour prendre la meilleure partie de la journee sur un quadri-processeur de la machine).
Dans le Delphi monde, il y a un certain nombre d'options pour l'automatisation de la plupart des processus de generation: un fichier de commandes (DOS ou Windows Script) qui appelle la Delphi compilateur de ligne de commande, a l'aide d'un 'faire' de l'utilitaire ou une application personnalisee dediee a la construction d'une suite de produits livrables.
Inprise fournir une version de la venerable 'faire' de l'utilitaire avec Delphi. 'Faire' utilitaires fonctionnent a partir d'un fichier texte qui decrit les fichiers source sur laquelle la cible depend, et les commande(s) requis pour la compilation. Dans les premiers jours de la programmation en C, l'utilisation de 'faire' des services publics etait fondamental dans l'amelioration de la qualite de publie applications. Cependant, l'un des principaux avantages de 'faire' offrait une façon de decrire l'interdependance des fichiers source C, quelque chose qui le Delphi (Pascal) 'utilise' clause de faire tres bien. Par consequent, l'apprentissage de la peu les arcanes de la syntaxe des fichiers sur lesquels 'faire' dependent en a de moins en moins de benefices pour les programmeurs Delphi.
Pour de nombreux systemes ecrit avec Delphi, un seul fichier de commandes suffira pour un processus de construction. Ce fichier de commandes contient les commandes necessaires pour s'assurer qu'un systeme complet est compile. Cela devrait contenir non seulement les commandes pour compiler les fichiers de ressources et Delphi projets, mais aussi de s'assurer que le controle de version de la base de donnees est complete (vous utilisez un systeme de controle de code source, n'est-ce pas?)
la Figure 1 montre un exemple de commandes DOS script pour la compilation d'un projet particulier, en montrant quelques-uns des types d'entrees typiques dans un processus de construction. La premiere partie du script s'assure que tout le code source d'unites ont ete archive dans le controle de version de la base de donnees d'une etape primordiale pour prevenir la compilation d'un projet, tandis que les developpeurs n'ont pas fait leurs changements a l'echelle mondiale. Le systeme de controle de version qui est presentee ici est SourceSafe, mais la quasi-totalite de qualite commerciale des systemes peut etre pilote a partir de la ligne de commande.
Apres s'etre assure que tous les fichiers ont ete archives dans le code source du systeme, le code source complet est recuperee et stockee dans une nouvelle arborescence de repertoire sur la machine effectuant le construire. Evidemment, pour construire la derniere version du programme, tous les fichiers les plus recents sont necessaires. Un point interessant ici est qu'il est recommande que si la machine effectuant le construire est egalement une station de travail du developpeur, puis un repertoire different de l'arbre est utilise pour contenir le code source plutot que celui utilise par le developpeur. La raison pour cela est que la construction sera generalement compiler l'application avec aucune des informations de debogage et la plupart des optimisations sur. Si le chemin d'acces du repertoire ont ete partages avec l'environnement de developpement le programmeur aurait besoin de se rappeler de delivrer un Construire Tout pour eviter de liaison dans les unites qui serait difficile a deboguer.
apres Avoir recupere tous les derniers code source de l'application(s) doit ensuite etre compile. Pour Delphi projets de la version en ligne de commande du compilateur (qui se trouve dans le Delphi bin) appele dcc32 doit etre utilise. Cette version du compilateur reconnaît de nombreux parametres pour permettre un controle total de la ligne de commande. Alternativement, un ensemble d'options du compilateur peuvent etre controles a partir d'un fichier de configuration (.CFG) avec le meme nom que le projet lui-meme, qui est souvent plus visible de controle de la compilation. Notez que Delphi 5 remplace ce fichier a partir de l'environnement de developpement, une autre bonne raison de garder les construire repertoire source distincte de celle du developpement. Il est particulierement utile drapeau (-E) pour dcc32 qui deplace le fichier dans un nouveau repertoire, generalement oriente vers un nouveau repertoire qui va contenir les fichiers compiles qui constituent la construction.
bien sûr, De nombreux systemes sont constitues de fichiers supplementaires tels que des fichiers de ressources, fichiers d'aide et ainsi de suite. Vous pouvez utiliser n'importe quel outils de ligne de commande sont adaptes pour compiler les fichiers cibles de nouveau, Delphi fournit un compilateur en ligne de commande pour les fichiers de ressources dans brcc32.
UN fichier batch DOS ou Windows Script peut etre adequate pour les systemes plus petits, mais plus complexes necessitant une logique complexe et le controle peuvent beneficier d'avoir leur propre processus de construction de l'ecrit comme une application personnalisee. De telles applications peuvent shell a la ligne de commande des versions de compilateur outils, mais conduisent souvent a travers une interface COM qui offre plus de souplesse et de controle. Dans les deux cas, le concept du processus de construction est le meme - pour garantir que tous les fichiers sont compiles dans une et coherente de l'etat. Vous pouvez construire toutes les mesures que vous voulez dans votre processus de build - telles que la notification de l'elaboration ou de l'equipe QA par courriel que la compilation a reussi et qu'une nouvelle suite d'applications est pret pour les essais ou de livraison.
C'est une bonne politique pour effectuer une generation a intervalles reguliers. Savoir quand une construction est en raison permet a l'equipe de developpement a travailler vers cet objectif et de s'assurer qu'un ensemble coherent d'unites sont enregistres dans le controle de version de la suite. A moins que votre processus de creation prend tellement de temps qu'il serait inapproprie, c'est une bonne regle pour empecher tout travail sur l'application jusqu'a ce que la construction est terminee. Une fois la creation terminee, il est d'usage d'exiger que tous les developpeurs pour obtenir la version la plus recente de toutes les unites pour s'assurer qu'ils ne fonctionnent pas a partir de la date de code source. Le concept derriere un build, c'est qu'il ne fait pas partie du developpement et processus de test - toutes les versions sont prevu pour compiler correctement et sans erreurs, et generalement sans avertissements. 'La rupture de la construction' en soumettant les modifications de code qui causent alors le processus de construction a l'echec doit etre consideree comme un crime odieux pour etre corrigees des que possible.
Toutes les applications ecrites pour une diffusion generale devraient avoir leur propre processus de generation automatique, garantissant l'existence d'un ensemble coherent de prestations sont prepares chaque fois d'une version. Le mois prochain, nous allons nous interesser a la valeur ajoutee des fonctionnalites qui peuvent etre mis dans le processus de construction afin de faciliter le suivi des nombreuses versions de programmes co-existant 'dans la nature'.
Figure 1 - Exemple de commandes DOS script pour construire un seul executable et un fichier de ressource
Figure 2 - Exemple .CFG fichier de controle de Delphi application de la compilation
Suivant dans la serie


La standardisation de l'application s'appuie

La standardisation de l'application s'appuie : Plusieurs milliers de conseils pour vous faciliter la vie.
Recommander aux amis
  • gplus
  • pinterest

Messages récents

Commentaire

Laisser un commentaire

évaluation