Lautsprecher | Transkript |
| Wayne Levin | Willkommen zu unserer Sitzung hier über die Erweiterung des automatisierten Hamcrest-Tests von JSL-Anwendungen zur kontinuierlichen Verbesserung. |
| Was wir Ihnen hier zeigen, unser Versprechen an Sie, ist, Ihnen zu zeigen, wie auch Sie ein produktives und kostengünstiges Unternehmen aufbauen können |
| hohe Qualitätssicherung, äußerst zuverlässige und unterstützbare JMP-basierte geschäftskritische integrierte Analysesysteme. Ja, das ist viel zu sagen, aber das ist es |
| Das ist es, was wir in diesem Umfeld tun. Wir sind sehr zufrieden damit. Es ist uns eine große Ehre, es mit Ihnen teilen zu dürfen. |
| Hier ist also die Agenda, der wir hier folgen werden. Eine kleine Einführung, ich selbst, das werde ich gleich tun, und nur ein wenig über Predictum, weil Sie vielleicht nicht allzu viel über uns wissen, |
| Unser Hintergrund, Hintergrund unserer JSL-Entwicklung, Infrastruktur, ein wenig Geschichte damit. |
| Und dann die Ergebnisse der von uns vorgenommenen Änderungen, die wir hier mit Ihnen teilen möchten. Dann werden wir eine Demonstration machen und darüber sprechen, was als nächstes kommt, was wir für die Zukunft geplant haben, und dann werden wir es endlich für alle Fragen öffnen, die Sie haben könnten. |
| Ich bin also Wayne Levin, also bin ich hier rechts. Ich bin der Präsident von Predictum und Mitglied |
| mit Vince Faller. Vince ist unser Chef-Softwareentwickler, der diese sehr wichtige Initiative geleitet hat. Also nur ein bisschen über uns. Wir sind JMP-Partner. |
| Wir sind 1992 gegründet worden, also im Alter von 29 Jahren. |
| Wir schulen uns in statistischen Methoden usw., nutzen JMP, beraten in diesen Bereichen und verbringen sehr viel Zeit mit der Entwicklung und |
| Bereitstellung integrierter analytischer Anwendungen und Systeme, daher war dieser Aufwand für uns sehr wichtig. Wir haben zuerst die JMP-Anwendung mit ausgeliefert |
| JMP 4.0 im Jahr 2000, ja, tatsächlich vor über 20 Jahren, und wir haben größere Systeme gebaut. Natürlich waren es damals noch zu kleine kleine Tools, aber wir haben, glaube ich, mit JMP 8 oder 9 begonnen, größere Systeme zu bauen. |
| Wir haben diesbezüglich also eine ziemlich lange Geschichte, locker über 10 Jahre. Also nur ein paar Hintergrundinformationen ... Bis etwa zur zweiten Hälfte des Jahres 2019 war unsere Entwicklungsumgebung wirklich unterschiedlich, sie war fragmentiert. |
| Projektmanagement |
| war da, aber wieder war alles irgendwie kaputt. Wir hatten verschiedene Anwendungen zur Versionskontrolle und zur Zeitverwaltung, Sie wissen schon, unsere Entwicklerzeit usw. und einfach nur zum Projektmanagement im Allgemeinen. |
| Entwickler haben leicht Geld ausgegeben, und wir werden darüber sprechen, |
| Ungefähr die Hälfte ihrer Zeit verbringen sie nur mit routinemäßigen mechanischen Aufgaben, wie dem Verschlüsseln und Packen von JMP-Add-Ins. Sie wissen schon, die Pflege von Konfigurationspaketen und |
| Sie wissen schon, und die Trennung der Repositories oder dessen, was wir im Allgemeinen Repos nennen, für verschlüsselte und unverschlüsselte Skripte. Es war ... wir mussten über vieles nachdenken, das nicht wirklich Entwicklungsarbeit war. Das war wirklich Arbeit |
| Entwicklertalent ist...wurde verschwendet. Wir hatten auch, wie gesagt, wir machen das schon seit langem, selbst im Jahr 2019 hatten wir locker 10 Jahre, also über 10 Jahre altes Framework, das sogar bis zu JMP 5 zurückreicht, wissen Sie, mit, Weißt du, es wurde aufgebläht und langsam. |
| Und wir wissen, dass JMP im Laufe der Jahre einen langen Weg zurückgelegt hat. Ich meine, in JMP 9 hatten wir Namespaces und in JMP 14 wurden Klassen eingeführt, und dann kam Hamcrest |
| begann. Und es war Hamcrest, der es uns wirklich ermöglicht hat, dies zu erreichen ... mit dieser großen Initiative. Deshalb haben wir diese große Initiative bereits im August 2019 gestartet. |
| Und dann haben wir unsere ersten Gitlab-Lizenzen erworben und das ist die Entwicklung unserer neuen ... die Entwicklung unserer neuen Entwicklungsarchitektur, los geht's, sie hat begonnen, Gestalt anzunehmen, und sie hat sich seitdem verbessert. |
| Im Grunde haben wir jeden Monat unsere Fähigkeiten erweitert und ausgebaut, um im Laufe der Zeit immer produktiver zu werden. |
| Und das geht weiter, also betrachten wir dies, wenn Sie so wollen, tatsächlich als eine Lean-Anstrengung. Es folgt wirklich den Lean-Prinzipien und hat unsere Entwicklung beschleunigt. |
| Dank dieses Systems verfügen wir über automatisierte Tests, und Vince wird uns das zeigen. Und wir haben dieses kleine Modell hier, testen Sie früh und testen Sie es oft |
| Und das ist es, was wir tun. Es unterstützt die Wiederverwendung von Code und wir haben unser Predictum-System-Framework neu entwickelt. Es ist jetzt 2.0. Wir haben aus unseren früheren Bemühungen viel gelernt. Das ist alles weg, so ziemlich alles, und es wurde ersetzt und erweitert. |
| Und Vince wird uns mehr darüber erzählen. Mit Leichtigkeit haben wir eine Produktivitätssteigerung von über 50 % erzielt, und ich möchte nur sagen, dass die Entwickler viel zufriedener sind. Sie sind weniger frustriert. |
| Sie konzentrieren sich mehr auf ihre Arbeit, ich meine die eigentliche Arbeit, die Entwickler leisten sollten, nicht auf die mühsamen Dinge. |
| Es gibt immer noch Raum für Verbesserungen, sage ich, also sind wir noch nicht fertig und Vince wird uns mehr darüber erzählen. |
| Wir haben jetzt Entwicklungsstandards, also Styleguides für Funktionen, und unsere gesamte Entwicklung basiert sozusagen auf Funktionalität. |
| Für jede Funktion ist mindestens ein Hamcrest-Test erforderlich, und es gibt Codeüberprüfungen, die die Entwickler untereinander austauschen |
| um sicherzustellen, dass wir unsere Standards einhalten. Und es wirft die Frage auf, wie diese Standards verbessert und verbessert werden können. |
| Wir haben auch diese Art unterhaltsamer Sitzungen, in denen Entwickler dazu ermutigt werden, Code zu knacken, |
| Richtig, also heißen sie so, diese Break-Code-Herausforderungen, oder was auch immer. Es ist also Teil unserer Vorgehensweise geworden und alles passt perfekt in diese Entwicklungsumgebung. Dies führt beispielsweise dazu, dass weitere Tests, weitere Hamcrest-Tests hinzugefügt werden. Wir haben ein kleines, ziemlich kleines Projekt |
| das haben wir vor etwas mehr als einem Jahr gemacht. Wir treten in eine neue Phase ein. Es ist längst vorbei... |
| Weit über 100 Hamcrest-Tests sind darin integriert und werden im Laufe des Entwicklungsprozesses immer wieder durchlaufen. |
| Ein weiterer Vorteil besteht darin, dass wir unsere Ressourcenzuweisung zuweisen und verfolgen können, z. B. welche Entwickler was tun. Jeder weiß, was alle anderen tun, |
| kontinuierliche Integration, kontinuierliche Bereitstellung, so etwas in der Art), |
| Es gibt ... Codekollisionen werden frühzeitig erkannt. Wenn wir also ... und das tun wir, arbeiten mehrere Personen an einigen Projekten, also ändert hier jemand eine Funktion und sie kollidiert mit etwas, das jemand anderes hat macht gerade. Wir werden es viel früher herausfinden. |
| Dadurch können wir auch die Unterstützbarkeit mehrerer Mitarbeiter verbessern. Wir können keinen Code haben, der von einem bestimmten Entwickler abhängig ist; Wir müssen Code haben, den jeder Entwickler oder Supportmitarbeiter unterstützen kann |
| vorwärts gehen. Das war also auch für uns ein wichtiges Ziel. Und es bringt ganz allgemein den gesamten Bereich der Qualitätssicherung voran, |
| einschließlich der Unterstützung der FDA-Anforderungen, in Bezug auf die Qualitätssicherung, Dinge wie die Validierung, das IQ OQ PQ. Es ist also...wir automatisieren oder halbautomatisieren |
| Auch diese Aufgaben können über diese Infrastruktur erledigt werden. Wir verwenden es intern und extern, Sie wissen also vielleicht, dass wir es getan haben |
| Es gibt einige Produkte da draußen, (???)Kobe Sash Lab, aber über neue Spam gut Kobe Send Spam(???) wird auch anderswo gesprochen |
| bei der JMP Discovery European Conference im Jahr 2021. Vielleicht möchten Sie sie sich ansehen, aber sie sind ziemlich groß |
| Codebasen und sie sind alle entwickelt, mit anderen Worten, wir essen unser eigenes Hundefutter, wenn Sie diesen Ausdruck kennen, aber wir verwenden ihn auch bei allen unseren Kunden |
| Das ist für unsere Kunden wichtig, weil wir Anwendungen erstellen, von denen sie abhängig sein werden. |
| Und deshalb müssen wir ... wir müssen über die Infrastruktur verfügen, die es uns ermöglicht, zuverlässig zu sein, und das ist sowieso ein großer Teil davon. |
| Ich habe das Predictum-System-Framework erwähnt. Einige Ausschnitte davon können Sie hier sehen. Es befindet sich direkt im Skriptindex, und Sie wissen, wir sehen die Argumente und die |
| Beispiele und so. Wir haben das alles eingebaut und 95 %, über 95 % von ihnen sind mit Hamcrest-Tests verbunden. Natürlich ist es unser Ziel, dafür zu sorgen, dass das bei allen der Fall ist, und wir sind auf dem Weg dorthin. |
| Wir kommen dorthin. Haben Sie ... dieses Framework ... dieses Framework ist tatsächlich Teil unserer Infrastruktur hier. Das ist eines der wichtigen Elemente davon. Ein anderer ist genau das...Hamcrest... |
| die Fähigkeit, Unit-Tests durchzuführen. Und ich werde ... am ... am Ende eine Folie haben, die Ihnen einen Link zur Community gibt, wo Sie mehr über Hamcrest erfahren können. Das ist ein |
| Entwicklung, die uns JMP bereits in JMP 14 zur Verfügung gestellt hat, wie ich vor ein paar Minuten erwähnt habe. Gitlab ist ein großer Teil davon; Dadurch erhalten wir das Projektmanagement-Repository, die CI/CD-Pipeline usw. |
| Und es gibt auch eine visuelle ... Visual Studio-Codeerweiterung für JSL, die wir erstellt haben, und wir würden ... Sie sehen dort fünf Sterne, weil sie auf der Website mit fünf Sternen ausgezeichnet wurde |
| im visuellen Studio. Ich bin mir nicht sicher, wie wir das nennen. Vince, vielleicht kannst du uns sagen, der Laden, was du hast. Es wurde hunderte Male heruntergeladen und wir waren es auch |
| aktualisieren Sie es regelmäßig. Das ist also etwas, wonach Sie auch suchen können. Ich denke, wir haben auch einen Link dazu in der Ressourcenfolie am Ende. |
| Was ich jetzt tun werde, ist, dies an Vince Faller weiterzugeben. Vince ist wiederum unser Chef-Softwareentwickler. Vince leitete diese Initiative, wie gesagt, ab August 2019. Es war eine Menge harter Arbeit und |
| die harte Arbeit geht weiter. Wir alle im Unternehmen sind Vince und seiner Führung hier sehr dankbar. Also, nachdem das gesagt ist, Vince, warum gehst du nicht von hier aus weiter? Ich werde... |
| Ich bin... |
| Vince Faller | Teilen. |
| Also sagte Wayne ein paar Mal Hamcrest. Für Leute, die nicht wissen, was Hamcrest ist: Es ist ein Add-In, das von erstellt wurde |
| JMP. |
| Justin Chilton und Evan McCorkle führten es an. Es handelt sich lediglich um eine Unit-Test-Bibliothek, mit der Sie sie automatisiert ausführen, testen und Ergebnisse erhalten können. |
| Es hat wirklich begonnen, dass der Stein ins Rollen gekommen ist, denn wir konnten das überhaupt schaffen, daher nennt man es „erweitern“. |
| Ich werde einiges zeigen |
| mit meinem Bildschirm. Ich arbeite fast ausschließlich mit der VSCode-Erweiterung, die wir erstellt haben. Das ist VSCode. |
| Wir tun dies, weil es über viele integrierte oder erweiterbare Funktionen verfügt, die wir nicht schreiben müssen, wie z. B. Get-Integration oder Get-Lab-Integration. |
| Hier können Sie sehen, dass es sich um ein JSL-Skript handelt und es problemlos gelesen werden kann. |
| Wenn Sie es haben möchten, wenn Sie ... wenn Sie mit VSCode vertraut sind, ist es nur ein leichter Texteditor. Sie geben einfach JMP ein |
| und du wirst es sehen. Es ist das Einzige. |
| Aber wir machen weiter mit dem, was wir tun. |
| Also. |
| Für jede Codeänderung, die wir vornehmen, |
| Es gibt einen Pipelinelauf. |
| Wir zeigen einfach, was es bewirkt. Wenn ich also die README-Datei ändere, ist dies eine Demo für Discovery. |
| 2021. |
| Und das werde ich einfach begehen. Wenn Sie es nicht wissen, begehen Sie es einfach |
| Sagen Sie, ich möchte einen Schnappschuss davon haben, wo wir uns gerade befinden, und dann übertragen Sie ihn in das Repo und speichern ihn auf dem Server. |
| Schönen Tag. |
| Commit-Nachricht. Weitere Readme-Informationen. |
| Und ich kann einfach Push bekommen, denn VSCode ist großartig. |
| Pipeline-Demo. |
| So, jetzt habe ich es vorangetrieben. Es wird eine Pipeline laufen. Ich kann einfach hierher gehen und darauf klicken, dann erhalte ich meine Zusammenführungsanfrage. Also jetzt |
| Die Pipeline wurde gestartet. |
| Ich kann den Status der Pipeline überprüfen. |
| Im Moment wird überprüft, ob die erforderlichen Hamcrest-Dateien vorhanden sind. Wir haben einige Anforderungen |
| wir setzen durch, damit es... |
| Wir können sicherstellen, dass wir es sind |
| unsere Arbeit gut machen. |
| Und dann ist es geschafft. Ich werde auf „Verschlüsseln“ klicken. |
| Jetzt übernimmt Encrypt das gesamte Paket und verschlüsselt es. |
| Wenn wir hierher gehen, |
| Das ist nur irgendwo eine VM. Es sollte |
| Lauf |
| in einer Sekunde. |
| Es geht also einfach den gesamten Code durch. |
| Alle verschlüsselten Passwörter schreiben, durchgehen, all das Zeug anklicken. Wenn Sie jemals versucht haben, mehrere Skripte gleichzeitig zu verschlüsseln, |
| Sie werden wahrscheinlich wissen, dass das mühsam ist, also haben wir es automatisiert, sodass wir das nicht tun müssen, weil es, wie Wayne sagte, viel Zeit gekostet hat, dies zu tun. |
| Wenn wir zum Beispiel jedes Mal, wenn wir eine Veröffentlichung machen wollen, 100 Skripte durchgehen und jedes einzelne davon verschlüsseln müssen, wäre das schrecklich. |
| Weil wir unsere haben müssen |
| Code verschlüsselt, weil, ja, tut mir leid, Meinung, in Ordnung, ich kann aufhören, das zu teilen. |
| Ah. |
| Das wird also laufen. |
| Es sollte ziemlich bald fertig sein. |
| Dann wird es durchgegangen und inszeniert, und dann werden bei der Inszenierung im Grunde alle Informationsquellen verwendet, die wir wollen, wie unsere, wie in unserer Dokumentation, wie in |
| alles andere, was wir geschrieben haben, und es rendert sie in die Form, die wir im Add-In haben möchten, denn ähnlich wie der Rest von Github und Gitlab ist der Großteil unserer Dokumentation in Markdown geschrieben und wir rendern sie dann in was auch immer. |
| Den Rest muss ich nicht zeigen, aber ja. Es geht also vorbei. Es wird gehen. |
| Wir kehren zu VSCode zurück. |
| Also. |
| Würden wir uns ändern, so wäre dies nur eine einzelne Funktion. |
| Wenn ich hier reingehe, wenn ich das ausführen würde ... |
| JSL, aktuelle Auswahl ausführen. |
| Also. |
| Sie können sehen, dass es zurückgekommen ist ... Alles, was es zu tun versucht, ist Big Class zu öffnen, eine Anpassungslinie auszuführen und die Gleichung zu erhalten. Es gibt die Gleichung zurück. |
| Und hier kann man tatsächlich sehen, wie es rüber gelaufen ist. |
| Aber. |
| Es könnte also etwas mehr Dokumentation gebrauchen. |
| Und wir sagen: Oh, wir wollen diese Datentabelle eigentlich nicht öffnen. |
| Aber lassen Sie uns das ganz schnell durchgehen. |
| Und sag, |
| NEIN. Das ist keine gute Rendite, es dreht die Gleichung offenbar in Großbuchstaben um. |
| Also, wenn ich das inszeniere. |
| Bessere Dokumentation. |
| Drücken. |
| Noch einmal zurück hierher. |
| Es drängt also wieder einmal. Dies ist eine weitere Pipeline. |
| Es geht lediglich darum, eine Reihe von Power-Shell-Skripten der Reihe nach auszuführen, je nachdem, wie wir es eingerichtet haben. |
| Sie werden jedoch feststellen, dass diese Pipeline mehr Stufen hat. |
| Also, wenn wir |
| Um die Skalierung zu erleichtern, testen wir nur die JSL |
| Zuerst minimal, und wenn es dann vorbei ist, erlauben wir weitere Tests. |
| Und wir haben nur getestet, ob JSL-Dateien geändert wurden. |
| Aber wir können das durchstehen. |
| Es wird ausgeführt und teilt uns mit, wo es sich im Test befindet, für den Fall, dass der Test einfriert. Wissen Sie, wenn Sie ein modales Dialogfeld haben, das sich einfach nicht schließen lässt, wird JMP danach offensichtlich nichts mehr tun. Aber Sie sehen, es hat eine Menge bewirkt, ja, großartig. Ich bin fertig. |
| Spannend. |
| Aktualisieren Sie das. Holen Sie sich ein kleines grünes Häkchen. |
| Und wir könnten gehen, okay, jetzt alles ausführen. Es würde alles durchgehen, alles testen, es dann verschlüsseln, dann das Verschlüsselte testen, im Grunde das eigentliche Ding, aus dem wir das Add-In erstellen werden, und es dann erneut bereitstellen, für uns verpacken, das eigentliche Add-In erstellen. indem wir einem Kunden etwas geben würden. |
| Ich werde das nicht ganz schnell machen, weil es eine Minute dauert. |
| Aber |
| Nehmen wir an, wir gehen hier rein und sagen, oh, |
| Nun, ich möchte diese Datentabelle wirklich schließen. Ich weiß nicht, warum ich überhaupt einen Kommentar abgegeben habe. Ich denke nicht, dass es offen sein sollte, weil ich es nicht mehr benutze, wir wollen das nicht. |
| Wir sagen okay. |
| Schließen Sie den dt. |
| Nochmals drücken. Mit Hamcrest konnte dies alles manuell auf meinem Computer erledigt werden. |
| Aber wissen Sie, manchmal pusht ein Entwickler Dinge und führt nicht sein gesamtes Hamcrest für alles auf seinem Computer aus, und das ist ... der gesamte Zweck besteht darin, es abzufangen. Es hat uns gezwungen, unsere Arbeit etwas besser zu machen. |
| Und |
| Ja. |
| Klicken Sie weiter auf diese Schaltfläche. Ich könnte das einfach öffnen, aber es ist in Ordnung. |
| Jetzt sehen Sie, dass die Pipeline erneut ausgeführt wird. Gehen Sie zur Pipeline. |
| Und ich werde das immer wieder sagen, um es zu wiederholen. Wir gehen einfach alles durch, testen und verschlüsseln und dann testen |
| denn manchmal kommt die Verschlüsselung zum Tragen |
| Eine Welt voller Probleme, wenn jemand jemals mit Verschlüsselung beschäftigt ist. |
| Lauf, lauf, lauf, lauf, lauf. |
| Und dann, oh, hatten wir einen Wurf. Würdest du dir das ansehen? |
| Ich versuche nicht, ausdruckslos zu sein, aber wissen Sie. |
| Wenn wir das also als fertig markieren und sagen würden: „Ja, wir sind fertig“, würden wir sehen: |
| Na ja, dieser Test hat nicht bestanden. |
| Jetzt |
| wir könnten herunterladen |
| warum der Test die Artefakte nicht bestanden hat. |
| Und dadurch wird eine J-Einheit geöffnet |
| Datei, die ich hier einfach herausziehen werde. |
| Es wird es auch in getlab rendern, was vielleicht einfacher ist, aber im Moment machen wir einfach das. |
| Letztlich. Alles minimieren. |
| Jetzt komm schon. |
| Wir konnten also sehen, dass mit R im Quadrat etwas passiert ist und es fehlgeschlagen ist. |
| Innen |
| von Blau. |
| Also können wir hierher kommen. |
| Sag mal, warum gibt es etwas in boo, das dazu führt, dass dies fehlschlägt? |
| Wir sehen, oh, jemand hat unsere Gleichung genannt |
| und dann gingen sie einfach davon aus, dass die Datentabelle da sei. Weil also etwas, das ich geändert habe, den Code eines anderen kaputt gemacht hat, als ob das jemals passieren würde. |
| Wir haben also dieses Problem. |
| Wo bist du hingegangen? Auf geht's. |
| Der Hauptzweck von allem, was wir hier tun, besteht also darin, die Tatsache zu erkennen, dass ich etwas geändert und die Sachen eines anderen kaputt gemacht habe. |
| So konnte ich durchkommen. |
| Schau dir an, was Boo macht. |
| Na ja, vielleicht sollte ich einfach „Big Class“ eröffnen |
| ich selbst. |
| Ja, cool. Nun, wenn ich das speichere, |
| Ich sollte es wahrscheinlich besser machen. |
| Eröffne selbst die große Klasse. |
| Ich werde das inszenieren. |
| Eröffnen Sie die große Klasse. Lassen Sie sich pushen. |
| Und noch einmal, einfach zeigen |
| die alte Pipeline. |
| Das sollte nun dauern |
| nicht...nicht zu lange. |
| Also gehen wir hier rein. Wir...wir testen nur an einem...um... |
| JMP-Version, aber Sie können sehen |
| Automatisch testen wir nur an einem. |
| Dann wartet es darauf, dass der Entwickler sagt: „Ja, ich bin fertig und alles sieht gut aus.“ Weitermachen. Wir tun das aus Ressourcengründen, |
| weil diese auf VMs laufen, die ständig automatisch tuckern, und wir mehrere Entwickler haben, die alle diese Systeme verwenden. |
| Waren auch... |
| Wie Sie sehen, handelt es sich hier tatsächlich um ein Docker-System, das wir in Container umwandeln. |
| Nun, wir sind gerade dabei, diese in Container zu verpacken. Wir haben sie zum Laufen gebracht, aber wir haben noch nicht alle Versionen. |
| Aber wir führen 14.3 aus, zumindest für dieses Projekt, wir führen 14.3, 15, 15.1, |
| und das sollte funktionieren. |
| Lasst uns die Dinge einfach rückgängig machen. |
| Weil das, wie Sie wissen, funktioniert. |
| Hätte wahrscheinlich einen Klassiker machen sollen ... aber es ist in Ordnung. |
| Also ja. |
| Wir werden testen. |
| Ich habe das Gefühl, dass ich das immer und immer wieder sage. Wir werden alles testen. |
| Wir lassen dies tatsächlich laufen, um Ihnen sozusagen das Endergebnis dessen zu zeigen, was wir bekommen. |
| Es sollte nur dauern. |
| ein bisschen. |
| Deshalb testen wir das, stellen sicher, dass es funktioniert, und Sie können die Protokolle sehen. Wir erhalten anständige Informationen darüber, was passiert, wo es sich befindet, so als würden wir Ihnen sagen, welcher Läufer läuft. |
| Ich verwende im Moment nur Windows. Auch dies ist eine Demo und alles andere als das |
| wir sollten rennen können |
| mehr. |
| Während das läuft, werde ich einfach noch etwas über VSCode sprechen. |
| In VSCode gibt es auch ... es gibt auch Snippets und andere Dinge. Wenn Sie also eine Funktion erstellen möchten, |
| Es werden Ihnen alle Funktionsinformationen angezeigt. Wir verwenden natürliche Dokumente |
| Auch das wurde dem Hamcrest-Team gestohlen, |
| als unser |
| Entwicklungsdokumentation. |
| Es wird also einfach alles in eine natürliche Dokumentform gebracht. Es geht also einfach nur darum, uns bei der Erledigung unserer Aufgaben zu helfen und uns dazu zu zwingen, unsere Aufgaben zu erledigen |
| etwas besser, mit etwas mehr Begeisterung. |
| Wayne Levin | Für die Dokumentation? |
| Vince Faller | Das ist also für die Dokumentation, ja. |
| Wayne Levin | Während wir uns entwickeln, dokumentieren wir gleichzeitig. |
| Vince Faller | Ja. Absolut. |
| Wissen Sie, es gibt auch for-Schleifen und while-Schleifen. |
| Denn mit einer assoziierten Zeile und solchen Dingen. |
| Sind wir...ist das...ist das schon fertig? Es ist wahrscheinlich geschafft, ja. |
| Wir bekommen also unser grünes Häkchen. Jetzt läuft es auf allen Systemen. |
| Wenn wir hierher zurückkehren können, werden Sie es einfach sehen. |
| Öffnen Sie JMP. Es werden einige Tests durchgeführt, |
| wird wahrscheinlich Big Class eröffnen. |
| Dann schließe alles ... schließe sich selbst ganz. |
| Wayne Levin | Also machen wir das vor allem, weil |
| Viele unserer Kunden haben unterschiedliche Versionen von JMP im Einsatz und möchten ein bestimmtes Add-In, aber das ist der Fall |
| Wenn man es betreibt, gibt es auf dem Feld einfach unterschiedliche Versionen. Wir testen auch mit den Early-Adopter-Versionen von JMP, einem Service für JMP, da wir Fehler melden. |
| Aber auch für die Kunden ist es hilfreich, denn dann wissen sie, dass sie ein Upgrade auf die neue Version von JMP durchführen können. Sie wissen, dass die Anwendungen, die wir für sie erstellt haben, getestet wurden. |
| Und das ist für uns reine Routine. |
| Gut. |
| Vince Faller | Du bist fertig. Du bist fertig. Du bist fertig. |
| Ändern... |
| Ich kann darüber reden... |
| Und das wird einfach laufen, das können wir |
| Filmmagie, wenn du willst, Meg. |
| Nur damit es schneller läuft. |
| Im Grunde möchte ich nur mit der Inszenierung beginnen, aber es dauert eine Sekunde. |
| Gibt es sonst noch etwas zu sagen, Wayne, dazu? |
| Cool. |
| Ich werde das sagen... |
| Etwas, das ich sagen kann, |
| wenn wir inszenieren, |
| Wir haben unsere Dokumentation auch in MK-Dokumenten. Es wird also tatsächlich die Version des MK-Dokuments ausführen, rendern, die Hilfe in die Hilfedateien einfügen und im Grunde in der Lage sein, eine Version für uns zu erstellen, sodass wir das nicht tun müssen |
| Komm damit klar. |
| Denn Releases zu erstellen ist einfach ein großer Aufwand. |
| Verschlüsseln. Es ist fast fertig. |
| Wahrscheinlich hätte einfach eines vorinstalliert sein sollen. |
| Live-Demos, was wirst du tun? |
| Manche. |
| Laufen. |
| Oh, eine Sache möchte ich auf jeden Fall tun. |
| Das Letzte, was die Pipeline tatsächlich tut, ist, zu überprüfen, ob wir unsere Zeit tatsächlich verbracht haben, denn, wissen Sie, wenn |
| Wir erfassen unsere aufgewendete Zeit nicht wirklich, wir werden nicht bezahlt, was uns dazu zwingt. |
| Tolle, tolle Zeit. |
| Vinde Faller | Also |
| Vince Faller | Ohne das wäre der Job gescheitert. |
| Ich kann nur ein paar Jobs zeigen. Ich versuche es. |
| Das ist der Docker. Das wollen wir nicht. |
| Also |
| Sie sehen, das hat uns zum Erfolg verholfen. |
| Keine Ausfälle. Keine unerwarteten Würfe. Das ist alles Zeug von Hamcrest. |
| Aufleuchten. Einer noch. |
| Okay, ich komme zur Inszenierung. |
| Eine Sache, die es tut, ist die Erstellung der Repositorys. |
| Dadurch werden sie jedes Mal frisch. |
| Es ist also so, als würde man versuchen, es in einer Art Zustandslosigkeit zu halten |
| Weg. Okay, wir können die Artefakte jetzt herunterladen. |
| Und jetzt sollten wir diese Pipeline-Demo haben. |
| Ich wünschte wirklich, es wäre einfach dorthin gegangen. |
| Was. |
| Warum ist der Internet Explorer aktiv? Jetzt sehen Sie die Pipeline-Demo |
| ist ein JMP-Add-In. |
| Wenn wir es entpacken. |
| Falls Sie es nicht wussten: Ein JMP-Add-In ist nur eine ZIP-Datei. |
| Wenn wir uns das jetzt ansehen, |
| Sie können sehen, dass darin alle unsere Skripte, unser Foo und unsere Bar enthalten sind. Wenn wir diese öffnen, |
| offen, |
| Sie können sehen, dass es sich um eine verschlüsselte Datei handelt. |
| Das ist also im Grunde das, was wir dem Kunden bieten könnten |
| und nicht so viel mechanische Arbeit haben. Wayne hat das erwähnt |
| Es sind weniger frustrierte Entwickler, und ich persönlich halte das für eine Untertreibung, denn es war sehr frustrierend, dies immer und immer wieder zu tun, bevor wir es umgesetzt haben, und das hat einer Menge geholfen. |
| Das. |
| Wayne Levin | Nun zur Verschlüsselung, wenn Sie ein Add-In bereitstellen |
| Sie möchten normalerweise nicht, dass sie von Benutzern innerhalb eines Unternehmens verwendet werden. Aus Sicherheitsgründen usw. möchten Sie nicht, dass jemand darauf zugreifen kann |
| Beschäftige dich mit dem Code. Wissen Sie, so etwas in der Art, also liefern wir vielleicht einen Code unverschlüsselt, nur damit der Client seinen Code verschlüsselt hat, aber für die Lieferung an den Endbenutzer möchten Sie normalerweise, dass alles verschlüsselt ist, nur damit es nicht möglich ist manipuliert werden. Nur eines dieser Dinge. |
| Vince Faller | Ja, und das ist das Ende meiner Demo. Wayne, wenn du es zum Abschluss zurückbringen willst. |
| Wayne Levin | Ja, großartig. |
| Klar, vielen Dank dafür, Vince. Es gibt also viele bewegliche Teile in diesem ganzen System, also geht es im Grunde genommen darum, sicherzustellen, dass wir Folgendes haben: |
| Sie wissen schon: Code wird von mehreren Benutzern entwickelt, ohne dass es zu Konflikten untereinander kommt. Gleichzeitig bauen wir die Dokumentation ein. Und tatsächlich wird die Dokumentation mit der Anwendung bereitgestellt und wir müssen sie nicht einbinden. Es ist... |
| Wir richten die Infrastruktur so ein, dass sie automatisch erledigt wird. Wir können das zusammen mit dem Code umfassend und gleichzeitig aktualisieren. |
| wenn du möchtest. Die laufenden Hamcrest-Tests, jede dieser Funktionen, die geschrieben werden, |
| Wenn Sie so wollen, gibt es erwartete Ergebnisse. Also wurden sie verglichen und so sahen wir kurz, dass es dort, glaube ich, ein Problem mit dieser Gleichung gab. Ein R-Quadrat oder was auch immer kam mit einem anderen Wert zurück, |
| Also ist es kaputt gegangen, mit anderen Worten, zu sagen: Hey, hier stimmt etwas nicht; Ich habe diese Ausgabe von der Funktion erwartet |
| für einen Anwendungsfall. Das ist eines der Dinge, die wir von Kunden bekommen, also bauen wir einen Pool von Anwendungsfällen auf, die in Hamcrest-Tests umgewandelt werden, und los geht's. Es gibt hier noch einige andere Folien |
| stehen Ihnen zur Verfügung, wenn Sie die Folien herunterladen. Ich lasse das also für Sie verfügbar und hier ist ein kleines Bild der Pipeline |
| das, was wir einsetzen, und ein wenig über Codeüberprüfungsaktivitäten für Entwickler. Wenn Sie möchten, können Sie damit hin und her gehen. Vince, möchtest du hier etwas darüber hinzufügen, wie die Codeüberprüfung und -genehmigung erfolgt? |
| Vince Faller | Ja, also innerhalb der Zusammenführungsanforderung |
| Es wird den JSL-Code in den Diffs des Codes enthalten. Und wieder ein großes |
| Vielen Dank |
| Die Leute, die Hamcrest gemacht haben, auch, weil sie auch einen Lexer(?) für GitHub und GitLab gestartet haben, um JSL lesen zu können, also ist das eigentlich innerhalb von getlab. |
| Und sie können auch die JSL lesen. Es wird nicht ausgeführt, aber es hat eine schöne Formatierung. Es ist nicht alles nur weißer Text, es ist wunderschön dort. Wir gehen einfach rein, |
| Wie in diesem Screenshot klicken Sie auf eine Zeile, geben den gewünschten Kommentar ein und die Aufgabe wird zu einer überprüfbaren Aufgabe. Deshalb versuchen wir, so viel wie möglich innerhalb von GitLab zu machen |
| aus Gründen der Transparenz und |
| Sobald alles abgeschlossen ist, können Sie sagen: Ja, meine Zusammenführungsanfrage ist bereit. Legen wir es in den Hauptzweig, den Hauptzweig. |
| Wayne Levin | Großartig. Sie sind also wirklich ... es hilft, wissen Sie, wir definieren wirklich Codierungsstandards, wenn Sie so wollen, und |
| Ich mag das Wort „Durchsetzung“ nicht, aber darauf kommt es an. Und es reduziert die Variation. Wenn Sie so wollen, ist es für mehrere Entwickler einfacher zu verstehen, was |
| was andere getan haben. Und wenn wir neue Entwickler an Bord holen, verstehen sie den Standard und wissen, worauf sie achten und was sie tun müssen. |
| Es macht das Onboarding also viel einfacher, und es geht auch darum, dass hier alles mit allem zusammenhängt, Sie wissen also, ob es Support gibt und so weiter. |
| Dies ist die Folie, die ich zuvor erwähnt habe, nur für einige Ressourcen, daher verwenden wir GitLab. Ich gehe davon aus, dass für jeden Git im Allgemeinen die gleichen Prinzipien gelten, also für GitHub oder was auch immer. Hier ist der Community-Link für Hamcrest. Es gab ein Gespräch um |
| In Tucson war das im Jahr 2019, damals, als wir reisten und uns trafen. Das hat viel Spaß gemacht. Und hier ist der Marktplatz-Link für die Visuals: Visual Code Studio. |
| Visual Studio Code, was hast du? |
| Wie Vince sagte: Ja, wir nutzen diesen Editor häufig und nicht den integrierten JMP-Editor, nur weil alles integriert ist. Es ist... |
| Es ist einfach alles Teil einer großen Anwendungsentwicklungsumgebung. Und damit möchten Vince und ich im Namen von Vince und mir für Ihr Interesse an diesem Thema danken und möchten uns noch einmal ganz herzlich beim JMP-Team bedanken. Justin Chilton und seine Begleitung, |
| Ich werde nach dir rufen. Ohne Hamcrest wären wir nicht dabei. Das war |
| das fehlende Teil oder war das ermöglichende Teil, das es uns wirklich ermöglichte, die JSL-Entwicklung voranzutreiben, |
| Im Grunde handelt es sich dabei um die Arten von Standards, die man bei der Codeentwicklung im Allgemeinen in der Industrie erwartet. Deshalb sind wir wirklich dankbar dafür, und ich weiß, dass unsere... |
| Sie wissen, dass dies mit jeder von uns bereitgestellten Anwendung weitergegeben wird. Und an dieser Stelle beantworten Vince und ich gerne alle Fragen, die ... |
| info@predictum.com und es wird an uns weitergeleitet und wir werden uns bei Ihnen melden. Aber an dieser Stelle werden wir es für Fragen und Antworten öffnen. |