| スピーカー |
トランスクリプト |
| ウェイン・レビン |
継続的な改善のために JSL アプリケーションの Hamcrest 自動テストを拡張するセッションへようこそ。 |
| |
ここでお見せしたいのは、皆さんも生産的で費用対効果の高いシステムを構築できるという約束です。 |
| |
高い品質保証、高い信頼性とサポート力を備えたJMPベースのミッションクリティカルな統合分析システム。確かに、言いたいことは山ほどありますが、 |
| |
これが私たちがこの環境で取り組んでいることです。私たちは非常に満足しています。皆さんとこれを共有できることを大変光栄に思います。 |
| |
それでは、議題に沿って進めていきます。まずは私自身の簡単な自己紹介をさせていただきます。それから、Predictumについて少しだけお話しします。皆さんはあまりご存知ないかもしれませんので。 |
| |
私たちの背景、JSL 開発の背景、インフラストラクチャ、それに関連する歴史について少しお話します。 |
| |
そして、私たちがこれまで行ってきた変更の結果について、ここで皆さんに共有したいと思います。その後、デモンストレーションを行い、今後の計画についてお話しします。最後に、ご質問があればお答えします。 |
| |
ウェイン・レビンです。右にいるのが私です。私はPredictumの社長です。 |
| |
ヴィンス・ファラーです。ヴィンスは当社のチーフソフトウェアエンジニアで、この非常に重要な取り組みを主導してきました。それでは、私たちについて少しお話ししましょう。私たちはJMPのパートナーです。 |
| |
私たちは 1992 年に設立されましたので、29 年目になります。 |
| |
私たちはJMPを使った統計手法などのトレーニングや、その分野のコンサルティングを行っており、構築と |
| |
統合分析アプリケーションとシステムを導入する上で、この取り組みは私たちにとって非常に重要でした。JMPアプリケーションは、 |
| |
JMP 4.0は2000年、ええ、実に20年以上前のことです。それ以来、私たちはより大規模なシステムを構築してきました。もちろん、当時はまだツールが小さすぎましたが、JMP 8か9の頃から、より大規模なシステムの構築に着手しました。 |
| |
私たちはこの分野でかなり長い歴史を持っており、優に10年以上になります。少しだけ背景をお話しすると…2019年後半頃までは、私たちの開発環境は非常にばらばらで、断片的なものでした。 |
| |
プロジェクト管理 |
| |
ありましたが、やはり全てが分断されていました。バージョン管理や時間管理(開発者の時間管理など)、そしてプロジェクト管理全般に別々のアプリケーションを使っていました。 |
| |
開発者は簡単にお金を費やしていましたが、これについては後で話します。 |
| |
彼らの時間の約半分は、JMPアドインの暗号化やパッケージ化といった定型的な機械作業に費やされています。設定パッケージのメンテナンスなどです。 |
| |
ご存知の通り、暗号化されたスクリプトと暗号化されていないスクリプトのリポジトリ、つまり一般的にレポジトリと呼んでいるものを分ける必要がありました。開発作業とは関係のない部分で考えなければならないことがたくさんありました。 |
| |
開発者の才能は…無駄にされていました。先ほども言ったように、私たちは長年この仕事に携わってきました。2019年現在でも、優に10年以上、つまりJMP 5まで遡る10年以上のレガシーフレームワークを使っていました。ご存知の通り、肥大化して動作が遅くなっていました。 |
| |
JMPは長年にわたり大きな進歩を遂げてきました。JMP 9では名前空間が導入され、JMP 14ではクラスが導入されました。そしてHamcrestが登場しました。 |
| |
始まりました。そして、ハムクレストのおかげで、私たちはこの大きな取り組みを進めることができました。そして、この大きな取り組みは2019年8月に開始しました。 |
| |
そして、私たちが最初の Gitlab ライセンスを取得したのはその時でした。そして、それが私たちの新しい開発アーキテクチャの開発であり、形になり始め、それ以来ずっと改善され続けています。 |
| |
基本的に、私たちは前進するにつれて、生産性をさらに高めるために毎月能力を追加し、構築してきました。 |
| |
そしてそれは今も続いています。私たちはこれを、いわばリーン型の取り組みだと考えています。リーンの原則に忠実に従い、私たちの開発を加速させています。 |
| |
このシステムのおかげでテストが自動化されました。Vinceがそれを見せてくれます。そしてここには、早期にテストし、頻繁にテストするという小さなモデルがあります。 |
| |
それが私たちの取り組みです。コードの再利用をサポートし、Predictumシステムフレームワークを再開発しました。現在は2.0です。以前の取り組みから多くのことを学びました。以前のものはすべて、ほぼすべて取り除き、新しい機能と拡張を加えました。 |
| |
詳しくはVinceがお話しします。生産性は50%以上向上しました。開発者の満足度も大幅に向上し、ストレスも軽減されました。 |
| |
彼らは自分の仕事、つまり退屈な作業ではなく、開発者が行うべき本当の仕事にもっと集中しています。 |
| |
まだ改善の余地があるので、これで終わりではありません。詳細については、Vince が説明する予定です。 |
| |
現在、当社には開発標準があり、機能のスタイル ガイドがあり、すべての開発は機能に基づいていると言えます。 |
| |
各機能には少なくとも1つのHamcrestテストが必要であり、開発者が互いに共有するコードレビューがあります。 |
| |
基準を遵守していることを確認するためです。そして、その基準をどのように強化し、改善するかという疑問が生じます。 |
| |
また、開発者がコードを破ることを奨励する、楽しいセッションもあります。 |
| |
そうですね、いわゆる「ブレークコードチャレンジ」とか何とか呼ばれています。これは私たちのやり方の一部となり、この開発環境にぴったりとフィットしています。例えば、さらなるテスト、Hamcrestテストの追加につながります。私たちには小さな、かなり小さなプロジェクトが1つあります。 |
| |
ちょうど1年ちょっと前にやったことです。これから新たな段階に入ります。もうだいぶ経って… |
| |
100 を超える Hamcrest テストが組み込まれており、開発プロセスを通じて何度も何度も実行されます。 |
| |
他の利点としては、開発者が何をしているかといったリソースの割り当てと追跡が可能になることが挙げられます。全員が他の開発者の作業を把握できます。 |
| |
継続的インテグレーション、継続的デプロイメントなど) |
| |
コードの衝突は早期に検出されるので、もし衝突が発生した場合でも…実際、複数の人が同じプロジェクトに取り組んでいるので、誰かがこちら側の関数を変更し、それが他の誰かが行っていることと衝突するといった事態を、より早く発見できるようになります。 |
| |
また、複数のスタッフによるサポート性も向上します。特定の開発者に依存するコードは存在せず、どの開発者やサポートスタッフでもサポートできるコードでなければなりません。 |
| |
前進していくことです。これは私たちにとっても重要な目標でした。そして、品質保証の分野全体を前進させることにもつながります。 |
| |
FDAの要件、QAに関する要件、バリデーション、IQ、OQ、PQといったもののサポートも含まれます。つまり、自動化、あるいは半自動化を進めているのです。 |
| |
これらのタスクもこのインフラストラクチャを通じて実行できます。社内外で使用していますので、ご存知かもしれませんが、 |
| |
いくつかの製品が出回っています。(???)Kobe sash labですが、新しいものはスパムです。Kobe はスパムを送信します(???)他の場所でも話題になっています。 |
| |
2021年のJMP Discovery European Conferenceで発表されます。ぜひチェックしてみてください。かなり規模が大きいので |
| |
コードベースはすべて開発済みです。言い換えれば、私たちは自社製品を使用しています。この表現はご存知でしょうが、私たちはすべてのクライアントにも使用しています。 |
| |
開発は、顧客にとって重要なことです。私たちは顧客が依存するアプリケーションを構築しているからです。 |
| |
ですから、私たちは、信頼できるインフラを整備する必要があり、それがこの大きな部分を占めています。 |
| |
Predictumシステムフレームワークについてお話しました。ここでそのスニペットをいくつか見ることができます。スクリプトインデックスの中にあります。引数と |
| |
例などすべてです。これらはすべて組み込まれており、95%以上、95%以上にHamcrestテストが関連付けられています。もちろん、私たちの目標はすべてのテストにHamcrestテストを組み込むことであり、その目標に近づいています。 |
| |
着々と進んでいます。このフレームワークは、実は私たちのインフラの一部です。これが重要な要素の一つです。もう一つは、まさに…ハムクレスト… |
| |
ユニットテストを行う機能です。最後にスライドを用意しました。コミュニティへのリンクがあり、Hamcrestについてさらに詳しく知ることができます。 |
| |
先ほども少し触れましたが、JMP 14でJMPがもたらした開発環境です。Gitlabはこれに大きく貢献しており、プロジェクト管理リポジトリやCI/CDパイプラインなどを提供しています。 |
| |
また、私たちが作成したJSL用のビジュアルスタジオコード拡張機能があり、5つ星の評価を受けたため、5つ星になっています。 |
| |
Visual Studioで。何と呼ぶのかよく分かりません。Vince、ストアとか、何か教えていただけますか?何百回もダウンロードされていて、 |
| |
定期的に更新されていますので、ぜひそちらもご覧ください。最後のリソーススライドにもリンクがあると思います。 |
| |
それで、これからヴィンス・ファラーにバトンタッチします。ヴィンスは、繰り返しになりますが、チーフソフトウェアエンジニアです。2019年8月からこの取り組みを率いてきました。大変な努力でしたが、 |
| |
懸命な努力は続きます。私たち社員全員が、ヴィンスと彼のリーダーシップに心から感謝しています。それでは、ヴィンス、ここからはあなたが引き継いでください。私は… |
| |
私は... |
| ヴィンス・ファラー |
共有。 |
| |
ウェインは何度もHamcrestと言いました。Hamcrestが何なのかわからない人のために説明すると、これは |
| |
ジャンプ。 |
| |
Justin ChiltonとEvan McCorkleが主導していました。これは、実行、テスト、そして結果の取得を自動化できる単体テストライブラリです。 |
| |
これが、私たちがこれを実行できるようになったきっかけであり、拡張と呼ばれている理由です。 |
| |
いくつかお見せします |
| |
画面を見ながら。私は主にVSCode拡張機能を使って作業しています。これがVSCodeです。 |
| |
これを実行する理由は、Get 統合や Get Lab 統合など、記述する必要のない組み込み機能や拡張可能な機能が多数あるためです。 |
| |
ここでは、これが JSL スクリプトであり、問題なく読み取られることがわかります。 |
| |
VSCodeを使い慣れている方なら、JMPと入力するだけで使える軽量テキストエディタです。 |
| |
そうすればわかるよ。それが唯一のものだから。 |
| |
しかし、私たちはやるべきことをやっていきます。 |
| |
それで。 |
| |
コードを変更するたびに、 |
| |
パイプラインが実行されます。 |
| |
実際に何をするのかを簡単にお見せします。READMEファイルを「これはDiscoveryのデモです」と変更します。 |
| |
2021年。 |
| |
それをコミットします。もしgetがわからない場合は、コミットするだけで |
| |
現時点での正確なスナップショットが欲しいと言い、それをリポジトリにプッシュすると、サーバー上に保存されます。 |
| |
幸せな一日。 |
| |
コミットメッセージ。Readme の詳細情報。 |
| |
VSCode は素晴らしいので、get push を実行するだけで済みます。 |
| |
パイプラインのデモ。 |
| |
これでプッシュできました。パイプラインが実行されます。ここをクリックしてマージリクエストを送信します。 |
| |
パイプラインの実行が開始されました。 |
| |
パイプラインのステータスを確認できます。 |
| |
今やっているのは、必要なHamcrestファイルがあるかどうかの確認です。いくつか要件があります。 |
| |
私たちはそれができるように強制します... |
| |
私たちは、 |
| |
仕事をうまくやる。 |
| |
これで完了です。暗号化を押します。 |
| |
ここで、encrypt はパッケージ全体を取得して暗号化します。 |
| |
ここへ行けば |
| |
これはどこかのVMです。 |
| |
走り始める |
| |
1秒で。 |
| |
つまり、すべてのコードを調べるだけです。 |
| |
暗号化されたパスワードをすべて書き込んで、確認して、クリックする。複数のスクリプトを同時に暗号化しようとしたことがあるなら、 |
| |
おそらく、これは面倒なことだということはご存じでしょう。そのため、これを自動化して、これを行う必要がないようにしました。ウェインが言ったように、これらを実行するのに多くの時間がかかっていたからです。 |
| |
たとえば、リリースするたびに 100 個のスクリプトを調べて、そのすべてを暗号化するとなると、それはひどい作業です。 |
| |
なぜなら私たちは |
| |
コードは暗号化されています。申し訳ありませんが、意見なので、これを共有するのはやめます。 |
| |
ああ。 |
| |
それでそれが実行されるでしょう。 |
| |
もうすぐ終わるはずです。 |
| |
その後、ステージングが行われ、ステージングでは基本的に、ドキュメントにあるような必要な情報源がすべて取り込まれます。 |
| |
私たちが書いた他のものはすべて、アドインで必要な形式にレンダリングされます。これは、github や gitlab の他の部分と同様に、ほとんどのドキュメントが markdown で書かれていて、それを任意の形式にレンダリングするためです。 |
| |
残りの部分は見せる必要はないけど、そうだね。つまり、通過するんだ。行くよ。 |
| |
VSCode に戻ります。 |
| |
それで。 |
| |
変更する場合、これは単なる単一の関数になります。 |
| |
ここに入ってこれを実行するとしたら... |
| |
JSL、現在の選択を実行します。 |
| |
それで。 |
| |
結果が返ってきたのが分かりますね…Big Classを開いて、近似線を走らせて方程式を取得しようとしているだけです。方程式を返しているんです。 |
| |
そして実際にここを走ったのがわかります。 |
| |
しかし。 |
| |
したがって、これにはさらにドキュメントが必要になる可能性があります。 |
| |
そして、実はこのデータ テーブルを開きたくないのです。 |
| |
しかし、これをすぐに実行してみましょう。 |
| |
そしてこう言うのです |
| |
いいえ。これは良い戻り値ではありません。どうやら方程式をすべて大文字にしているようです。 |
| |
それでそれを上演するとしたら。 |
| |
より優れたドキュメント。 |
| |
押す。 |
| |
またここに戻ります。 |
| |
つまり、またもや推進中です。これは別のパイプラインです。 |
| |
設定方法に応じて、一連の Power Shell スクリプトを順番に実行するだけです。 |
| |
しかし、このパイプラインにはさらに多くのステージがあることに気付くでしょう。 |
| |
だから私たちは |
| |
これをスケールさせるために、私たちはJSLのみをテストします |
| |
最初は最小限に抑え、その後、合格したらさらにテストできるようにします。 |
| |
また、変更された JSL ファイルがあるかどうかのみテストしました。 |
| |
しかし、私たちはこれを乗り越えることができます。 |
| |
実行すると、テストがフリーズした場合に備えて、テストのどの段階にいるのかが表示されます。ご存知の通り、モーダルダイアログボックスが閉じない状態だと、JMPはその後何も処理を続けられません。でも、ご覧の通り、色々な処理ができました。すごいですね。これで完了です。 |
| |
エキサイティング。 |
| |
更新してください。小さな緑のチェックマークが表示されます。 |
| |
そして、すべてを実行してみましょう。すべてを実行し、テストを行い、暗号化し、暗号化されたファイルをテストします。基本的には、アドインを作成する実際のファイルです。その後、再度ステージングし、パッケージ化して、顧客に提供する実際のアドインを作成します。 |
| |
1 分ほどかかるので、すぐにはやりません。 |
| |
しかし |
| |
例えば、ここに入って、ああ、 |
| |
えっと、このデータテーブルはもう閉じたいんです。そもそもなぜコメントアウトしたのか思い出せません。もう使わないので、開いたままにしておくべきではないと思います。もう、そんな状態は望んでいません。 |
| |
大丈夫と言います。 |
| |
dt を閉じます。 |
| |
もう一度押してください。これで、Hamcrestを使えば、私のコンピューターですべて手動で実行できるようになりました。 |
| |
でも、開発者が何かをプッシュする際に、自分のコンピュータ上のすべてのコンポーネントに対してHamcrestを全部実行しないというケースが時々あります。これは…まさにそれを検知するためのものです。おかげで、私たちは仕事を少しだけ改善することができました。 |
| |
そして |
| |
うん。 |
| |
このボタンをクリックし続けてください。そのまま開くこともできますが、問題ありません。 |
| |
パイプラインが再び実行されているのが分かります。パイプラインに移動してください。 |
| |
繰り返しになりますが、私たちはただテストし、暗号化し、そしてテストしているだけです |
| |
暗号化は時々独自のものになるので |
| |
暗号化をやったことがある人なら、これは問題の世界です。 |
| |
走れ、走れ、走れ、走れ、走れ。 |
| |
そして、ああ、投げることができました。見てください。 |
| |
無表情でいるつもりはないけど、分かるでしょ。 |
| |
これを準備完了としてマークして「はい、完了です」と言うと、 |
| |
ああ、まあ、そのテストは合格しなかった。 |
| |
今 |
| |
ダウンロードできる |
| |
アーティファクトでテストが合格しなかった理由。 |
| |
これによりJユニットが開きます |
| |
ここで取り出すファイルです。 |
| |
また、getlab でもレンダリングされます。これはおそらく簡単でしょうが、今のところはこれを実行します。 |
| |
最終的には、すべてを最小限に抑えます。 |
| |
さあ、行きましょう。 |
| |
したがって、R 2 乗で何かが起こり、失敗したことがわかります。 |
| |
内部 |
| |
青色の。 |
| |
だから私たちはここに来ることができます。 |
| |
ところで、boo にこれが失敗する原因となる何かがあるのはなぜですか? |
| |
誰かが私たちの方程式を |
| |
そして彼らは、データテーブルがそこにあると勝手に思い込んでいました。私が何かを変更したせいで、他の人のコードが壊れてしまった、なんてことはありえない、と。 |
| |
つまり、その問題を抱えているのです。 |
| |
どこに行ったの?さあ行こう。 |
| |
つまり、ここで私たちが行っていることすべての主な目的は、私が何かを変更して他の人のものを壊してしまったという事実を捉えることです。 |
| |
だから私は通り抜けることができました。 |
| |
ブーが何をするのか見てください。 |
| |
ああ、そうだな、Big Classを開こうかな |
| |
自分自身。 |
| |
うん、いいね。じゃあ、それを保存しておけば |
| |
おそらくもっと良くしたほうがいいでしょう。 |
| |
私自身もBig Classを開きます。 |
| |
それを演出します。 |
| |
Big Class を開きます。プッシュを取得します。 |
| |
そしてまた、ただ見せるだけ |
| |
古いパイプライン。 |
| |
これで |
| |
長くない…あまり長くない。 |
| |
では、ここに入ります。1つだけテストします。 |
| |
JMPバージョンですが、 |
| |
自動的に、1 つだけテストします。 |
| |
そして開発者が「はい、完了しました。すべて順調です。続行します」と言うのを待ちます。これはリソース上の理由からです。 |
| |
なぜなら、これらは常に自動的に稼働している VM 上で実行されており、複数の開発者がこれらのシステムを使用しているからです。 |
| |
私たちも… |
| |
ご覧のとおり、これは実際には Docker システムであり、これらをコンテナ化しています。 |
| |
そうですね、現在これらをコンテナ化しているところです。動作はしていますが、まだ全てのバージョンが揃っていません。 |
| |
しかし、少なくともこのプロジェクトでは14.3、15、15.1を実行しています。 |
| |
そしてそれは機能するはずです。 |
| |
元に戻しましょう。 |
| |
それが機能することをご存知だからです。 |
| |
おそらく古典的なものをやったほうがよかったのですが...でも大丈夫です。 |
| |
そうですね。 |
| |
テストしてみます。 |
| |
何度も言っている気がしますが、全てをテストするつもりです。 |
| |
実際にこれを実行して、どのような最終結果が得られるかをお見せします。 |
| |
それだけで十分です。 |
| |
若干。 |
| |
これをテストして、正常に動作するか確認します。ログも確認できます。何が起こっているのか、どこで発生しているのか、きちんとした情報が得られています。例えば、どのランナーが走っているのかが分かります。 |
| |
今のところWindowsでのみ実行しています。繰り返しますが、これはデモ版ですが |
| |
走れるはずだ |
| |
もっと。 |
| |
それが実行されている間に、VSCode についてもう少しお話します。 |
| |
VSCodeではスニペットなども用意されているので、関数を作りたい場合には |
| |
関数情報全体を作成します。自然なドキュメントを使用します |
| |
これもハムクレストチームから盗まれたものです |
| |
私たちの |
| |
開発ドキュメント。 |
| |
つまり、すべてが自然なドキュメント形式で表示されます。つまり、繰り返しになりますが、これは私たちの仕事を支援し、仕事に駆り立てるという考え方です。 |
| |
もう少し良くなって、もう少し熱意を持って。 |
| ウェイン・レビン |
ドキュメント用ですか? |
| ヴィンス・ファラー |
そうです、それはドキュメントのためです。 |
| ウェイン・レビン |
開発しながら同時にドキュメントも作成しています。 |
| ヴィンス・ファラー |
はい。その通りです。 |
| |
ご存知のとおり、 for ループや while ループもあります。 |
| |
関連行がある場合など。 |
| |
もう…これは…終わったのかな? たぶん終わってるよ、うん。 |
| |
緑のチェックマークが表示されました。これですべてのシステムで実行できるようになります。 |
| |
ここに戻れるなら、すぐにわかるよ。 |
| |
JMPを開きます。いくつかのテストが実行されます。 |
| |
おそらくBig Classがオープンするでしょう。 |
| |
それからすべてを閉じます...すべて閉じます。 |
| ウェイン・レビン |
私たちがこれをやっているのは、主に |
| |
多くのお客様はJMPの異なるバージョンを導入しており、特定のアドインを必要としていますが、 |
| |
現場ではJMPを運用している方々が、様々なバージョンを使っているのが現状です。私たちはJMPの早期導入バージョンでもテストを行っています。これはバグ報告という形でJMPへの貢献にも繋がるものです。 |
| |
お客様にとっても、JMPの新バージョンにアップグレードできることが分かるので、大変助かります。私たちが構築したアプリケーションがテスト済みであることをご理解いただけるからです。 |
| |
そしてそれは私たちにとっては日常的なことなのです。 |
| |
良い。 |
| ヴィンス・ファラー |
終わりました。終わりました。終わりました。 |
| |
変更する... |
| |
...についてお話できます。 |
| |
これを実行すれば |
| |
メグ、もし君がそうしたいなら、これが映画の魔法だ。 |
| |
より速く実行できるようにするためです。 |
| |
基本的にはステージングに進みたいのですが、少し時間がかかります。 |
| |
ウェイン、これについて他に何か言いたいことはありますか? |
| |
いいね。 |
| |
それを置いておきます... |
| |
言えることは、 |
| |
ステージングの時は |
| |
ドキュメントはmk docsにも保存されています。mk docのバージョンを実行してレンダリングし、ヘルプファイルをヘルプファイルに追加して、リリースを作成してくれるので、 |
| |
対処してください。 |
| |
リリースを作成するのは大変な労力がかかるからです。 |
| |
暗号化中です。ほぼ完了です。 |
| |
おそらく、1 つを事前にロードしておけばよかったでしょう。 |
| |
ライブデモ、どうするつもりですか。 |
| |
いくつかの。 |
| |
走る。 |
| |
ああ、絶対にやりたいことが一つあります。 |
| |
パイプラインが実際に最後に行うことは、実際に時間を費やしたかどうかをチェックすることです。 |
| |
実際に費やした時間を記録しているわけではなく、報酬も支払われていないため、記録することを強制されるのです。 |
| |
素晴らしい、素晴らしい時間でした。 |
| ウィンズフォールズ |
それで |
| ヴィンス・ファラー |
それがなければ仕事は失敗していたでしょう。 |
| |
いくつかのジョブを表示できます。試してみます。 |
| |
それはDockerのものです。それは不要です。 |
| |
それで |
| |
それが私たちの成功につながったことがおわかりいただけると思います。 |
| |
失敗なし。予想外の投げ込みなし。すべてハムクレストの技だ。 |
| |
さあ、もう一つ。 |
| |
さて、ステージングに移ります。 |
| |
一つはリポジトリを作成することです。 |
| |
毎回新鮮なものを作ります。 |
| |
つまり、それは一種の無国籍状態を維持しようとしているのです |
| |
わかりました。これでアーティファクトをダウンロードできます。 |
| |
これで、パイプラインのデモが完成しました。 |
| |
本当にそこに行けばよかったのに。 |
| |
何。 |
| |
なぜInternet Explorerが起動しているのですか?それではパイプラインのデモをご覧ください |
| |
JMP のアドインです。 |
| |
解凍すると。 |
| |
ご存知ないかもしれませんが、JMP アドインは単なる zip ファイルです。 |
| |
今それを見てみると、 |
| |
スクリプトがすべて含まれているのがわかります。fooとbarがあります。これを開くと |
| |
開ける、 |
| |
暗号化されたファイルであることがわかります。 |
| |
これが基本的に顧客に提供できるものになります |
| |
機械的な作業があまりない。ウェインはこう言った。 |
| |
開発者のストレスが減ります。個人的には、これは控えめな表現だと思います。この方法を導入する前は、何度も同じことを繰り返すのは非常にイライラするものだったので、これは大いに役立ちました。 |
| |
それ。 |
| ウェイン・レビン |
さて、暗号化についてですが、アドインを配信する場合 |
| |
社内のユーザーが使用する場合は、セキュリティ上の理由などから、通常、誰にもアクセスできないようにする必要があります。 |
| |
コードを扱うということですね。例えば、クライアント側がコードを暗号化して使えるように、暗号化せずにコードを配信することもあります。しかし、エンドユーザーに配信する際には、改ざんされないように全てを暗号化する必要があります。そういったことの一つです。 |
| ヴィンス・ファラー |
はい、これでデモは終わりです。ウェイン、最後にもう一度聞いてください。 |
| ウェイン・レビン |
ええ、素晴らしいです。 |
| |
はい、ありがとうございます、ヴィンス。このシステムには多くの可動部分があるので、基本的には、 |
| |
複数のユーザーがコードを開発していて、互いに衝突していない状態です。ドキュメントも同時に構築しています。実際、ドキュメントはアプリケーションと一緒にデプロイされるので、わざわざ組み込む必要はありません。つまり… |
| |
インフラは自動的に管理されるように設定しました。コードと合わせて、包括的に、同時にアップデートできます。 |
| |
ハムクレストテストは、書かれた関数の一つ一つが |
| |
いわゆる期待される結果があります。それらを比較すると、この式に何らかの問題があることが分かりました。R2乗か何かで異なる値が返されたのです。 |
| |
つまり、何かがおかしいということです。関数からこの出力を期待していました。 |
| |
ユースケースです。これはクライアントから受け取るものの一つで、ユースケースのプールを構築し、それをHamcrestテストに変換して、すぐに実行します。ここには他にもスライドがあります。 |
| |
スライドをダウンロードすれば、すぐにご覧いただけます。こちらはパイプラインの小さな図です。 |
| |
私たちが採用しているもの、そして開発者向けのコードレビュー活動についても少しお話ししたいと思います。もしよろしければ、Vinceさん、コードレビューと承認の方法について何か付け加えることはありますか? |
| ヴィンス・ファラー |
はい、マージリクエストの中で |
| |
JSLのコードはコードの差分に含まれます。そしてまた、大きな |
| |
ありがとう |
| |
Hamcrest を作った人たちも、GitHub と GitLab が JSL を読めるように lexer(?) を始めたので、実際これは getlab の中にあります。 |
| |
JSLも読めます。実行はできませんが、書式設定が綺麗です。ただの白い文字ではなく、美しいです。さあ、始めましょう。 |
| |
このスクリーンショットのように、行をクリックして必要なコメントを入力すると、レビュー可能なタスクになります。そのため、私たちはできる限りGitLab内で作業を行うようにしています。 |
| |
透明性の理由から、そして |
| |
すべてが完了したら、「はい、マージリクエストの準備ができました。マスターブランチ、メインブランチにマージしましょう」と言えるようになります。 |
| ウェイン・レビン |
素晴らしいですね。つまり、コーディング標準の定義に役立っているということですね。 |
| |
「強制」という言葉は好きではありませんが、結局はそういうことです。そして、それはばらつきを減らします。複数の開発者が、いわば何が起こっているのかを理解しやすくなります。 |
| |
他の人が何をしてきたか。そして、新しい開発者を迎え入れると、彼らは標準を理解し、何を探すべきか、何をすべきかを知るようになります。 |
| |
つまり、オンボーディングがはるかに簡単になり、ここでもすべてがすべてに関連付けられているので、サポート性などがわかります。 |
| |
これは先ほど触れたスライドです。リソースとしてGitLabを使用しています。GitHubなど、一般的なGitサービスにも同じ原則が当てはまると思います。Hamcrestのコミュニティリンクはこちらです。講演がありました。 |
| |
ツーソンで、あれは2019年のことでした。昔、旅行してみんなで集まっていた頃のことです。とても楽しかったです。ビジュアル素材のマーケットプレイスへのリンクはこちらです…Visual Code Studioです。 |
| |
Visual Studio Code、その他いろいろ。 |
| |
ヴィンスが言ったように、JMPの内蔵エディタを使うのではなく、統合されているというだけで、そのエディタをよく使います。それは… |
| |
これらはすべて、ひとつの大きなアプリケーション開発環境の一部です。それでは、Vinceと私に代わって、この製品にご関心をお寄せいただき、誠にありがとうございます。そして改めて、JMPチーム、Justin Chiltonとチームの皆様に感謝申し上げます。 |
| |
呼びかけます。ハムクレストがなかったら、私たちはここにいなかったでしょう。 |
| |
欠けていたピース、あるいはJSL開発を次の段階に進めるための有効なピースは、 |
| |
基本的に、業界全般のコード開発で期待されるような標準です。ですから、私たちは本当に感謝していますし、私たちの… |
| |
ご存知のとおり、これは導入したアプリケーションごとに伝播されます。さて、ご質問があれば、Vinceと私は喜んでお答えします。 |
| |
info@predictum.com までお送りいただければ、転送させていただき、折り返しご連絡させていただきます。さて、この時点で質疑応答の時間を設けさせていただきます。 |