Sensei とは?

2020年10月08日発行
アラン・リチャードソン著
ケーススタディ

Sensei とは?

2020年10月08日発行
アラン・リチャードソン著
リソースを見る
リソースを見る

Sensei プラグインは、ソース・コードの中から特定のコード・パターンを見つけ出し、一致するコードを修正するために書き換えルールを適用する簡単な方法を提供します。すべてはIntellij IDEの中で、しかもリアルタイムで行われます。

例えば、理由のない JUnit の `@Disabled` アノテーションにマッチするルールを作成することができます。Sensei は、IDE でコードをハイライトして問題を知らせてくれます。

さらに、`alt+enter`すると、`Todoコメントのパラメータを追加する`というオプションがあります。

これを選択すると、コードを修正して定型的な理由を追加することができます。

例えば、`@Disabled` は ` @Disabled("TODO: add a description here")` となります。

Sensei は、静的解析コードスキャナの機能とコード書き換えエンジンを組み合わせたものです。

IntelliJ Intention Actions

上記の説明に基づけば、(Sensei を使用していなかった場合)明らかな代替案は、IntelliJ Intention Actions 機能を使用することです。

Sensei はIntelliJ Intention Actionsとは異なります。Sensei の目的は、プロジェクト固有の、あるいは開発者個人のローカルなマッチャーやリライタを作成する方法を提供することです。

私たちは、マッチングルールとリライトルールの両方が簡単に書けて、実験できるようなGUIをまとめてみました。

個人的な向上にどのように役立つのか?

新しいライブラリを学ぶときは、その方法やフォーマットを筋肉に記憶させるのに時間がかかります。そのため、私は以下のようなパーソナルレシピを作成することにしました。

  • 公式ドキュメントやチュートリアルページへのリンク
  • 最も効果的な定型的なテンプレートを持っている
  • 不適切なコーディングの修正
  • ライブラリーの使用に役立つボイラープレートコードの追加

Sensei を使って一時的なレシピを作り、自分が選んだ現在の練習方法を促し、効果的な習慣を身につけることができます。そして、そのレシピは一時的なものであり、私が使いこなせなくなったら削除することができるからです。

私のチームの改善にどのように役立つのか?

それと同じように、私たちはチームが合意されたコーディングスタンダードを筋肉に記憶させる手助けをします。

プルリクエストのレビューで同じコメントを見つけたときに適用するレシピのクックブックを作成。クックブックはプロジェクトと一緒にバージョンコントロールに保存されるので、プロジェクトに参加している全員が利用できます。また、プロンプトが不要になったときには、クックブックをオフにすることもできます。

Sensei 、早期にフィードバックを行うことができます。

Sensei で構築しようとしたのは、改善に役立つフィードバックと是正措置のリマインダーを、コーディングプロセスのできるだけ早い段階で引き出す方法です。

を待つのではなく

  • スタティック・アナライザーの結果
  • コードレビューのコメント

その代わりに、強制したいカスタムスタンダードに対するフィードバックを、コーディングしながら確認することができます。

そして、標準に準拠したコードを書くために、注意喚起や実際の書き換えルールが用意されています。

Sensei はフレキシブルです。

そういう意味では、Sensei は、ちょっとしたミックスですね。

  • part Static Analyser
  • コーディング・チューター
  • リライトエンジン

Sensei は、"What isSensei? "と言う仕事を少しだけ難しくするほどの柔軟性があります。

Sensei プログラミングワークフローのギャップを埋める

Sensei は、プログラマーのワークフローに欠けている部分であり、あなたやあなたのチームが現在取り組んでいるコーディングスタイルやライブラリの使用における特定の要素を改善するのに役立つものにしようと考えています。

この柔軟性は、静的解析ツールや組み込みのIntelliJ Intentionsに比べて、Sensei を使いこなすのに少し時間がかかることを意味します。それでも、実験に時間を費やすことで、個人の開発プロセスにおける学習をスピードアップする新しい方法を得ることができます。

実験方法は?

Sensei を[Intellij Marketplace]からダウンロードしてインストールしたら。

Sensei を活用する最も簡単な方法は、自分のコーディングプロセスを見て検討することです。

  • どんなドキュメントを調べ続けているのか?
    -- そのドキュメントにリンクしたSensei のレシピを追加することができます。

  • -- そのお粗末なコーディングパターンを一時的にmatcherとしてコード化し、本当に書きたいコードに修正するQuick Fix rewriteを書いてみてはいかがでしょうか。
  • ライブラリを使用するために、どのような定型的なコードを書くのですか?
    -- コードを書いてくれるQuick Fixルールを作ればいいのではないでしょうか。

Sensei は、あなたが使用しているどのような静的解析ツールと一緒に動作するように設計されているので、もし静的解析から同じ違反が報告されていることがわかったら、Sensei のレシピでその条件を再現することができます。そして、間違いを発見するだけでなく、正しいコードを素早く書けるように訓練するために、Quick Fixを追加することができます。

リソースを見る
リソースを見る

著者

アラン・リチャードソン

もっと知りたい?

セキュアコーディングに関する最新の知見をブログでご紹介しています。

当社の豊富なリソースライブラリは、安全なコーディングアップスキルに対する人間的なアプローチを強化することを目的としています。

ブログを見る
もっと知りたい?

開発者主導のセキュリティに関する最新の研究成果を入手する

ホワイトペーパーからウェビナーまで、開発者主導のセキュアコーディングを始めるために役立つリソースが満載のリソースライブラリです。今すぐご覧ください。

リソース・ハブ

Sensei とは?

2020年10月08日発行
アラン・リチャードソン著

Sensei プラグインは、ソース・コードの中から特定のコード・パターンを見つけ出し、一致するコードを修正するために書き換えルールを適用する簡単な方法を提供します。すべてはIntellij IDEの中で、しかもリアルタイムで行われます。

例えば、理由のない JUnit の `@Disabled` アノテーションにマッチするルールを作成することができます。Sensei は、IDE でコードをハイライトして問題を知らせてくれます。

さらに、`alt+enter`すると、`Todoコメントのパラメータを追加する`というオプションがあります。

これを選択すると、コードを修正して定型的な理由を追加することができます。

例えば、`@Disabled` は ` @Disabled("TODO: add a description here")` となります。

Sensei は、静的解析コードスキャナの機能とコード書き換えエンジンを組み合わせたものです。

IntelliJ Intention Actions

上記の説明に基づけば、(Sensei を使用していなかった場合)明らかな代替案は、IntelliJ Intention Actions 機能を使用することです。

Sensei はIntelliJ Intention Actionsとは異なります。Sensei の目的は、プロジェクト固有の、あるいは開発者個人のローカルなマッチャーやリライタを作成する方法を提供することです。

私たちは、マッチングルールとリライトルールの両方が簡単に書けて、実験できるようなGUIをまとめてみました。

個人的な向上にどのように役立つのか?

新しいライブラリを学ぶときは、その方法やフォーマットを筋肉に記憶させるのに時間がかかります。そのため、私は以下のようなパーソナルレシピを作成することにしました。

  • 公式ドキュメントやチュートリアルページへのリンク
  • 最も効果的な定型的なテンプレートを持っている
  • 不適切なコーディングの修正
  • ライブラリーの使用に役立つボイラープレートコードの追加

Sensei を使って一時的なレシピを作り、自分が選んだ現在の練習方法を促し、効果的な習慣を身につけることができます。そして、そのレシピは一時的なものであり、私が使いこなせなくなったら削除することができるからです。

私のチームの改善にどのように役立つのか?

それと同じように、私たちはチームが合意されたコーディングスタンダードを筋肉に記憶させる手助けをします。

プルリクエストのレビューで同じコメントを見つけたときに適用するレシピのクックブックを作成。クックブックはプロジェクトと一緒にバージョンコントロールに保存されるので、プロジェクトに参加している全員が利用できます。また、プロンプトが不要になったときには、クックブックをオフにすることもできます。

Sensei 、早期にフィードバックを行うことができます。

Sensei で構築しようとしたのは、改善に役立つフィードバックと是正措置のリマインダーを、コーディングプロセスのできるだけ早い段階で引き出す方法です。

を待つのではなく

  • スタティック・アナライザーの結果
  • コードレビューのコメント

その代わりに、強制したいカスタムスタンダードに対するフィードバックを、コーディングしながら確認することができます。

そして、標準に準拠したコードを書くために、注意喚起や実際の書き換えルールが用意されています。

Sensei はフレキシブルです。

そういう意味では、Sensei は、ちょっとしたミックスですね。

  • part Static Analyser
  • コーディング・チューター
  • リライトエンジン

Sensei は、"What isSensei? "と言う仕事を少しだけ難しくするほどの柔軟性があります。

Sensei プログラミングワークフローのギャップを埋める

Sensei は、プログラマーのワークフローに欠けている部分であり、あなたやあなたのチームが現在取り組んでいるコーディングスタイルやライブラリの使用における特定の要素を改善するのに役立つものにしようと考えています。

この柔軟性は、静的解析ツールや組み込みのIntelliJ Intentionsに比べて、Sensei を使いこなすのに少し時間がかかることを意味します。それでも、実験に時間を費やすことで、個人の開発プロセスにおける学習をスピードアップする新しい方法を得ることができます。

実験方法は?

Sensei を[Intellij Marketplace]からダウンロードしてインストールしたら。

Sensei を活用する最も簡単な方法は、自分のコーディングプロセスを見て検討することです。

  • どんなドキュメントを調べ続けているのか?
    -- そのドキュメントにリンクしたSensei のレシピを追加することができます。

  • -- そのお粗末なコーディングパターンを一時的にmatcherとしてコード化し、本当に書きたいコードに修正するQuick Fix rewriteを書いてみてはいかがでしょうか。
  • ライブラリを使用するために、どのような定型的なコードを書くのですか?
    -- コードを書いてくれるQuick Fixルールを作ればいいのではないでしょうか。

Sensei は、あなたが使用しているどのような静的解析ツールと一緒に動作するように設計されているので、もし静的解析から同じ違反が報告されていることがわかったら、Sensei のレシピでその条件を再現することができます。そして、間違いを発見するだけでなく、正しいコードを素早く書けるように訓練するために、Quick Fixを追加することができます。

弊社製品や関連するセキュアコーディングのトピックに関する情報をお送りする許可をお願いします。当社は、お客様の個人情報を細心の注意を払って取り扱い、マーケティング目的で他社に販売することは決してありません。

送信
フォームを送信するには、「Analytics」のCookieを有効にしてください。完了したら、再度無効にしてください。