Have an amazing solution built in RAD Studio? Let us know. Looking for discounts? Visit our Special Offers page!
Nouvelles

Présentation de l’assistant Delphi Upgrade Advisor

rad13advisor cover

Le nouvel assistant Delphi Upgrade Advisor de RAD Studio 13 permet aux développeurs d’identifier les modifications importantes apportées à la configuration et au code du projet, améliorant ainsi considérablement le temps de compilation et l’expérience globale des outils de code. L’assistant est disponible sous forme de paquet GetIt séparé. Une fois installé, il ajoute un élément de menu à l’IDE.

En plus de fournir des suggestions spécifiques, l’assistant Delphi Upgrade Advisor est accompagné de scripts reFind que vous pouvez utiliser pour nettoyer les clauses uses de votre projet.

Comment l’installer

Le paquet Delphi Projects Upgrade Advisor est disponible dans le gestionnaire de paquets GetIt pour les clients disposant d’un abonnement de mise à jour actif :

rad13advisor 01

Une fois installé, vous trouverez un nouvel élément de menu sous Outils, comme illustré ici :

rad13advisor 02

L’assistant

L’assistant fonctionne sur le projet actif. C’est pourquoi, avant de l’activer, vous devez ouvrir un projet existant que vous souhaitez tester. En général, vous devez ouvrir un ancien projet, et non un projet créé avec RAD Studio 13 ou 12, car ceux-ci ne contiennent probablement pas les anciens styles de codage qui méritent d’être corrigés.

Voici l’interface utilisateur de l’assistant :

rad13advisor 03

Comme vous pouvez le constater, l’assistant propose 4 opérations différentes que vous pouvez activer ou désactiver. Trois d’entre elles agissent directement sur le projet et la configuration de l’IDE. La quatrième nécessite de générer au préalable un fichier séparé. Passons en revue chacune de ces options.

Vérifier les chemins d’accès non valides

La présence de chemins d’accès non valides dans le chemin de recherche ou de bibliothèque peut ralentir la compilation, car les appels du système d’exploitation pour vérifier ou essayer d’ouvrir un emplacement non valide sont coûteux. Il s’agit d’un problème relativement mineur, mais avec de nombreux chemins d’accès non valides et des centaines d’unités à rechercher, cela peut affecter les performances. Voici un exemple de résultat :

Comme vous pouvez le constater, un chemin d’accès invalide a été détecté dans le chemin de recherche du projet. Nous vous recommandons de supprimer tout dossier illégal de vos configurations.

Alias d’unité

Les Alias d’unité ont été introduits dans Delphi 2 pour assurer la compatibilité avec Delphi 1 et sont restés une configuration prédéfinie pour les nouveaux projets pendant de nombreuses années. Si vous avez conservé d’anciens projets et les avez transférés vers des versions plus récentes, il se peut que cette configuration résiduelle soit encore présente, ce qui oblige le compilateur à effectuer des vérifications très fréquentes lorsque vous utilisez des unités.

Au fil des ans, d’autres alias d’unités ont été ajoutés pour pallier les changements dans la structure des unités. Voici à nouveau un exemple de résultat pour un ancien projet :

Nous vous recommandons de remplacer les noms d’unité par les noms corrects et de supprimer les configurations d’alias d’unité dans les options du projet. Pour remplacer les unités, vous pouvez utiliser le script reFind spécifique inclus dans le paquet GetIt de l’assistant et décrit plus loin.

Noms d’unités non qualifiés

Le troisième test concerne les noms d’unités non qualifiés, tels que « uses Forms » plutôt que « uses VCL.Forms ». Le fait de devoir essayer tous les préfixes pour toutes les unités alourdit considérablement le compilateur. Nous vous recommandons donc de procéder à un nettoyage. Notez que l’outil ne recherche pas les noms d’unités non qualifiés dans le code réel. Il vérifie la configuration du projet et recommande de supprimer cette entrée :
Voici un exemple de résultat :

Une fois cette entrée supprimée, vous obtiendrez probablement des erreurs telles que :

Une fois encore, pour corriger les noms d’unité dans les instructions uses, vous pouvez utiliser le script reFind spécifique inclus dans le paquet GetIt de l’assistant et décrit plus loin.

Références circulaires aux unités

La quatrième option consiste à vérifier les références circulaires aux unités. Dans ce cas, le processus comporte deux étapes. Vous devez d’abord activer la génération du fichier GraphViz dans les options du compilateur (voir https://docwiki.embarcadero.com/RADStudio/Florence/en/GraphViz_file_export_for_the_Delphi_Compiler), compiler le projet, puis sélectionner le fichier dans l’assistant.

Voici un exemple de résultat, à l’exclusion des bibliothèques système (vous pouvez également exclure les bibliothèques VCL du fichier GraphViz à l’aide du paramètre supplémentaire –graphviz-exclude).

En examinant le fichier GraphViz, l’assistant peut repérer les cycles et les afficher, ce qui est très complexe à faire pour un graphique très volumineux.

Certaines utilisations des cycles unitaires sont inévitables, mais vous devez examiner les cycles dans vos applications et déterminer ceux qui peuvent être évités en améliorant l’organisation et l’architecture du code. D’une manière générale, c’est un bon exercice qui vous aidera à supprimer les dépendances entre les modules.

L’assistant, encore une fois

Voici l’assistant en action :

rad13advisor 04

Le script ReFind pour les clauses uses

Un fichier supplémentaire est inclus dans le paquet GetIt et se trouve dans le dossier du paquet (dossier accessible via une nouvelle commande dans la boîte de dialogue du gestionnaire de paquets GetIt). Ce fichier s’appelle RenameUnits.txt et c’est un script que vous pouvez transmettre à l’outil reFind pour convertir les unités, qu’il s’agisse d’alias ou d’unités non qualifiées. Le script (que vous pouvez bien entendu adapter aux besoins spécifiques de votre projet) contient des centaines de lignes du type :

Nous vous recommandons d’exécuter reFind avec ce script sur l’ensemble de votre projet, après avoir fait une copie de la source originale. Une fois cela fait, vous devriez pouvoir supprimer les paramètres du projet signalés par l’assistant et obtenir une application qui se compile un peu plus rapidement.

Conclusion

Le Delphi Projects Upgrade Advisor peut vous aider à nettoyer les anciennes applications Delphi (et les plus volumineuses), afin que leur code plus moderne puisse être traité plus rapidement par le compilateur (et le moteur DelphiLSP). Au fil des ans, nous avons vu certains clients disposant d’applications volumineuses bénéficier de transformations similaires, et nous avons désormais publié les outils qui vous aideront à faire de même beaucoup plus rapidement.

What What's New in InterBase 15 See What's New in RAD Studio 13 Florence The AI Codecamp: Learn, Code, Create

Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder.
Design. Code. Compile. Deploy.
Start Free Trial   Upgrade Today

   Free Delphi Community Edition   Free C++Builder Community Edition

Leave a Reply

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.

IN THE ARTICLES