Entretien avec Sébastien Julliand, Lead Developer Software Engineer chez Arcad Software
[Narrateur] On parle beaucoup de Visual Studio Code (VS Code) sur IBM i. Pourquoi est-ce un sujet aussi populaire ?
[Sébastien] VS Code est en train de briser les frontières sur IBM i parce qu’il introduit un tout nouvel environnement de développement facile à utiliser qui est rapide, léger, open-source et gratuit.
C’est un outil universel. VS Code est l’éditeur que les ingénieurs connaissent aujourd’hui. Il est soutenu par une énorme communauté active (entre 14 et 21 millions d’utilisateurs, selon les personnes interrogées). Il fonctionne parfaitement sous Windows, macOS et Linux pour tout ce qui concerne le développement d’applications web et mobiles, la programmation backend et la data science. Il est facilement extensible et il y a une tonne d’extensions disponibles qui sont faciles à installer et à personnaliser.
« L’objectif d’IBM i est de transformer l’expérience du développeur – moderniser la façon dont les applications sont développées – afin que les nouveaux développeurs puissent travailler aux côtés des experts IBM i déjà présents et contribuer à ces applications IBM i qui font fonctionner les entreprises depuis des décennies. »
VS Code est idéal pour un développeur full-stack. Imaginons que vous ayez une application composée d’un backend et d’un front-end Java ou Node.js. Vous pouvez travailler sur les deux projets en même temps dans le même espace de travail de VS Code, sans aucun problème. Et à partir de cette interface unique, le développeur peut passer du code Java ou Python à RPG, SQL ou tout autre langage.
Et avec la contribution d’ARCAD à CodeLens, vous pouvez voir les dépendances entre ce front-end Java ou Node.js et le back-end RPG à partir de votre code. Tout est intégré.
« Journée dans la vie d’un développeur IBM i en VS Code «
[Nar.] Qu’est-ce que l’extension ‘Elias’ et le ‘mode projet’ ?
[Seb.] Elias est notre nouvelle extension VS Code dédiée à la gestion de projets. Les développeurs travaillent dans ce que nous appelons le « mode projet » à partir de l’explorateur de fichiers, modifiant et construisant les fichiers sources IBM i à la manière d’un « vrai Git ».
« Avec le mode projet, comme sur n’importe quelle autre plateforme, les développeurs IBM i peuvent collaborer sur une ou plusieurs branches, chacune avec son propre espace de travail, et profiter du processus optimisé de Git pour la résolution des conflits. »
Le « mode projet » dans ARCAD Elias
A l’origine, nous avons créé Elias pour apporter des fonctionnalités DevOps et CI/CD d’ARCAD à Merlin d’IBM. Nous savons que de nombreux clients n’ont pas et n’auront pas Merlin, nous devions donc améliorer Elias pour le rendre disponible à « tout utilisateur de VS Code ».
Vous pouvez télécharger Arcad Elias sur la place de marché VS Code dès aujourd’hui.
[Nar.] Quelle est la différence entre le mode projet d’Elias et le mode distribué ou centralisé de Git ?
[Seb.] De nombreuses personnes nous posent cette question. En fait, le mode projet améliore le mode distribué de Git en ce sens que chaque développeur travaille dans sa propre « version sandbox », ce qui lui permet de construire et de tester les changements à partir de son espace de travail local avant de les pousser sur le référentiel distant. Ces changements sont ensuite intégrés dans la version connectée à la branche lors du build de la branche.
En revanche, en mode centralisé, les développeurs travaillent sur une version d’une branche et tout est intégré dans un même fichier. Avec le mode projet, vous bénéficiez de tous les avantages d’une véritable méthodologie de branchement Git sur IBM i.
En fait, nous avons gardé Elias flexible pour que les développeurs puissent choisir de travailler soit en mode projet, soit en mode centralisé. C’est un choix qui est propre à chaque entreprise.
Certaines entreprises ont choisi le mode centralisé car il est plus proche du contrôle de version classique et évite aux développeurs d’interagir directement avec Git. Une autre raison est que le code source « reste au sein de l’entreprise » plutôt que d’être cloné sur l’ordinateur portable de chaque développeur. Cependant, cela annule les véritables avantages de l’utilisation de Git. Avec le mode centralisé, les développeurs doivent toujours extraire des composants d’un référentiel, ce qui empêche les autres développeurs de travailler également sur ce composant et crée un « verouillage pessimiste ».
« Désormais, avec le « mode projet » dans Elias, les développeurs peuvent travailler de manière distribuée, bénéficier de toutes les fonctionnalités de Git comme le fusionnement à trois, la traçabilité de chaque commit, les pull requests et ainsi de suite. Ils peuvent également déclencher un pipeline CI/CD, un build intelligent, exécuter des tests et toutes les autres automatisations disponibles dans la solution ARCAD for DevOps. »
Et si l’exposition du code source en dehors d’un réseau privé est considérée comme un problème, il existe de multiples façons d’y remédier, comme les machines virtuelles ou l’exécution de VS Code dans des interfaces basées sur un navigateur comme GitHub Codespaces. En hébergeant l’environnement de développement sur des serveurs tout en conservant le code source sur place, les développeurs peuvent bénéficier de la liberté du mode projet sans compromettre la sécurité.
« Le mode projet permet un flux de travail plus flexible et plus efficace. Les développeurs peuvent organiser leur code dans des dossiers avec des noms significatifs et regrouper les programmes logiquement selon leur fonction. Cela améliore la compréhension du code et constitue une étape plus facile pour les jeunes développeurs. »
[Nar.] Comment commencer à travailler en « mode projet » ?
[Seb.] Il y a donc cette notion de » projet IBM i » dans VS Code. Lorsque les développeurs travaillent sur des projets IBM i et ARCAD, ils clonent le référentiel et travaillent sur l’ensemble de l’application. Vous avez l’ensemble du « projet » dans votre explorateur. Vous ne vous contentez pas d’extraire un composant pour travailler dessus. Vous avez toute l’application dans votre espace de travail.
« Le mode projet est flexible. Il est facile à utiliser et vous n’avez pas à vous soucier des spécificités IBM i sous-jacentes. Vous clonez le référentiel, vous commencez à travailler sur une branche, vous demandez un build ou une compilation et l’extension Elias s’en charge pour vous. ARCAD prend ensuite le relais et gère la construction et la compilation, les références croisées et toutes ces choses. C’est très simple. En fait, il faut cinq minutes pour démarrer un nouveau projet. »
[Nar.]Quel est le meilleur modèle de branchement Git lorsque l’on utilise VS Code ?
[Seb.] Le mode projet lui-même ne vous permet pas, par défaut, de faire des modifications sur la branche principale ou la branche master. La meilleure façon de travailler est donc d’avoir une branche release à partir de laquelle vous créez des branches de fonctionnalités sur lesquelles vous travaillez. Lorsque vous avez terminé votre fonctionnalité, vous fusionnez avec la branche de publication, construisez la publication et c’est tout.
Mais, en fin de compte, vous pouvez travailler comme vous le souhaitez avec le mode projet. Si vous préférez avoir une branche principale et créer des branches à partir de celle-ci, alors fusionnez-les dans la branche principale. C’est tout à fait possible. Mais typiquement, dans une méthode de travail agile, vous aurez des branches de fonctionnalités très éphémères où vous travaillerez sur une seule tâche. Ensuite, vous pousserez cette branche, la construirez, la testerez et une fois que vous serez satisfait, vous créerez une « pull request » pour qu’elle puisse être fusionnée avec la branche principale.
[Nar.] Qu’apporte ARCAD à VS Code ?
[Seb.] L’un des principaux avantages de l’utilisation d’ARCAD avec VS Code est l’ensemble des dépendances de métadonnées sur lesquelles ARCAD est construit. Maintenant, avec Elias et Observer, vous pouvez avoir des références croisées pratiques directement pendant l’édition, à partir de « CodeLens » de VS Code.
- CodeLens
Nous fournissons actuellement trois types de CodeLens pour IBM i : fichier, procédure exportée et procédure importée. Supposons que vous travaillez sur un fichier qui n’est pas encore disponible pour SQL, mais que vous le déclarez quand même dans un programme. Avec CodeLens, vous pouvez accéder directement à la définition du fichier, aux champs et aux références croisées à partir de la source elle-même. De même, vous pouvez vérifier la définition d’une procédure ILE à l’intérieur même du code source que vous modifiez, sans avoir à la rechercher dans le projet.
Déclaration de la procédure CodeLens dans ARCAD Elias
Vous pouvez voir d’où la procédure est importée et ses références croisées. Et si vous travaillez sur le module qui exporte ces procédures, vous pouvez voir partout où la procédure est utilisée dans le projet à partir du code source du module lui-même. C’est très, très utile. Vous avez tout en un seul endroit.
De plus, ARCAD vous donne des références croisées entre les langages de systèmes ouverts et les projets ARCAD. Il est donc facile de voir l’impact d’une modification de l’application back-end sur le front-end, comme une classe Java qui accède à cette table que vous êtes sur le point de modifier.
- Smart Build
Une autre fonctionnalité intéressante d’ARCAD est le « smart build ». Si vous compilez un fichier, Builder recompile les dépendances pour vous, ainsi que tous les programmes dépendants. Il n’est pas nécessaire de compiler l’ensemble de l’application et il n’y a pas de makefile à maintenir. C’est la principale force de Builder. Les références croisées sont mises à jour en temps réel, de sorte que vous n’avez pas à vous soucier de maintenir manuellement les dépendances entre vos programmes et vos programmes de service, vos fichiers et vos procédures, etc.
- Qualité du code
Vous pouvez également utiliser l’extension ARCAD Transformer de VS Code pour convertir tout ancien RPG en Free Form (y compris les GOTO !). L’extension CodeChecker vérifie la qualité du code et les failles de sécurité.
Elias lui-même est extensible. Il sert de base aux extensions ARCAD pour VS Code. Ces extensions s’appuient sur le serveur API REST d’Elias pour améliorer les capacités de Code for IBM i. En tant que produit ARCAD, Elias offre la flexibilité d’étendre et d’améliorer les fonctionnalités selon les besoins. Le serveur REST API peut également être utilisé pour d’autres projets, et ses services web sont bien documentés, de sorte que les clients peuvent créer leurs propres outils en utilisant l’API REST.
[Nar.] VS Code est-il vraiment un changement de cap, ou juste une tendance passagère sur IBM i ?
[Seb.] Je pense que VS Code EST un changement de cap pour IBM i parce qu’il représente une avancée majeure dans l’expérience des développeurs. Vous l’installez, il démarre immédiatement et fonctionne. Il ne consomme pas toutes vos ressources. Il est gratuit. L’interface utilisateur est simple, claire et minimaliste. En tant que développeur, lorsque vous ouvrez VS Code, vous n’allez pas gérer une application ou quelque chose d’autre, ni modifier les paramètres opérationnels d’une application. Non, vous allez développer et modifier une application et c’est tout. C’est la raison d’être de VS Code.
De plus, il existe des pratiques exemplaires pour le développement d’une extension pour VS Code, ce qui signifie qu’elle reste cohérente. Et si vous installez une extension, ne vous attendez pas à ce qu’elle ajoute une interface très compliquée avec beaucoup de fenêtres, de fonctionnalités, d’explorateurs et d’autres choses de ce genre. Il faut rester simple en utilisant l’API de VS Code autant que possible.
VS Code avec Git est l’avenir sur IBM i. C’est vraiment le développement moderne sur IBM i.
[Nar.] Nous avons donc parlé un peu de VS Code sur l’IBM i et du rôle d’ARCAD. Y a-t-il des éléments de la roadmap que vous êtes impatient de voir se déployer ?
[Seb.] Bien sûr – la prochaine fonctionnalité sur notre liste est l’ajout des tests unitaires d’ARCAD sur IBM i en tant qu’extension de VS Code. Nous intégrons toutes les fonctionnalités d’ARCAD une par une. Notre objectif est d’offrir une expérience moderne aux développeurs et d’automatiser chaque phase du cycle DevSecOps !