| Conférencier |
Transcription |
| Wayne Levin |
Bienvenue à notre session ici sur l'extension des tests automatisés Hamcrest des applications JSL pour une amélioration continue. |
| |
Ce que nous allons vous montrer ici, notre promesse, c'est que nous allons vous montrer comment vous aussi pouvez construire une entreprise productive et rentable. |
| |
Systèmes analytiques intégrés critiques basés sur JMP, hautement fiables et supportables, avec une assurance qualité élevée. Oui, c'est beaucoup à dire, mais c'est |
| |
C'est ce que nous faisons dans cet environnement. Nous en sommes très satisfaits et sommes très honorés de pouvoir le partager avec vous. |
| |
Voici donc le programme que nous allons suivre. Une petite présentation, je vous la ferai dans un instant, et quelques mots sur Predictum, car vous ne nous connaissez peut-être pas bien. |
| |
notre historique, l'historique de notre développement JSL, l'infrastructure, un peu d'histoire impliquée dans tout cela. |
| |
Nous partagerons ensuite avec vous les résultats des changements que nous avons mis en place. Nous ferons ensuite une démonstration et discuterons des prochaines étapes, de nos projets pour l'avenir. Enfin, nous répondrons à toutes vos questions. |
| |
Je suis Wayne Levin, donc c'est moi ici à droite. Je suis le président de Predictum et je suis |
| |
Avec Vince Faller. Vince est notre ingénieur logiciel en chef et dirige cette initiative très importante. Quelques mots sur nous : nous sommes un partenaire JMP. |
| |
Nous avons été lancés en 1992, donc 29 ans. |
| |
Nous faisons des formations en méthodes statistiques et autres, en utilisant JMP, en consultant dans ces domaines et nous passons énormément de temps à construire et |
| |
Nous déployons des applications et des systèmes analytiques intégrés. C'est pourquoi cet effort était crucial pour nous. Nous avons d'abord livré une application JMP avec |
| |
JMP 4.0 en 2000, il y a plus de 20 ans, et nous avons construit des systèmes plus grands. Bien sûr, à cette époque, les outils étaient trop petits, mais nous avons commencé, je crois, vers JMP 8 ou 9 à construire des systèmes plus grands. |
| |
Nous avons donc une longue expérience sur ce sujet, plus de dix ans facilement. Pour rappel, jusqu'au second semestre 2019 environ, notre environnement de développement était très hétérogène, fragmenté. |
| |
Gestion de projet |
| |
Il y avait du code, mais là encore, tout était un peu fragmenté. Nous avions différentes applications pour le contrôle des versions et la gestion du temps, notamment pour nos développeurs, et plus généralement pour la gestion de projet. |
| |
Les développeurs dépensaient facilement, et nous en parlerons, |
| |
Environ la moitié de leur temps est consacrée à des tâches mécaniques routinières, comme le chiffrement et le packaging des modules complémentaires JMP. Vous savez, la maintenance des packages de configuration, etc. |
| |
Vous savez, et séparer les dépôts, ou ce qu'on appelle généralement des dépôts, pour les scripts chiffrés et non chiffrés. Il y avait beaucoup de choses auxquelles nous devions réfléchir, qui n'étaient pas vraiment du développement. C'était vraiment du travail qui |
| |
Le talent des développeurs était… gaspillé. Comme je l'ai dit, nous le faisions depuis longtemps ; même en 2019, nous avions facilement dix ans d'ancien framework, remontant même à JMP 5, qui devenait de plus en plus lourd et lent. |
| |
Nous savons que JMP a beaucoup évolué au fil des ans. JMP 9 a introduit les espaces de noms, JMP 14 a introduit les classes et c'est à ce moment-là qu'Hamcrest a vu le jour. |
| |
C'est Hamcrest qui nous a permis de lancer cette initiative majeure. Nous l'avons donc lancée en août 2019. |
| |
Et c'est à ce moment-là que nous avons acquis nos premières licences Gitlab et c'est le développement de notre nouvelle... le développement de notre nouvelle architecture de développement, voilà, a commencé à prendre forme et elle s'est améliorée depuis. |
| |
Chaque mois, nous avons essentiellement ajouté et développé nos capacités pour devenir de plus en plus productifs, à mesure que nous avançons. |
| |
Et cela continue, donc nous considérons cela comme une démarche de type Lean. Cela suit véritablement les principes Lean et a accéléré notre développement. |
| |
Grâce à ce système, nous disposons de tests automatisés, et Vince va nous le montrer. Grâce à ce petit modèle, nous pouvons tester tôt et souvent. |
| |
Et c'est ce que nous faisons. Il prend en charge la réutilisation du code et nous avons redéveloppé notre framework Predictum. Il est désormais en version 2.0. Nous avons beaucoup appris de nos précédents projets. Presque tout a disparu, et tout a été remplacé et étendu. |
| |
Et Vince nous en dira plus. Nous avons facilement augmenté la productivité de plus de 50 %, et je dirais simplement que les développeurs sont beaucoup plus satisfaits. Ils sont moins frustrés. |
| |
Ils sont plus concentrés sur leur travail, je veux dire le vrai travail que les développeurs devraient faire, pas le genre de choses fastidieuses. |
| |
Il y a encore de la place pour l'amélioration, je dirais, donc nous n'avons pas fini et Vince nous en dira plus à ce sujet. |
| |
Nous avons désormais des normes de développement, nous avons donc des guides de style pour les fonctions et tout notre développement est basé sur la fonctionnalité, pourrait-on dire. |
| |
Chaque fonction nécessite au moins un test Hamcrest, et il existe des revues de code que les développeurs partagent entre eux. |
| |
Pour garantir le respect de nos normes. Cela soulève des questions sur la manière de les améliorer. |
| |
Nous avons également ces sessions, en quelque sorte, amusantes, où les développeurs sont encouragés à casser le code, |
| |
D'accord, on les appelle des défis de rupture de code, ou un peu comme ça. C'est devenu partie intégrante de notre mode opératoire et tout s'intègre parfaitement à cet environnement de développement. Cela conduit, par exemple, à l'ajout de tests supplémentaires, notamment de tests Hamcrest. Nous avons un petit projet, relativement modeste. |
| |
Nous l'avons fait il y a un peu plus d'un an. Nous entrons dans une nouvelle phase. C'est bien fini… |
| |
plus de 100 tests Hamcrest y sont intégrés et ils sont exécutés encore et encore tout au long du processus de développement. |
| |
Un autre avantage est que cela nous permet d'affecter et de suivre l'allocation de nos ressources, par exemple, ce que font les développeurs. Chacun sait ce que font les autres. |
| |
intégration continue, déploiement continu, quelque chose comme ça), |
| |
Les collisions de code sont détectées très tôt. Ainsi, si plusieurs personnes travaillent sur certains projets, par exemple, si quelqu'un modifie une fonction, cela va entrer en conflit avec une autre application. Nous le saurons beaucoup plus tôt. |
| |
Cela nous permet également d'améliorer la prise en charge par plusieurs équipes. Le code ne peut pas dépendre d'un développeur en particulier ; il doit être compatible avec tous les développeurs et équipes de support. |
| |
C'était donc un objectif important pour nous. Et cela fait progresser le domaine de l'assurance qualité de manière générale. |
| |
Cela comprend le respect des exigences de la FDA, notamment en matière d'assurance qualité, comme la validation, la QI, la QO et la QP. Nous automatisons ou semi-automatisons donc |
| |
Ces tâches sont également réalisées grâce à cette infrastructure. Nous l'utilisons en interne et en externe. Vous le savez peut-être, nous avons |
| |
certains produits là-bas, (???) Kobe sash lab mais les nouveaux spam eh bien Kobe envoie du spam (???) sont également évoqués ailleurs |
| |
à la conférence européenne JMP Discovery en 2021. Vous pourriez vouloir les consulter, mais ils sont assez volumineux. |
| |
bases de code et elles sont toutes développées, en d'autres termes, nous mangeons notre propre nourriture pour chien, si vous connaissez cette expression, mais nous l'utilisons également avec tous nos clients |
| |
développement, c'est donc quelque chose d'important pour nos clients, car nous construisons des applications dont ils vont dépendre. |
| |
Et donc nous, nous devons... nous devons avoir l'infrastructure qui nous permet d'être fiables, et de toute façon, c'est une grande partie de cela. |
| |
J'ai mentionné le framework système Predictum. Vous pouvez en voir quelques extraits ici. Il se trouve directement dans l'index des scripts, et vous savez, on y voit les arguments et les |
| |
Des exemples, etc. Nous avons tout intégré, et plus de 95 % d'entre eux sont associés à des tests Hamcrest. Notre objectif est bien sûr de garantir que tous les tests le soient, et nous y parvenons. |
| |
On y arrive. Ce framework fait partie intégrante de notre infrastructure. C'est un élément important. Un autre élément important est… Hamcrest… |
| |
La possibilité d'effectuer des tests unitaires. Et je vais… il y a une diapositive à la fin, qui vous donnera un lien vers la communauté où vous pourrez en apprendre davantage sur Hamcrest. C'est un |
| |
Développement apporté par JMP, dès JMP 14, comme je l'ai mentionné il y a quelques minutes. Gitlab en est un élément essentiel ; il nous fournit le référentiel de gestion de projet, le pipeline CI/CD, etc. |
| |
Et il y a aussi une extension de code Visual Studio pour JSL que nous avons créée et nous... vous voyez cinq étoiles là-bas parce qu'elle a reçu cinq étoiles sur le |
| |
sur Visual Studio. Je ne sais pas comment on appelle ça. Vince, peux-tu nous dire, la boutique, etc. ? Ça a été téléchargé des centaines de fois et on a |
| |
Je le mets à jour régulièrement. C'est donc quelque chose que vous pouvez également consulter. Je pense que nous avons un lien pour cela également dans la diapositive de ressources à la fin. |
| |
Je vais maintenant laisser la parole à Vince Faller. Vince est, encore une fois, notre ingénieur logiciel en chef. Il a dirigé cette initiative depuis août 2019, comme je l'ai dit. Cela a demandé beaucoup de travail et |
| |
Le travail acharné continue. Nous sommes tous, dans l'entreprise, très reconnaissants envers Vince et son leadership. Ceci étant dit, Vince, pourquoi ne prends-tu pas la relève ? Je vais… |
| |
Je suis... |
| Vince Faller |
Partage. |
| |
Wayne a souvent parlé de Hamcrest. Pour ceux qui ne savent pas ce qu'est Hamcrest, c'est un module complémentaire créé par |
| |
JMP. |
| |
Justin Chilton et Evan McCorkle étaient à sa tête. Il s'agit simplement d'une bibliothèque de tests unitaires permettant d'exécuter, de tester et d'obtenir des résultats de manière automatisée. |
| |
Cela a vraiment lancé le mouvement qui nous a permis de pouvoir faire cela, c'est pourquoi on parle d'extension. |
| |
Je vais montrer quelques trucs |
| |
avec mon écran. Je travaille presque exclusivement avec l'extension VSCode que nous avons créée. Voici VSCode. |
| |
Nous le faisons parce qu'il comporte de nombreuses fonctionnalités intégrées ou extensibles que nous n'avons pas besoin d'écrire, comme l'intégration, l'intégration en laboratoire. |
| |
Ici, vous pouvez voir qu'il s'agit d'un script JSL et qu'il le lit très bien. |
| |
Si vous voulez l'obtenir, si vous connaissez VSCode, ce n'est qu'un éditeur de texte léger. Il suffit de taper JMP. |
| |
et tu le verras. C'est le seul. |
| |
Mais nous allons continuer ce que nous faisons. |
| |
Donc. |
| |
Pour toute modification de code que nous effectuons, |
| |
il y a un pipeline en cours de construction. |
| |
Nous allons simplement montrer ce que cela fait. Donc, si je modifie le fichier README, c'est une démo pour Discovery. |
| |
2021. |
| |
Et je vais m'engager là-dessus. Si vous ne savez pas, s'engager est tout simplement |
| |
en disant que je veux un instantané de l'endroit exact où nous sommes en ce moment, puis vous le poussez vers le dépôt et il est enregistré sur le serveur. |
| |
Bonne journée. |
| |
Message de validation. Plus d'informations sur le fichier Lisez-moi. |
| |
Et je peux simplement faire un push, parce que VSCode est génial. |
| |
Démonstration de pipeline. |
| |
J'ai donc lancé le processus. Un pipeline va être lancé. Je peux simplement cliquer ici pour afficher ma requête de fusion. |
| |
le pipeline a commencé à fonctionner. |
| |
Je peux vérifier l'état du pipeline. |
| |
Ce qu'il fait actuellement, c'est vérifier qu'il dispose des fichiers Hamcrest requis. Nous avons des exigences. |
| |
nous appliquons pour que cela puisse... |
| |
nous pouvons nous assurer que nous sommes |
| |
faire bien notre travail. |
| |
Et voilà, c'est fait. Je vais appuyer sur « crypter ». |
| |
Maintenant, Encrypt va prendre l'ensemble du package et le crypter. |
| |
Si nous allons ici, |
| |
Ce n'est qu'une machine virtuelle quelque part. Elle devrait |
| |
commencer à courir |
| |
dans une seconde. |
| |
Il s'agit donc simplement de parcourir tout le code. |
| |
Écrire tous les mots de passe chiffrés, les parcourir, cliquer sur tout ça. Si vous avez déjà essayé de chiffrer plusieurs scripts simultanément, |
| |
vous savez probablement que c'est pénible, nous l'avons donc automatisé pour ne pas avoir à le faire car, comme l'a dit Wayne, cela nous prenait beaucoup de temps pour le faire. |
| |
Par exemple, si nous avions 100 scripts à parcourir et à crypter chacun d'entre eux à chaque fois que nous voulions faire une publication, c'était horrible. |
| |
Parce que nous devons avoir notre |
| |
code crypté parce que, ouais désolé, opinion, d'accord, je peux arrêter de partager ça. |
| |
Ah. |
| |
Alors ça va marcher. |
| |
Cela devrait se terminer très bientôt. |
| |
Ensuite, il va le parcourir et le mettre en scène, puis la mise en scène prend essentiellement toutes les sources d'informations que nous voulons, comme dans notre documentation, comme dans |
| |
tout ce que nous avons écrit d'autre, et il les rend sous la forme que nous voulons dans le complément, car tout comme le reste de github, gitlab, la plupart de notre documentation est écrite en markdown, puis nous la rendons sous la forme que nous voulons. |
| |
Je n'ai pas besoin de montrer le reste, mais oui. Donc ça passe. Ça va passer. |
| |
Nous allons revenir à VSCode. |
| |
Donc. |
| |
Si nous devions changer, ce ne serait qu'une seule fonction. |
| |
Si j'y vais, comme si je devais exécuter ceci... |
| |
JSL, exécute la sélection actuelle. |
| |
Donc. |
| |
Vous pouvez voir qu'il est revenu… tout ce qu'il essaie de faire est d'ouvrir Big Class, d'exécuter une ligne d'ajustement et d'obtenir l'équation. Il renvoie l'équation. |
| |
Et vous pouvez effectivement le voir courir ici aussi. |
| |
Mais. |
| |
Cela pourrait donc nécessiter davantage de documentation. |
| |
Et nous nous disons : « Oh, nous ne voulons pas vraiment que cette table de données soit ouverte. » |
| |
Mais allons-y très vite. |
| |
Et dis, |
| |
non. Ce n'est pas un bon retour, cela retourne l'équation en majuscules apparemment. |
| |
Alors si je mets ça en scène. |
| |
Une meilleure documentation. |
| |
Pousser. |
| |
De retour ici. |
| |
Donc, encore une fois, ça pousse. C'est un autre pipeline. |
| |
Il s'agit simplement d'exécuter un ensemble de scripts Power Shell dans l'ordre, en fonction de la manière dont nous le configurons. |
| |
Mais vous remarquerez que ce pipeline comporte plus d’étapes. |
| |
Alors, quand nous |
| |
dans un effort pour aider à pouvoir faire évoluer cela, nous testons uniquement le JSL |
| |
au début, de manière minimale, puis, au fur et à mesure, nous permettons de tester davantage. |
| |
Et nous avons seulement testé s'il y a des fichiers JSL qui ont changé. |
| |
Mais nous pouvons surmonter cela. |
| |
Il s'exécutera et nous indiquera où il en est dans les tests, au cas où ceux-ci se bloqueraient. Si vous avez une boîte de dialogue modale qui refuse de se fermer, JMP ne continuera évidemment pas à faire quoi que ce soit après cela. Mais vous voyez, il a fait plein de choses, génial ! J'ai terminé. |
| |
Passionnant. |
| |
Rafraîchissez ça. Obtenez une petite coche verte. |
| |
Et nous pourrions tout exécuter maintenant. Le système analyserait, testerait tout, chiffrerait, testerait le chiffrement, en gros, l'élément dont nous allons créer le module complémentaire, puis le préparerait à nouveau, le conditionnerait et créerait le module complémentaire que nous fournirions au client. |
| |
Je ne vais pas le faire très rapidement car cela prend une minute. |
| |
Mais |
| |
disons que nous entrons ici et que nous nous disons, oh, |
| |
Eh bien, je veux vraiment fermer cette table de données. Je ne sais pas pourquoi j'ai commenté. Je ne pense pas qu'elle devrait être ouverte, car je ne l'utilise plus, et nous ne… nous ne voulons pas de ça. |
| |
Nous dirons d'accord. |
| |
Fermez le dt. |
| |
Encore une fois, appuyez. Maintenant, tout cela pourrait être fait manuellement sur mon ordinateur avec Hamcrest. |
| |
Mais vous savez, il arrive qu'un développeur pousse des choses sans exécuter Hamcrest sur tout son ordinateur, et c'est… le but est de les détecter. Cela nous a obligés à faire un peu mieux notre travail. |
| |
Et |
| |
Ouais. |
| |
Continuez à cliquer sur ce bouton. Je pourrais simplement l'ouvrir, mais ce n'est pas grave. |
| |
Vous verrez maintenant que le pipeline est à nouveau en cours d'exécution. Accédez au pipeline. |
| |
Et je vais le répéter encore et encore. Nous allons simplement analyser, tester, chiffrer, puis tester. |
| |
parce que parfois le cryptage entre dans son propre |
| |
un monde de problèmes, si jamais quelqu'un a fait du cryptage. |
| |
Cours, cours, cours, cours, cours. |
| |
Et puis, oh, on a eu un lancer. Tu veux bien regarder ça ? |
| |
Je n'essaie pas d'être impassible, mais vous savez. |
| |
Donc si nous devions marquer cela comme prêt et dire, oui, nous avons terminé, nous verrions, |
| |
Oh, eh bien, ce test n'a pas réussi. |
| |
Maintenant |
| |
nous pourrions télécharger |
| |
pourquoi le test n'a pas réussi dans les artefacts. |
| |
Et cela ouvrira une unité J |
| |
fichier que je vais juste extraire ici. |
| |
Il le rendra également dans getlab, ce qui pourrait être plus simple, mais pour l'instant, nous allons simplement faire cela. |
| |
Finalement. Minimisez tout. |
| |
Maintenant, allez-y. |
| |
Nous avons donc pu constater que quelque chose s’est produit avec R au carré et que cela a échoué. |
| |
À l'intérieur |
| |
de bleu. |
| |
Alors nous pouvons venir ici. |
| |
Dis, pourquoi y a-t-il quelque chose dans boo qui fait que ça échoue ? |
| |
Nous voyons, oh, quelqu'un a appelé notre équation |
| |
Et puis ils ont supposé que la table de données était là. Donc, parce que quelque chose que j'ai modifié a cassé le code de quelqu'un d'autre, comme si cela allait arriver. |
| |
Nous avons donc ce problème. |
| |
Où es-tu allé ? Nous y allons. |
| |
C'est donc le but principal de tout ce que nous faisons ici : être capable de détecter le fait que j'ai changé quelque chose et que j'ai cassé les affaires de quelqu'un d'autre. |
| |
Alors je pourrais passer. |
| |
Regardez ce que fait Boo. |
| |
Dis, eh bien, je devrais peut-être juste ouvrir Big Class |
| |
moi-même. |
| |
Ouais, cool. Bon, si je garde ça, |
| |
Je devrais probablement l’améliorer. |
| |
J'ai moi-même ouvert Big Class. |
| |
Je vais mettre ça en scène. |
| |
Ouvrez la grande classe. Faites-vous pousser. |
| |
Et encore une fois, montrez-moi simplement |
| |
l'ancien pipeline. |
| |
Maintenant, cela devrait prendre |
| |
pas...pas trop longtemps. |
| |
Alors on va y aller. On ne teste qu'un seul… pour… |
| |
Version JMP, mais vous pouvez voir |
| |
automatiquement, nous ne testons que sur un seul. |
| |
Ensuite, on attend que le développeur dise : « Oui, j'ai terminé et tout semble correct. On continue. » On fait ça pour des raisons de ressources. |
| |
parce qu'ils fonctionnent sur des machines virtuelles qui fonctionnent automatiquement tout le temps, et nous avons plusieurs développeurs qui utilisent tous ces systèmes. |
| |
Nous sommes également... |
| |
Vous pouvez voir, celui-ci est en fait un système Docker, nous les conteneurisons. |
| |
Nous sommes en train de les conteneuriser. Ils fonctionnent, mais nous n'avons pas encore toutes les versions. |
| |
Mais nous utilisons 14.3, au moins pour ce projet, nous utilisons 14.3, 15, 15.1, |
| |
et cela devrait fonctionner. |
| |
Rétablissons simplement les choses. |
| |
Parce que tu sais que ça marche. |
| |
J'aurais probablement dû faire un classique... mais c'est bien. |
| |
Alors oui. |
| |
Nous allons tester. |
| |
J'ai l'impression de le répéter sans cesse : on va tout tester. |
| |
Nous allons en fait laisser celui-ci s'exécuter pour vous montrer en quelque sorte le résultat final de ce que nous obtenons. |
| |
Cela ne devrait prendre que quelques minutes. |
| |
un petit peu. |
| |
Nous allons donc tester cela, vérifier que tout fonctionne correctement et consulter les journaux. Nous obtenons des informations précises sur ce qui se passe et où cela se passe, et cela vous indiquera le coureur en action. |
| |
Je n'utilise que Windows pour le moment. Encore une fois, c'est une démo, mais |
| |
nous devrions pouvoir courir |
| |
plus. |
| |
Pendant que cela fonctionne, je vais simplement parler un peu plus de VSCode. |
| |
Dans VSCode, nous avons aussi... il y a aussi des extraits et des choses, donc si vous voulez créer une fonction, |
| |
Il vous permettra d'accéder à toutes les informations sur la fonction. Nous utilisons des documents naturels. |
| |
encore une fois, cela a été volé à l'équipe de Hamcrest, |
| |
comme notre |
| |
documentation de développement. |
| |
Tout sera donc regroupé sous une forme naturelle. L'idée, encore une fois, est de nous aider et de nous forcer à faire notre travail. |
| |
un peu mieux, avec un peu plus de panache. |
| Wayne Levin |
Pour la documentation ? |
| Vince Faller |
Voilà donc pour la documentation, oui. |
| Wayne Levin |
Au fur et à mesure que nous développons, nous documentons en même temps. |
| Vince Faller |
Oui. Absolument. |
| |
Vous savez, il a aussi des boucles for et while. |
| |
Pour une ligne associée, des trucs comme ça. |
| |
On est… c'est… c'est déjà fait ? C'est probablement fait, oui. |
| |
Nous obtenons donc notre coche verte. L'application fonctionnera désormais sur tous les systèmes. |
| |
Si nous pouvons revenir ici, vous le verrez. |
| |
Ouvrez JMP. Il exécutera des tests. |
| |
ouvrira probablement Big Class. |
| |
Alors ferme tout... ferme tout seul. |
| Wayne Levin |
Nous faisons donc cela, en grande partie parce que |
| |
beaucoup de nos clients ont différentes versions de JMP déployées et ils veulent un module complémentaire particulier, mais ils sont |
| |
En l'utilisant, il existe différentes versions disponibles sur le terrain. Nous testons également les versions de JMP adoptées par les premiers utilisateurs, qui sont un service de JMP, car nous signalons les bugs. |
| |
Mais c'est aussi utile pour les clients, car ils savent qu'ils peuvent passer à la nouvelle version de JMP. Ils savent que les applications que nous avons créées pour eux ont été testées. |
| |
Et c'est juste une routine pour nous. |
| |
Bien. |
| Vince Faller |
C'est fini. C'est fini. C'est fini. |
| |
Changer pour... |
| |
Je peux parler de... |
| |
Et ça va continuer comme ça, on peut |
| |
C'est de la magie du cinéma si tu veux, Meg. |
| |
Juste pour le faire fonctionner plus rapidement. |
| |
En gros, je veux juste passer à la mise en scène, mais ça prend une seconde. |
| |
Y a-t-il autre chose que tu as à dire, Wayne, à ce sujet ? |
| |
Cool. |
| |
Je vais mettre ça... |
| |
Quelque chose que je peux dire, |
| |
quand nous sommes en scène, |
| |
Notre documentation est également disponible dans MK Docs. Il exécutera donc la version MK Docs, la restituera, ajoutera l'aide aux fichiers d'aide et créera une version pour nous, sans que nous ayons à le faire. |
| |
fais avec. |
| |
Parce que créer des versions demande beaucoup d’efforts. |
| |
Cryptage. C'est presque terminé. |
| |
J'aurais probablement dû en avoir un préchargé. |
| |
Démos en direct, qu'allez-vous faire ? |
| |
Quelques. |
| |
Courir. |
| |
Oh, une chose que je veux absolument faire. |
| |
Donc, la dernière chose que le pipeline fait réellement est de vérifier que nous avons réellement passé notre temps, car, vous savez, si |
| |
nous n'enregistrons pas réellement notre temps passé, nous ne sommes pas payés, ce qui nous oblige à le faire. |
| |
Super, super moment. |
| Chutes de la victoire |
Donc |
| Vince Faller |
le travail aurait échoué sans cela. |
| |
Je peux juste montrer quelques emplois. J'essaie. |
| |
C'est le docker. On ne veut pas de ça. |
| |
Donc |
| |
Vous pouvez voir que c’est ce qui nous a donné notre succès. |
| |
Aucun échec. Aucun lancer inattendu. Tout ça, c'est Hamcrest. |
| |
Allez. Encore un. |
| |
Ok, passons à la mise en scène. |
| |
L’une des choses qu’il fait, c’est créer des référentiels. |
| |
Cela les rend frais à chaque fois. |
| |
Donc c'est comme si ça essayait de le garder dans une sorte d'état apatride. |
| |
chemin. Ok, nous pouvons télécharger les artefacts maintenant. |
| |
Et maintenant, nous devrions avoir cette démonstration de pipeline. |
| |
J'aurais vraiment aimé que ça se passe là-bas. |
| |
Quoi. |
| |
Pourquoi Internet Explorer est-il disponible ? Vous pouvez maintenant voir la démonstration du pipeline. |
| |
est un module complémentaire JMP. |
| |
Si on le décompresse. |
| |
Si vous ne le saviez pas, un module complémentaire JMP n'est qu'un fichier zip. |
| |
Si nous regardons cela maintenant, |
| |
Vous pouvez voir qu'il contient tous nos scripts : notre foo et notre bar. Si on les ouvre, |
| |
ouvrir, |
| |
vous pouvez voir que c'est un fichier crypté. |
| |
Voilà donc essentiellement ce que nous pourrions offrir au client. |
| |
et ne pas avoir autant de travail mécanique. Wayne a mentionné que |
| |
cela frustre moins les développeurs, et personnellement, je pense que c'est un euphémisme, car faire cela encore et encore était très frustrant avant que nous mettions cela en place, et cela a beaucoup aidé. |
| |
Que. |
| Wayne Levin |
Maintenant, à propos du cryptage, lorsque vous fournissez un module complémentaire |
| |
pour une utilisation par les utilisateurs au sein d'une entreprise, vous ne voulez généralement pas, pour des raisons de sécurité et ainsi de suite, que quiconque puisse y accéder et |
| |
Gérer le code. Ce genre de choses, par exemple, nous pouvons livrer un code non chiffré, juste pour que le client puisse le chiffrer, mais pour la livraison à l'utilisateur final, tout doit être chiffré, afin qu'il ne puisse pas être falsifié. C'est une de ces choses-là. |
| Vince Faller |
Oui, c'est la fin de ma démo. Wayne, si tu veux la reprendre pour la conclusion. |
| Wayne Levin |
Ouais, génial. |
| |
Bien sûr, merci beaucoup pour ça, Vince. Il y a beaucoup d'éléments mobiles dans ce système, donc il s'agit essentiellement de s'assurer que nous avons… |
| |
Vous savez, du code développé par plusieurs utilisateurs sans conflit entre eux. Nous intégrons la documentation en même temps. Et en fait, la documentation est déployée avec l'application, sans qu'il soit nécessaire de l'intégrer. C'est… |
| |
Nous configurons l'infrastructure de manière à ce qu'elle soit gérée automatiquement. Nous pouvons la mettre à jour, ainsi que le code, de manière exhaustive et simultanée. |
| |
si vous voulez. Les tests Hamcrest en cours, chacune de ces fonctions qui sont écrites, |
| |
Il y a des résultats attendus, si vous voulez. On les compare donc, et nous avons vu, brièvement, qu'il y avait, je suppose, un problème avec cette équation. Un R carré, ou autre, donnait une valeur différente. |
| |
donc ça s'est cassé, en d'autres termes, pour dire hé, quelque chose ne va pas ici ; je m'attendais à cette sortie de la fonction |
| |
Pour un cas d'utilisation. C'est l'une des choses que nous recevons de nos clients : nous créons un pool de cas d'utilisation qui sont ensuite transformés en tests Hamcrest, et c'est parti. Voici d'autres diapositives. |
| |
Vous pouvez les consulter si vous téléchargez les diapositives. Je vous les laisse à disposition, et voici une petite image du pipeline. |
| |
Ce que nous utilisons, ainsi que quelques informations sur la revue de code pour les développeurs. Si vous souhaitez en discuter, Vince, souhaitez-vous ajouter quelque chose sur le déroulement de la revue et de l'approbation du code ? |
| Vince Faller |
Ouais, donc à l'intérieur de la demande de fusion |
| |
Il y aura le code JSL sur les différences du code. Et encore une fois, un gros |
| |
merci à |
| |
les gens qui ont fait Hamcrest aussi, parce qu'ils ont également démarré un lexer (?) pour GitHub et GitLab pour pouvoir lire JSL, donc en fait c'est à l'intérieur de getlab. |
| |
Ils peuvent aussi lire le JSL. Il ne l'exécute pas, mais son formatage est agréable. Ce n'est pas que du texte blanc, c'est magnifique. On y va, tout simplement. |
| |
Comme dans cette capture d'écran, vous cliquez sur une ligne, ajoutez le commentaire souhaité et la tâche devient révisable. Nous essayons donc d'en faire le plus possible dans GitLab. |
| |
pour des raisons de transparence, et |
| |
Une fois tout terminé, vous pouvez dire « oui, ma demande de fusion est prête ». Déposons-la dans la branche principale. |
| Wayne Levin |
Génial. Donc, c'est vraiment… ça aide, vous savez, on définit vraiment des normes de codage, si vous voulez, et |
| |
Je n'aime pas le terme « application », mais c'est bien ce qu'il signifie. Et cela réduit les variations. Cela permet à plusieurs développeurs, si vous voulez, de comprendre plus facilement ce que |
| |
Ce que d'autres ont fait. À mesure que nous intégrons de nouveaux développeurs, ils comprennent la norme et savent ce qu'il faut rechercher et faire. |
| |
Donc, cela... cela rend l'intégration beaucoup plus facile, et encore une fois, cela gère... tout est lié à tout ici, donc vous connaissez la capacité de support et ainsi de suite. |
| |
Voici la diapositive que j'ai mentionnée plus tôt, juste pour quelques ressources. Nous utilisons GitLab. Je suppose que les mêmes principes s'appliquent à tout Git en général, comme GitHub ou autre. Voici le lien communautaire pour Hamcrest. Il y a eu une conférence à |
| |
À Tucson, c'était en 2019, à l'époque où nous voyagions et nous retrouvions. C'était vraiment sympa. Et voici le lien vers la marketplace pour les visuels : Visual Code Studio. |
| |
Code Visual Studio, qu'avez-vous ? |
| |
Comme l'a dit Vince, oui, nous utilisons beaucoup cet éditeur, contrairement à l'éditeur JMP intégré, simplement parce qu'il est entièrement intégré. C'est… |
| |
Tout cela fait partie d'un vaste environnement de développement d'applications. Sur ce, Vince et moi, en mon nom et en celui de Vince, je tiens à vous remercier de votre intérêt pour ce projet, et à remercier chaleureusement l'équipe JMP, Justin Chilton et son équipe. |
| |
Je t'appelle. Sans Hamcrest, on ne serait pas là. C'était |
| |
la pièce manquante ou était la pièce habilitante qui nous a vraiment permis de mener à bien le développement JSL, |
| |
En gros, ce sont les normes généralement attendues en développement de code dans l'industrie. Nous en sommes donc très reconnaissants, et je sais que… |
| |
Vous savez, cela se reflète dans chaque application que nous déployons. Vince et moi sommes désormais à votre disposition pour répondre à toutes vos questions… |
| |
info@predictum.com ; votre réponse nous sera transmise et nous vous répondrons. Nous allons maintenant passer aux questions-réponses. |