Was ist Sensei?

Veröffentlicht Okt 08, 2020
von Alan Richardson
tl;dr?

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.

Das Sensei Plugin bietet eine einfache Möglichkeit, bestimmte Codemuster in Ihrem Quellcode zu finden und dann Rewrite-Regeln anzuwenden, um den passenden Code zu ändern. Und das alles innerhalb der Intellij IDE und in Echtzeit.

Sie könnten zum Beispiel eine Regel erstellen, die auf JUnit `@Disabled` Annotationen passt, die keinen Grund haben. Sensei würde Sie dann über das Problem informieren, indem der Code in der IDE hervorgehoben wird.

Zusätzlich können Sie bei `alt+enter` die Option `Add a todo comment parameter` haben.

Wenn Sie diese Option auswählen, wird der Code so geändert, dass er einen Boilerplate-Grund hinzufügt, den Sie dann ändern können, und wenn Sie das nicht tun, wird er in Ihrem TODO-Bedienfeld angezeigt.

z.B. `@Disabled` würde zu ` @Disabled("TODO: füge hier eine Beschreibung ein")`

Sensei kombiniert die Funktionalität eines Static Analysis Code Scanners mit einer Code Rewriting Engine.

IntelliJ Intention-Aktionen

Basierend auf der obigen Beschreibung ist die offensichtliche Alternative (wenn Sie nicht Sensei verwenden würden) die Verwendung der IntelliJ Intention Actions-Funktionalität.

Sensei unterscheidet sich von IntelliJ Intention Actions, da das Ziel von Sensei darin besteht, eine Möglichkeit zum Erstellen von Matchern und Rewritern zu bieten, die projektspezifisch oder sogar lokal für einen einzelnen Entwickler sind.

Wir haben versucht, eine Benutzeroberfläche zusammenzustellen, mit der sowohl die Anpassungs- als auch die Umschreibungsregeln einfach zu schreiben und zu experimentieren sind.

Wie kann es mir persönlich helfen, mich zu verbessern?

Wenn ich eine neue Bibliothek lerne, brauche ich Zeit, um ein Muskelgedächtnis für die Methoden und die Formatierung aufzubauen. Ich könnte also persönliche Rezepte erstellen, die

  • Verweis auf die offizielle Dokumentation oder Tutorialseiten
  • haben Boilerplate-Vorlagen, die am effektivsten sind
  • schlechte Kodierungspraktiken beheben
  • Boilerplate-Code hinzufügen, um die Verwendung einer Bibliothek zu unterstützen

Ich kann Sensei verwenden, um temporäre Rezepte zu erstellen, die mich zu den aktuellen Praktiken, die ich gewählt habe, anregen und mir helfen, effektive Gewohnheiten aufzubauen. Und die Rezepte sind temporär, weil ich sie entfernen kann, wenn ich aus ihnen herausgewachsen bin.

Wie kann es meinem Team helfen, sich zu verbessern?

Auf die gleiche Weise können wir Teams helfen, ein Muskelgedächtnis für vereinbarte Codierungsstandards aufzubauen.

Erstellen von Kochbüchern mit Rezepten, die wir anwenden, wenn wir die gleichen Kommentare in Pull-Reviews finden. Da die Kochbücher in der Versionskontrolle mit dem Projekt gespeichert werden, sind sie für jeden im Projekt verfügbar. Und wir können sie ausschalten, wenn wir die Aufforderung nicht mehr brauchen.

Sensei hilft, frühzeitig Feedback zu geben

Was wir mit Sensei versucht haben, ist eine Möglichkeit, das Feedback, das uns hilft, uns zu verbessern, und Hinweise auf Korrekturmaßnahmen so früh wie möglich in den Codierungsprozess einzubringen.

Anstatt zu warten auf

  • die Ergebnisse eines statischen Analysators
  • die Kommentare aus einem Code-Review

Stattdessen können wir das Feedback für benutzerdefinierte Standards, die wir durchsetzen wollen, während des Programmierens sehen.

Und wir haben entweder Erinnerungshilfen oder tatsächliche Rewrite-Regeln, die uns helfen, Code zu schreiben, der den Standards entspricht.

Sensei ist flexibel

In dieser Hinsicht ist Sensei ein bisschen eine Mischung, denn es ist:

  • Teil Statischer Analysator
  • Kodierungstutor
  • Umschreibemaschine

Sensei ist flexibel genug, um die Aufgabe "Was ist Sensei?" ein wenig schwieriger zu machen.

Sensei füllt eine Lücke im Programmier-Workflow

Wir haben versucht, Sensei zu dem fehlenden Teil des Arbeitsablaufs von Programmierern zu machen, der Ihnen hilft, bestimmte Elemente in Ihrem Codierungsstil oder bei der Verwendung von Bibliotheken zu verbessern, mit denen Sie und Ihr Team derzeit arbeiten.

Diese Flexibilität bedeutet, dass man etwas mehr Zeit braucht, um sich mit Sensei vertraut zu machen als mit einem statischen Analysetool oder den eingebauten IntelliJ Intentions. Dennoch werden Sie, wenn Sie die Zeit zum Experimentieren aufwenden, eine neue Möglichkeit gewinnen, Ihr Lernen in Ihrem persönlichen Entwicklungsprozess zu beschleunigen.

Wie kann man experimentieren?

Sobald Sie Sensei vom[Intellij Marketplace] heruntergeladen und installiert haben, können Sie

Der einfachste Weg, Sensei für sich arbeiten zu lassen, besteht darin, Ihren Codierungsprozess zu betrachten und zu berücksichtigen:

  • In welcher Dokumentation schlagen Sie immer wieder nach?
    -- Sie könnten einige Sensei Rezepte hinzufügen, die auf diese Dokumentation zurückverweisen.
  • Welche einfachen Fehler machen Sie immer wieder?
    -- Sie könnten dieses schlechte Codierungsmuster vorübergehend als Matcher kodieren und einen Quick-Fix-Rewrite schreiben, der den Code so abändert, dass er das ist, was Sie wirklich schreiben wollen.
  • Welchen Boilerplate-Code schreiben Sie, um eine Bibliothek zu verwenden?
    -- Sie könnten eine Quick-Fix-Regel erstellen, um den Code für Sie zu schreiben.

Da Sensei so konzipiert ist, dass es mit dem von Ihnen verwendeten statischen Analysewerkzeug zusammenarbeitet, können Sie, wenn Sie feststellen, dass dieselben Verstöße von der statischen Analyse gemeldet werden, die Bedingung in einem Sensei Rezept replizieren. Sie können dann eine Schnellreparatur hinzufügen, die Ihnen hilft, nicht nur den Fehler zu identifizieren, sondern auch schnell zum Schreiben des richtigen Codes überzugehen

Ressource anzeigen

Sie wollen mehr?

Tauchen Sie ein in unsere neuesten Erkenntnisse über sichere Kodierung im Blog.

Unsere umfangreiche Ressourcenbibliothek zielt darauf ab, die menschliche Herangehensweise an eine sichere Weiterbildung im Bereich der Programmierung zu stärken.

Blog ansehen
Sie wollen mehr?

Holen Sie sich die neuesten Forschungsergebnisse zur entwicklergesteuerten Sicherheit

Unsere umfangreiche Ressourcenbibliothek ist voll von hilfreichen Ressourcen, von Whitepapers bis hin zu Webinaren, die Ihnen den Einstieg in die entwicklungsorientierte sichere Programmierung erleichtern. Erforschen Sie sie jetzt.

Ressourcendrehscheibe

Was ist Sensei?

Veröffentlicht Feb 03, 2023
Von Alan Richardson

Das Sensei Plugin bietet eine einfache Möglichkeit, bestimmte Codemuster in Ihrem Quellcode zu finden und dann Rewrite-Regeln anzuwenden, um den passenden Code zu ändern. Und das alles innerhalb der Intellij IDE und in Echtzeit.

Sie könnten zum Beispiel eine Regel erstellen, die auf JUnit `@Disabled` Annotationen passt, die keinen Grund haben. Sensei würde Sie dann über das Problem informieren, indem der Code in der IDE hervorgehoben wird.

Zusätzlich können Sie bei `alt+enter` die Option `Add a todo comment parameter` haben.

Wenn Sie diese Option auswählen, wird der Code so geändert, dass er einen Boilerplate-Grund hinzufügt, den Sie dann ändern können, und wenn Sie das nicht tun, wird er in Ihrem TODO-Bedienfeld angezeigt.

z.B. `@Disabled` würde zu ` @Disabled("TODO: füge hier eine Beschreibung ein")`

Sensei kombiniert die Funktionalität eines Static Analysis Code Scanners mit einer Code Rewriting Engine.

IntelliJ Intention-Aktionen

Basierend auf der obigen Beschreibung ist die offensichtliche Alternative (wenn Sie nicht Sensei verwenden würden) die Verwendung der IntelliJ Intention Actions-Funktionalität.

Sensei unterscheidet sich von IntelliJ Intention Actions, da das Ziel von Sensei darin besteht, eine Möglichkeit zum Erstellen von Matchern und Rewritern zu bieten, die projektspezifisch oder sogar lokal für einen einzelnen Entwickler sind.

Wir haben versucht, eine Benutzeroberfläche zusammenzustellen, mit der sowohl die Anpassungs- als auch die Umschreibungsregeln einfach zu schreiben und zu experimentieren sind.

Wie kann es mir persönlich helfen, mich zu verbessern?

Wenn ich eine neue Bibliothek lerne, brauche ich Zeit, um ein Muskelgedächtnis für die Methoden und die Formatierung aufzubauen. Ich könnte also persönliche Rezepte erstellen, die

  • Verweis auf die offizielle Dokumentation oder Tutorialseiten
  • haben Boilerplate-Vorlagen, die am effektivsten sind
  • schlechte Kodierungspraktiken beheben
  • Boilerplate-Code hinzufügen, um die Verwendung einer Bibliothek zu unterstützen

Ich kann Sensei verwenden, um temporäre Rezepte zu erstellen, die mich zu den aktuellen Praktiken, die ich gewählt habe, anregen und mir helfen, effektive Gewohnheiten aufzubauen. Und die Rezepte sind temporär, weil ich sie entfernen kann, wenn ich aus ihnen herausgewachsen bin.

Wie kann es meinem Team helfen, sich zu verbessern?

Auf die gleiche Weise können wir Teams helfen, ein Muskelgedächtnis für vereinbarte Codierungsstandards aufzubauen.

Erstellen von Kochbüchern mit Rezepten, die wir anwenden, wenn wir die gleichen Kommentare in Pull-Reviews finden. Da die Kochbücher in der Versionskontrolle mit dem Projekt gespeichert werden, sind sie für jeden im Projekt verfügbar. Und wir können sie ausschalten, wenn wir die Aufforderung nicht mehr brauchen.

Sensei hilft, frühzeitig Feedback zu geben

Was wir mit Sensei versucht haben, ist eine Möglichkeit, das Feedback, das uns hilft, uns zu verbessern, und Hinweise auf Korrekturmaßnahmen so früh wie möglich in den Codierungsprozess einzubringen.

Anstatt zu warten auf

  • die Ergebnisse eines statischen Analysators
  • die Kommentare aus einem Code-Review

Stattdessen können wir das Feedback für benutzerdefinierte Standards, die wir durchsetzen wollen, während des Programmierens sehen.

Und wir haben entweder Erinnerungshilfen oder tatsächliche Rewrite-Regeln, die uns helfen, Code zu schreiben, der den Standards entspricht.

Sensei ist flexibel

In dieser Hinsicht ist Sensei ein bisschen eine Mischung, denn es ist:

  • Teil Statischer Analysator
  • Kodierungstutor
  • Umschreibemaschine

Sensei ist flexibel genug, um die Aufgabe "Was ist Sensei?" ein wenig schwieriger zu machen.

Sensei füllt eine Lücke im Programmier-Workflow

Wir haben versucht, Sensei zu dem fehlenden Teil des Arbeitsablaufs von Programmierern zu machen, der Ihnen hilft, bestimmte Elemente in Ihrem Codierungsstil oder bei der Verwendung von Bibliotheken zu verbessern, mit denen Sie und Ihr Team derzeit arbeiten.

Diese Flexibilität bedeutet, dass man etwas mehr Zeit braucht, um sich mit Sensei vertraut zu machen als mit einem statischen Analysetool oder den eingebauten IntelliJ Intentions. Dennoch werden Sie, wenn Sie die Zeit zum Experimentieren aufwenden, eine neue Möglichkeit gewinnen, Ihr Lernen in Ihrem persönlichen Entwicklungsprozess zu beschleunigen.

Wie kann man experimentieren?

Sobald Sie Sensei vom[Intellij Marketplace] heruntergeladen und installiert haben, können Sie

Der einfachste Weg, Sensei für sich arbeiten zu lassen, besteht darin, Ihren Codierungsprozess zu betrachten und zu berücksichtigen:

  • In welcher Dokumentation schlagen Sie immer wieder nach?
    -- Sie könnten einige Sensei Rezepte hinzufügen, die auf diese Dokumentation zurückverweisen.
  • Welche einfachen Fehler machen Sie immer wieder?
    -- Sie könnten dieses schlechte Codierungsmuster vorübergehend als Matcher kodieren und einen Quick-Fix-Rewrite schreiben, der den Code so abändert, dass er das ist, was Sie wirklich schreiben wollen.
  • Welchen Boilerplate-Code schreiben Sie, um eine Bibliothek zu verwenden?
    -- Sie könnten eine Quick-Fix-Regel erstellen, um den Code für Sie zu schreiben.

Da Sensei so konzipiert ist, dass es mit dem von Ihnen verwendeten statischen Analysewerkzeug zusammenarbeitet, können Sie, wenn Sie feststellen, dass dieselben Verstöße von der statischen Analyse gemeldet werden, die Bedingung in einem Sensei Rezept replizieren. Sie können dann eine Schnellreparatur hinzufügen, die Ihnen hilft, nicht nur den Fehler zu identifizieren, sondern auch schnell zum Schreiben des richtigen Codes überzugehen

Geben Sie Ihre Daten ein, um den vollständigen Bericht aufzurufen.

Wir bitten Sie um Ihre Erlaubnis, Ihnen Informationen über unsere Produkte und/oder verwandte Themen der sicheren Codierung zuzusenden. Wir werden Ihre persönlichen Daten immer mit äußerster Sorgfalt behandeln und sie niemals zu Marketingzwecken an andere Unternehmen verkaufen.

Huch, Gänseblümchen