ブログ

Senseiとは?

October 8, 2020
アラン・リチャードソン
ノートパソコンでタイピングする手元と画面上のコードに「Senseiでセキュアコーディングをマスターしよう」というテキストが重なる。

Senseiプラグインを使用すると、ソースコード内の特定のコードパターンを簡単に検索し、書き換えルールを適用して該当箇所を修正できます。これらすべてをIntelliJ IDE内でリアルタイムに行うことが可能です。

‍

‍

例えば、理由が記述されていないJUnitの`@Disabled`アノテーションを検索するルールを作成すると、SenseiがIDE上で該当コードをハイライトして問題を通知します。

さらに、`alt+enter`を押すことで、`Add a todo comment parameter`(TODOコメントパラメータを追加)というオプションを選択できるようになります。

これを選択すると、定型文の理由がコードに追加されます。その後、内容を編集することも可能です。編集しなかった場合は、TODOパネルに表示されるようになります。

例:`@Disabled` が `@Disabled("TODO: add a description here")` に変更されます。

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

IntelliJのインテンションアクション

上記の説明に基づくと、Senseiを使用しない場合の明白な代替手段は、IntelliJのインテンションアクション機能を利用することです。

SenseiがIntelliJのインテンションアクションと異なる点は、プロジェクト固有、あるいは個々の開発者レベルでマッチングや書き換えルールを作成できる点にあります。

私たちは、マッチングルールや書き換えルールの作成と試行を容易にするGUIの構築に努めてきました。

User interface showing recipe settings with annotation search and Java code snippet using @Disabled.

個人的なスキルアップにどう役立ちますか?

新しいライブラリを学習する際、メソッドやフォーマットを身体で覚えるまでには時間がかかります。そこで、以下のような個人的なレシピを作成することができます。

  • 公式ドキュメントやチュートリアルページへのリンクを貼る
  • 最も効果的な定型テンプレートを用意する
  • 不適切なコーディング習慣を修正する
  • ライブラリの使用を支援する定型コードを追加する

Senseiを使って一時的なレシピを作成すれば、採用したいコーディング手法を促し、効果的な習慣を身につける手助けとなります。レシピは一時的なものなので、習得した後は削除することができます。

チームの改善にどう役立ちますか?

同様の方法で、チーム全体で合意したコーディング標準を身体で覚える手助けができます。

プルリクエストのレビューで繰り返し指摘される内容をレシピ集(クックブック)として作成します。クックブックはプロジェクトのバージョン管理システムに保存されるため、チーム全員が利用可能です。また、不要になったら無効化することもできます。

Senseiは早期のフィードバックを可能にします

Senseiは、改善につながるフィードバックや修正のためのリマインダーを、コーディングプロセスの可能な限り早い段階で提供することを目指して開発されました。

待つのではなく

  • 静的解析ツールの結果
  • コードレビューのコメント

コーディング中に、独自の基準に基づいたフィードバックを直接確認できるようになります。

また、基準に準拠したコードを書くためのリマインダーや、自動書き換えルールも用意されています。

Senseiは柔軟です

Senseiは、以下の要素を組み合わせたツールであるため、その性質は少しユニークです。

  • 静的解析ツール
  • コーディングの家庭教師
  • コード書き換えエンジン

Senseiは柔軟性が高いため、「Senseiとは何か?」を一言で説明するのが少し難しいほどです。

Senseiはプログラミングワークフローの隙間を埋めるツールです

Senseiは、チームで取り組んでいるコーディングスタイルやライブラリの使用方法など、特定の要素を改善するための「欠けていたピース」となることを目指しています。

この柔軟性ゆえに、静的解析ツールやIntelliJ標準のインテンション機能よりも習得に少し時間がかかるかもしれません。しかし、試行錯誤を重ねることで、自身のスキルアップを加速させる新しい方法を身につけることができます。

どのように試せばよいでしょうか?

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

Senseiを最大限に活用する最も簡単な方法は、日々のコーディングプロセスを見直し、以下の点について考えてみることです。

  • 頻繁に調べているドキュメントはありますか?
    -- そのドキュメントへのリンクを含むSenseiレシピを追加できます。
  • 繰り返してしまう単純なミスはありますか?
    -- その誤ったパターンをSenseiで検出し、修正案を適用する「クイックフィックス」を作成できます。
  • ライブラリを使う際、決まりきったコード(ボイラープレート)を書いていませんか?
    -- クイックフィックスを作成して、コードの記述を自動化できます。

Senseiは既存の静的解析ツールと併用できるように設計されています。静的解析で繰り返し指摘される違反があれば、その条件をSenseiのレシピとして再現してみましょう。さらにクイックフィックスを追加すれば、ミスを特定するだけでなく、正しいコードを素早く書くためのトレーニングにもなります。

タグライン

AI主導の開発をリリース前にガバナンスする

AIを活用したリスク測定、コミット時のセキュアコーディングポリシーの強制、そしてSDLC全体を通じたセキュアなデリバリーの加速を実現します。

デモを予約する
リソースライブラリ

他のブログ記事を見る

セキュアコーディング、AIガバナンス、ソフトウェアリスク管理に関する専門的なコンテンツをご覧ください。

すべて表示
導入事例
フィルターラベル
これはdivブロック内のテキストです。

Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

詳細はこちら
導入事例
フィルターラベル
これはdivブロック内のテキストです。

Security as culture: How Blue Prism cultivates world-class secure developers

Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed

詳細はこちら
導入事例
フィルターラベル
これはdivブロック内のテキストです。

セキュリティ文化の統一:Sageはいかにしてチャンピオンプログラムを構築したか

Sageがどのようにして柔軟かつ関係性を重視したアプローチでセキュリティを強化し、200名以上のセキュリティチャンピオンを育成して、目に見えるリスク低減を実現したのかをご紹介します。

詳細はこちら
ブログ
フィルターラベル
これはdivブロック内のテキストです。

2026年サイバーセキュリティ意識向上月間:企業防衛に不可欠なAIセキュリティの理解

主要なAI企業の多くが、安全対策が追いつくまでの間、AI開発を世界的に減速させるよう公に呼びかける事態となっています。しかし現実には、深刻なセキュリティ問題はすでに顕在化しています。AI導入に伴う金銭的コストやリスクが増大し続ける中、多くのセキュリティリーダーや経営陣は差し迫った状況に追い込まれています。

詳細はこちら
ブログ
フィルターラベル
これはdivブロック内のテキストです。

イネーブラー8:プログラムのブランディング

セキュアコーディングプログラムを成功させるには、優れたコンテンツ以上のものが必要です。イネーブラー8では、ブランディングによって参加を「憧れのステータスを得る体験」へと変える方法を解説します。

詳細はこちら
ブログ
フィルターラベル
これはdivブロック内のテキストです。

すべての従業員が今、AIサイバーセキュリティの最前線に立っている

エンタープライズテクノロジーの状況は、手遅れになるまで誰も予測できなかったほどの速さで変化しています。私たちは今、人間が書いたコードと基本的なコパイロット支援の時代から、エージェント型開発ライフサイクル(ADLC)の時代へと正式に足を踏み入れました。自律型AIエージェントは、複数の機能にわたってかつてない効率性をもたらす一方で、全く新しい種類のセキュリティリスクや規制リスクも引き起こしています。

詳細はこちら

AIを活用した開発をリリース前にセキュアに

開発者のリスクを可視化し、ポリシーを適用することで、ソフトウェア開発ライフサイクル全体における脆弱性を未然に防ぎます。

デモを予約する
該当する項目が見つかりません。