
Hinzufügen von Parametern zu Anmerkungen mithilfe von Rewrite-Aktionen
In diesem Blogbeitrag werden wir:
- Suchen und Abgleichen von Anmerkungen demonstrieren
- Amen-Bemerkungen mit Schnurrbartvorlagen
Sensei bietet die Möglichkeit, problematische Codemuster abzugleichen und sie dann an vereinbarte Implementierungen anzupassen. In diesem Beispiel verwende ich @Disabled ohne einen Parameter als problematisches Codemuster.
Deaktivierte Testanmerkung
Deaktivierte Tests ohne angegebenen Grund können sich langfristig als problematisch erweisen, weil wir vergessen, warum wir sie deaktiviert haben.
@Disabled
void thisTestMethodHasNoDisabledReason(){
Assertions.fail("This test is disabled and should not run");
}
Das Risiko besteht darin, dass sich die Codebasis im Laufe der Zeit weiterentwickelt, der deaktivierte Test nicht im Gleichschritt mit dem Zweck des Codes aktualisiert wird und schließlich redundant und irrelevant wird und möglicherweise nie wieder aktiviert wird.
Bei Code-Reviews werden wir oft darauf hinweisen, dass es sinnvoll ist, eine erklärende Beschreibung als Annotationsparameter hinzuzufügen.
@Disabled ("Disabled to demonstrate adding a reason")
void thisTestMethodHasDisabledReason(){
Assertions.fail("This test is disabled and should not run");
}
Ein Sensei Rezept
Wir können ein Rezept schreiben, das erkennt, wenn @Disabled ohne Erklärung hinzugefügt wird, und einen Quick Fix, der uns daran erinnert, den tatsächlichen Grund für die Deaktivierung hinzuzufügen.
Wenn ich darüber nachdenke, was ich tun werde, muss ich es tun:
- entspricht der Disabled-Anmerkung ohne Parameter
- die Anmerkung "Disabled" so ändern, dass sie einen Parameter mit dem Markierungstext "TODO: fügen Sie hier eine Beschreibung ein" hat
Ein Warnrezept erstellen
Ich verwende Alt+Eingabe, um ein neues Rezept zu erstellen.

Fügen Sie dann den grundlegenden beschreibenden Text in den allgemeinen Informationen hinzu.

Wenn Sie die Regel zu einer Warnung machen, wird jeder übereinstimmende Code hervorgehoben, aber nicht als eklatanter Fehler angezeigt.

Finden Sie die Bemerkung
Im Rezepteditor ändere ich die Suche so, dass sie mit einer Bemerkung übereinstimmt.
Dadurch werden alle Anmerkungen in der Vorschau hervorgehoben.

Danach möchte ich nach dem Typ der Anmerkung filtern.
Ich könnte einfach Disabled verwenden, aber ich qualifiziere die Klasse vollständig mit dem Paket, sodass sie nur mit der Annotation von JUnit 5 übereinstimmt. Da der Quellcode in der Vorschau angezeigt wird, kann ich diesen einfach kopieren und aus dem eigentlichen Code einfügen, um Tippfehler zu vermeiden.
Ich möchte dann nur Annotationen ohne Parameter abgleichen, und das kann ich mit der GUI machen.

d.h. Suche:
search:
annotation:
type: "org.junit.jupiter.api.Disabled"
without:
parameters:
- {}
Erstellen einer Aktion "Schnellreparatur neu schreiben
Für meinen QuickFix werde ich eine Rewrite-Aktion verwenden.
Ich verwende die Funktion " Variablen anzeigen", um mir die Mustache-Variablen anzeigen zu lassen und eine Vorschau des Inhalts zu erhalten.

Und dann füge ich den zusätzlichen Code hinzu, der benötigt wird, um den Platzmarkenkommentar zu erstellen.

d.h. QuickFix:
availableFixes:
- name: "Add a todo comment parameter"
actions:
- rewrite:
to: "{{{ . }}}(\"TODO: add a description here\")"
target: "self"
Sensei in Aktion
Wir haben ein kurzes Video erstellt, das den Prozess der Rezepterstellung in Aktion zeigt.
Zusammenfassung
Beim Erstellen eines Rewrite-Quick-Fix ist es einfacher, wenn wir nach dem Code-Element suchen können, das wir umschreiben wollen, weil es dann die eigene Entität ist, auf die wir einwirken können.
In diesem Beispiel habe ich eine Rewrite-Aktion verwendet, um die Annotation zu ändern. Rewrite ist eine universelle Aktion, die auf jedes Code-Element angewendet werden kann und eine gute Voreinstellung ist, um sie zu erkunden.

Lernen Sie, wie Sie mit Sensei problematische Codemuster abgleichen und dann anhand von Beispielen für den Abgleich von Annotationen an vereinbarte Implementierungen anpassen.
Alan Richardson verfügt über mehr als zwanzig Jahre Berufserfahrung in der IT-Branche. Er arbeitete als Entwickler und auf jeder Ebene der Testhierarchie, vom Tester bis hin zum Head of Testing. Als Head of Developer Relations bei Secure Code Warrior arbeitet er direkt mit Teams zusammen, um die Entwicklung von hochwertigem, sicherem Code zu verbessern. Alan ist der Autor von vier Büchern, darunter "Dear Evil Tester" und "Java For Testers". Alan hat auch Online-Schulungen courses erstellt, um Menschen beim Erlernen von technischen Web-Tests und Selenium WebDriver mit Java zu helfen. Alan veröffentlicht seine Schriften und Schulungsvideos auf SeleniumSimplified.com, EvilTester.com, JavaForTesters.com und CompendiumDev.co.uk.

Secure Code Warrior ist für Ihr Unternehmen da, um Sie dabei zu unterstützen, Ihren Code über den gesamten Lebenszyklus der Softwareentwicklung hinweg zu sichern und eine Kultur zu schaffen, in der Cybersicherheit an erster Stelle steht. Ganz gleich, ob Sie AppSec-Manager, Entwickler, CISO oder ein anderer Sicherheitsverantwortlicher sind, wir können Ihrem Unternehmen helfen, die mit unsicherem Code verbundenen Risiken zu reduzieren.
Demo buchenAlan Richardson verfügt über mehr als zwanzig Jahre Berufserfahrung in der IT-Branche. Er arbeitete als Entwickler und auf jeder Ebene der Testhierarchie, vom Tester bis hin zum Head of Testing. Als Head of Developer Relations bei Secure Code Warrior arbeitet er direkt mit Teams zusammen, um die Entwicklung von hochwertigem, sicherem Code zu verbessern. Alan ist der Autor von vier Büchern, darunter "Dear Evil Tester" und "Java For Testers". Alan hat auch Online-Schulungen courses erstellt, um Menschen beim Erlernen von technischen Web-Tests und Selenium WebDriver mit Java zu helfen. Alan veröffentlicht seine Schriften und Schulungsvideos auf SeleniumSimplified.com, EvilTester.com, JavaForTesters.com und CompendiumDev.co.uk.

In diesem Blogbeitrag werden wir:
- Suchen und Abgleichen von Anmerkungen demonstrieren
- Amen-Bemerkungen mit Schnurrbartvorlagen
Sensei bietet die Möglichkeit, problematische Codemuster abzugleichen und sie dann an vereinbarte Implementierungen anzupassen. In diesem Beispiel verwende ich @Disabled ohne einen Parameter als problematisches Codemuster.
Deaktivierte Testanmerkung
Deaktivierte Tests ohne angegebenen Grund können sich langfristig als problematisch erweisen, weil wir vergessen, warum wir sie deaktiviert haben.
@Disabled
void thisTestMethodHasNoDisabledReason(){
Assertions.fail("This test is disabled and should not run");
}
Das Risiko besteht darin, dass sich die Codebasis im Laufe der Zeit weiterentwickelt, der deaktivierte Test nicht im Gleichschritt mit dem Zweck des Codes aktualisiert wird und schließlich redundant und irrelevant wird und möglicherweise nie wieder aktiviert wird.
Bei Code-Reviews werden wir oft darauf hinweisen, dass es sinnvoll ist, eine erklärende Beschreibung als Annotationsparameter hinzuzufügen.
@Disabled ("Disabled to demonstrate adding a reason")
void thisTestMethodHasDisabledReason(){
Assertions.fail("This test is disabled and should not run");
}
Ein Sensei Rezept
Wir können ein Rezept schreiben, das erkennt, wenn @Disabled ohne Erklärung hinzugefügt wird, und einen Quick Fix, der uns daran erinnert, den tatsächlichen Grund für die Deaktivierung hinzuzufügen.
Wenn ich darüber nachdenke, was ich tun werde, muss ich es tun:
- entspricht der Disabled-Anmerkung ohne Parameter
- die Anmerkung "Disabled" so ändern, dass sie einen Parameter mit dem Markierungstext "TODO: fügen Sie hier eine Beschreibung ein" hat
Ein Warnrezept erstellen
Ich verwende Alt+Eingabe, um ein neues Rezept zu erstellen.

Fügen Sie dann den grundlegenden beschreibenden Text in den allgemeinen Informationen hinzu.

Wenn Sie die Regel zu einer Warnung machen, wird jeder übereinstimmende Code hervorgehoben, aber nicht als eklatanter Fehler angezeigt.

Finden Sie die Bemerkung
Im Rezepteditor ändere ich die Suche so, dass sie mit einer Bemerkung übereinstimmt.
Dadurch werden alle Anmerkungen in der Vorschau hervorgehoben.

Danach möchte ich nach dem Typ der Anmerkung filtern.
Ich könnte einfach Disabled verwenden, aber ich qualifiziere die Klasse vollständig mit dem Paket, sodass sie nur mit der Annotation von JUnit 5 übereinstimmt. Da der Quellcode in der Vorschau angezeigt wird, kann ich diesen einfach kopieren und aus dem eigentlichen Code einfügen, um Tippfehler zu vermeiden.
Ich möchte dann nur Annotationen ohne Parameter abgleichen, und das kann ich mit der GUI machen.

d.h. Suche:
search:
annotation:
type: "org.junit.jupiter.api.Disabled"
without:
parameters:
- {}
Erstellen einer Aktion "Schnellreparatur neu schreiben
Für meinen QuickFix werde ich eine Rewrite-Aktion verwenden.
Ich verwende die Funktion " Variablen anzeigen", um mir die Mustache-Variablen anzeigen zu lassen und eine Vorschau des Inhalts zu erhalten.

Und dann füge ich den zusätzlichen Code hinzu, der benötigt wird, um den Platzmarkenkommentar zu erstellen.

d.h. QuickFix:
availableFixes:
- name: "Add a todo comment parameter"
actions:
- rewrite:
to: "{{{ . }}}(\"TODO: add a description here\")"
target: "self"
Sensei in Aktion
Wir haben ein kurzes Video erstellt, das den Prozess der Rezepterstellung in Aktion zeigt.
Zusammenfassung
Beim Erstellen eines Rewrite-Quick-Fix ist es einfacher, wenn wir nach dem Code-Element suchen können, das wir umschreiben wollen, weil es dann die eigene Entität ist, auf die wir einwirken können.
In diesem Beispiel habe ich eine Rewrite-Aktion verwendet, um die Annotation zu ändern. Rewrite ist eine universelle Aktion, die auf jedes Code-Element angewendet werden kann und eine gute Voreinstellung ist, um sie zu erkunden.
In diesem Blogbeitrag werden wir:
- Suchen und Abgleichen von Anmerkungen demonstrieren
- Amen-Bemerkungen mit Schnurrbartvorlagen
Sensei bietet die Möglichkeit, problematische Codemuster abzugleichen und sie dann an vereinbarte Implementierungen anzupassen. In diesem Beispiel verwende ich @Disabled ohne einen Parameter als problematisches Codemuster.
Deaktivierte Testanmerkung
Deaktivierte Tests ohne angegebenen Grund können sich langfristig als problematisch erweisen, weil wir vergessen, warum wir sie deaktiviert haben.
@Disabled
void thisTestMethodHasNoDisabledReason(){
Assertions.fail("This test is disabled and should not run");
}
Das Risiko besteht darin, dass sich die Codebasis im Laufe der Zeit weiterentwickelt, der deaktivierte Test nicht im Gleichschritt mit dem Zweck des Codes aktualisiert wird und schließlich redundant und irrelevant wird und möglicherweise nie wieder aktiviert wird.
Bei Code-Reviews werden wir oft darauf hinweisen, dass es sinnvoll ist, eine erklärende Beschreibung als Annotationsparameter hinzuzufügen.
@Disabled ("Disabled to demonstrate adding a reason")
void thisTestMethodHasDisabledReason(){
Assertions.fail("This test is disabled and should not run");
}
Ein Sensei Rezept
Wir können ein Rezept schreiben, das erkennt, wenn @Disabled ohne Erklärung hinzugefügt wird, und einen Quick Fix, der uns daran erinnert, den tatsächlichen Grund für die Deaktivierung hinzuzufügen.
Wenn ich darüber nachdenke, was ich tun werde, muss ich es tun:
- entspricht der Disabled-Anmerkung ohne Parameter
- die Anmerkung "Disabled" so ändern, dass sie einen Parameter mit dem Markierungstext "TODO: fügen Sie hier eine Beschreibung ein" hat
Ein Warnrezept erstellen
Ich verwende Alt+Eingabe, um ein neues Rezept zu erstellen.

Fügen Sie dann den grundlegenden beschreibenden Text in den allgemeinen Informationen hinzu.

Wenn Sie die Regel zu einer Warnung machen, wird jeder übereinstimmende Code hervorgehoben, aber nicht als eklatanter Fehler angezeigt.

Finden Sie die Bemerkung
Im Rezepteditor ändere ich die Suche so, dass sie mit einer Bemerkung übereinstimmt.
Dadurch werden alle Anmerkungen in der Vorschau hervorgehoben.

Danach möchte ich nach dem Typ der Anmerkung filtern.
Ich könnte einfach Disabled verwenden, aber ich qualifiziere die Klasse vollständig mit dem Paket, sodass sie nur mit der Annotation von JUnit 5 übereinstimmt. Da der Quellcode in der Vorschau angezeigt wird, kann ich diesen einfach kopieren und aus dem eigentlichen Code einfügen, um Tippfehler zu vermeiden.
Ich möchte dann nur Annotationen ohne Parameter abgleichen, und das kann ich mit der GUI machen.

d.h. Suche:
search:
annotation:
type: "org.junit.jupiter.api.Disabled"
without:
parameters:
- {}
Erstellen einer Aktion "Schnellreparatur neu schreiben
Für meinen QuickFix werde ich eine Rewrite-Aktion verwenden.
Ich verwende die Funktion " Variablen anzeigen", um mir die Mustache-Variablen anzeigen zu lassen und eine Vorschau des Inhalts zu erhalten.

Und dann füge ich den zusätzlichen Code hinzu, der benötigt wird, um den Platzmarkenkommentar zu erstellen.

d.h. QuickFix:
availableFixes:
- name: "Add a todo comment parameter"
actions:
- rewrite:
to: "{{{ . }}}(\"TODO: add a description here\")"
target: "self"
Sensei in Aktion
Wir haben ein kurzes Video erstellt, das den Prozess der Rezepterstellung in Aktion zeigt.
Zusammenfassung
Beim Erstellen eines Rewrite-Quick-Fix ist es einfacher, wenn wir nach dem Code-Element suchen können, das wir umschreiben wollen, weil es dann die eigene Entität ist, auf die wir einwirken können.
In diesem Beispiel habe ich eine Rewrite-Aktion verwendet, um die Annotation zu ändern. Rewrite ist eine universelle Aktion, die auf jedes Code-Element angewendet werden kann und eine gute Voreinstellung ist, um sie zu erkunden.

Klicken Sie auf den unten stehenden Link und laden Sie die PDF-Datei dieser Ressource herunter.
Secure Code Warrior ist für Ihr Unternehmen da, um Sie dabei zu unterstützen, Ihren Code über den gesamten Lebenszyklus der Softwareentwicklung hinweg zu sichern und eine Kultur zu schaffen, in der Cybersicherheit an erster Stelle steht. Ganz gleich, ob Sie AppSec-Manager, Entwickler, CISO oder ein anderer Sicherheitsverantwortlicher sind, wir können Ihrem Unternehmen helfen, die mit unsicherem Code verbundenen Risiken zu reduzieren.
Bericht ansehenDemo buchenAlan Richardson verfügt über mehr als zwanzig Jahre Berufserfahrung in der IT-Branche. Er arbeitete als Entwickler und auf jeder Ebene der Testhierarchie, vom Tester bis hin zum Head of Testing. Als Head of Developer Relations bei Secure Code Warrior arbeitet er direkt mit Teams zusammen, um die Entwicklung von hochwertigem, sicherem Code zu verbessern. Alan ist der Autor von vier Büchern, darunter "Dear Evil Tester" und "Java For Testers". Alan hat auch Online-Schulungen courses erstellt, um Menschen beim Erlernen von technischen Web-Tests und Selenium WebDriver mit Java zu helfen. Alan veröffentlicht seine Schriften und Schulungsvideos auf SeleniumSimplified.com, EvilTester.com, JavaForTesters.com und CompendiumDev.co.uk.
In diesem Blogbeitrag werden wir:
- Suchen und Abgleichen von Anmerkungen demonstrieren
- Amen-Bemerkungen mit Schnurrbartvorlagen
Sensei bietet die Möglichkeit, problematische Codemuster abzugleichen und sie dann an vereinbarte Implementierungen anzupassen. In diesem Beispiel verwende ich @Disabled ohne einen Parameter als problematisches Codemuster.
Deaktivierte Testanmerkung
Deaktivierte Tests ohne angegebenen Grund können sich langfristig als problematisch erweisen, weil wir vergessen, warum wir sie deaktiviert haben.
@Disabled
void thisTestMethodHasNoDisabledReason(){
Assertions.fail("This test is disabled and should not run");
}
Das Risiko besteht darin, dass sich die Codebasis im Laufe der Zeit weiterentwickelt, der deaktivierte Test nicht im Gleichschritt mit dem Zweck des Codes aktualisiert wird und schließlich redundant und irrelevant wird und möglicherweise nie wieder aktiviert wird.
Bei Code-Reviews werden wir oft darauf hinweisen, dass es sinnvoll ist, eine erklärende Beschreibung als Annotationsparameter hinzuzufügen.
@Disabled ("Disabled to demonstrate adding a reason")
void thisTestMethodHasDisabledReason(){
Assertions.fail("This test is disabled and should not run");
}
Ein Sensei Rezept
Wir können ein Rezept schreiben, das erkennt, wenn @Disabled ohne Erklärung hinzugefügt wird, und einen Quick Fix, der uns daran erinnert, den tatsächlichen Grund für die Deaktivierung hinzuzufügen.
Wenn ich darüber nachdenke, was ich tun werde, muss ich es tun:
- entspricht der Disabled-Anmerkung ohne Parameter
- die Anmerkung "Disabled" so ändern, dass sie einen Parameter mit dem Markierungstext "TODO: fügen Sie hier eine Beschreibung ein" hat
Ein Warnrezept erstellen
Ich verwende Alt+Eingabe, um ein neues Rezept zu erstellen.

Fügen Sie dann den grundlegenden beschreibenden Text in den allgemeinen Informationen hinzu.

Wenn Sie die Regel zu einer Warnung machen, wird jeder übereinstimmende Code hervorgehoben, aber nicht als eklatanter Fehler angezeigt.

Finden Sie die Bemerkung
Im Rezepteditor ändere ich die Suche so, dass sie mit einer Bemerkung übereinstimmt.
Dadurch werden alle Anmerkungen in der Vorschau hervorgehoben.

Danach möchte ich nach dem Typ der Anmerkung filtern.
Ich könnte einfach Disabled verwenden, aber ich qualifiziere die Klasse vollständig mit dem Paket, sodass sie nur mit der Annotation von JUnit 5 übereinstimmt. Da der Quellcode in der Vorschau angezeigt wird, kann ich diesen einfach kopieren und aus dem eigentlichen Code einfügen, um Tippfehler zu vermeiden.
Ich möchte dann nur Annotationen ohne Parameter abgleichen, und das kann ich mit der GUI machen.

d.h. Suche:
search:
annotation:
type: "org.junit.jupiter.api.Disabled"
without:
parameters:
- {}
Erstellen einer Aktion "Schnellreparatur neu schreiben
Für meinen QuickFix werde ich eine Rewrite-Aktion verwenden.
Ich verwende die Funktion " Variablen anzeigen", um mir die Mustache-Variablen anzeigen zu lassen und eine Vorschau des Inhalts zu erhalten.

Und dann füge ich den zusätzlichen Code hinzu, der benötigt wird, um den Platzmarkenkommentar zu erstellen.

d.h. QuickFix:
availableFixes:
- name: "Add a todo comment parameter"
actions:
- rewrite:
to: "{{{ . }}}(\"TODO: add a description here\")"
target: "self"
Sensei in Aktion
Wir haben ein kurzes Video erstellt, das den Prozess der Rezepterstellung in Aktion zeigt.
Zusammenfassung
Beim Erstellen eines Rewrite-Quick-Fix ist es einfacher, wenn wir nach dem Code-Element suchen können, das wir umschreiben wollen, weil es dann die eigene Entität ist, auf die wir einwirken können.
In diesem Beispiel habe ich eine Rewrite-Aktion verwendet, um die Annotation zu ändern. Rewrite ist eine universelle Aktion, die auf jedes Code-Element angewendet werden kann und eine gute Voreinstellung ist, um sie zu erkunden.
Inhaltsübersicht
Alan Richardson verfügt über mehr als zwanzig Jahre Berufserfahrung in der IT-Branche. Er arbeitete als Entwickler und auf jeder Ebene der Testhierarchie, vom Tester bis hin zum Head of Testing. Als Head of Developer Relations bei Secure Code Warrior arbeitet er direkt mit Teams zusammen, um die Entwicklung von hochwertigem, sicherem Code zu verbessern. Alan ist der Autor von vier Büchern, darunter "Dear Evil Tester" und "Java For Testers". Alan hat auch Online-Schulungen courses erstellt, um Menschen beim Erlernen von technischen Web-Tests und Selenium WebDriver mit Java zu helfen. Alan veröffentlicht seine Schriften und Schulungsvideos auf SeleniumSimplified.com, EvilTester.com, JavaForTesters.com und CompendiumDev.co.uk.

Secure Code Warrior ist für Ihr Unternehmen da, um Sie dabei zu unterstützen, Ihren Code über den gesamten Lebenszyklus der Softwareentwicklung hinweg zu sichern und eine Kultur zu schaffen, in der Cybersicherheit an erster Stelle steht. Ganz gleich, ob Sie AppSec-Manager, Entwickler, CISO oder ein anderer Sicherheitsverantwortlicher sind, wir können Ihrem Unternehmen helfen, die mit unsicherem Code verbundenen Risiken zu reduzieren.
Demo buchenHerunterladenRessourcen für den Einstieg
Secure Code Warrior corporate overview
Secure Code Warrior is an AI Software Governance platform designed to enable organizations to safely adopt AI-driven development by bridging the gap between development velocity and enterprise security. The platform addresses the "Visibility Gap," where security teams often lack insights into shadow AI coding tools and the origins of production code.
Themen und Inhalte der Schulung zu sicherem Code
Our industry-leading content is always evolving to fit the ever changing software development landscape with your role in mind. Topics covering everything from AI to XQuery Injection, offered for a variety of roles from Architects and Engineers to Product Managers and QA. Get a sneak peek of what our content catalog has to offer by topic and role.
Cyber Resilience Act (CRA) – Angepasste Lernpfade
SCW unterstützt die Vorbereitung auf den Cyber Resilience Act (CRA) mit CRA-konformen Quests und konzeptionellen Lernsammlungen, die Entwicklungsteams dabei helfen, die CRA-Sicherheitsentwicklungsprinzipien „Secure by Design“, SDLC und sichere Codierungskompetenzen zu verinnerlichen.
Die Kamer van Koophandel setzt Maßstäbe für entwicklergesteuerte Sicherheit in großem Maßstab
Die Kamer van Koophandel berichtet, wie sie sicheres Codieren durch rollenbasierte Zertifizierungen, Trust Score-Benchmarking und eine Kultur der gemeinsamen Verantwortung für Sicherheit in die tägliche Entwicklungsarbeit integriert hat.
Ressourcen für den Einstieg
Observe and Secure the ADLC: A Four-Point Framework for CISOs and Development Teams Using AI
While development teams look to make the most of GenAI’s undeniable benefits, we’d like to propose a four-point foundational framework that will allow security leaders to deploy AI coding tools and agents with a higher, more relevant standard of security best practices. It details exactly what enterprises can do to ensure safe, secure code development right now, and as agentic AI becomes an even bigger factor in the future.
KI kann Code schreiben und überprüfen – aber das Risiko tragen weiterhin die Menschen.
Die Einführung von Claude Code Security durch Anthropic markiert einen entscheidenden Schnittpunkt zwischen KI-gestützter Softwareentwicklung und der rasanten Weiterentwicklung unserer Herangehensweise an moderne Cybersicherheit.






