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