Wie man häufige Java-Fehler vermeidet

Veröffentlicht Feb 02, 2022
von Wander Neto
FALLSTUDIE

Wie man häufige Java-Fehler vermeidet

Veröffentlicht Feb 02, 2022
von Wander Neto
Ressource anzeigen
Ressource anzeigen

Werden Sie ein produktiverer Java-Entwickler

Mit 9 Millionen Entwicklern weltweit* ist Java (Oracle Corporation) eine der beliebtesten Programmiersprachen der Welt. Viele Anwendungs-Frameworks wurden auf Java aufgebaut, da es sich um eine sehr vielseitige Sprache handelt, mit der Programme auf vielen verschiedenen Geräten ausgeführt werden können, die die Java Runtime Environment (JRE) unterstützen - eine Umgebung, in der alle Java-Programme laufen. Die von den Entwicklern geleiteten Gemeinschaften sind sehr aktiv, und die ausführliche Unterstützung, die neuen Programmierern zur Verfügung steht, trägt zur ständig wachsenden Beliebtheit der Sprache bei.

Da es Java schon seit langem gibt, haben die Communities Jahre damit verbracht, Standards, Tools und Coding Patterns zu entwickeln und häufige Fehler, mit denen Entwickler immer wieder konfrontiert werden, zu entschärfen. Alle diese von der Gemeinschaft geleiteten Initiativen haben ein gemeinsames Ziel - den Entwicklern zu helfen, bei der Entwicklung von Anwendungen mit Java so produktiv wie möglich zu sein. Wenn es jedoch darum geht, die Best Practices oder Patterns im Anwendungscode anzuwenden, liegt die Verantwortung bei den Entwicklern. Die Durchsetzung guter Praktiken ist sehr unterschiedlich und macht es daher schwierig, einen Standardansatz für eine Programmierpraxis zu finden, wenn die Meinungen innerhalb der Gemeinschaften sehr unterschiedlich sind. Die Entwickler greifen auf die Hilfe von Online-Communities zurück, die ihnen manchmal unbeabsichtigt unsichere Lösungen für ihre Kodierungsprobleme liefern können.

Um Entwicklern zu helfen, sichere Lösungen für häufige Java-Coding-Probleme zu implementieren, haben wir Sensei entwickelt - ein IntelliJ-Plugin, das schlechte Coding-Patterns nach einem von Ihnen oder Ihrer Organisation definierten Rezept (oder Regeln) in einer professionellen Umgebung korrigiert. Sensei ermöglicht es Entwicklern, häufige Java-Fehler (Gotchas) mit einem einzigen Klick zu identifizieren und zu korrigieren.

Lesen Sie weiter, um zu erfahren, wie Sensei die Produktivität von Entwicklern erhöht, indem es einige häufige Java-Codierungsfehler behebt.

Ein wiederkehrender Fehler, der Entwickler frustriert

Ein Beispiel für diese häufigen Fehler ist die falsche Gleichheitsprüfung von Wrapper-Werten. Werte von umrahmten Primitiven sollten mit der Gleichheitsmethode statt mit dem Referenzvergleichsoperator (==) verglichen werden, um unerwartete Ergebnisse zu vermeiden.

Ein Beispiel: Die Verwendung des Vergleichsoperators für Integer-Werte im Bereich von -128 bis 127 verhält sich (normalerweise) genauso wie die Gleichheitsmethode. Führen wir jedoch denselben Vergleich mit Werten außerhalb dieses Bereichs durch, werden die Ergebnisse unterschiedlich ausfallen. Das liegt daran, dass Java einen konstanten Pool für den genannten Bereich von Integer-Werten unterhält. Die Verwendung der equals-Methode führt immer zu den erwarteten Ergebnissen und ist daher der richtige Weg für den Vergleich.

In diesem Beispiel wird fälschlicherweise der Operator (==) zur Überprüfung der Gleichheit verwendet.

Das Ergebnis ist die folgende Ausgabe:

wahr

falsch

falsch

wahr

Die richtige Art zu vergleichen ist die Gleichheitsmethode.

Und dann wäre die Ausgabe:

wahr

falsch

wahr

falsch

Diese wohlbekannte bewährte Praxis gibt es schon seit geraumer Zeit, und doch wird sie oft falsch in Legacy-Code implementiert, der darauf wartet, zum unpassendsten Zeitpunkt sein hässliches Gesicht zu zeigen. Deshalb haben wir Rezepte (oder Regeln) entwickelt, die dabei helfen, solche unerwünschten Codierungsmuster lokal zu identifizieren und mit einem einzigen Klick unter Sensei zu korrigieren.

Sensei ist ein hochgradig anpassbares IDE-Plugin zum Scannen und Korrigieren von unerwünschtem Code während der Eingabe - mit Hunderten von herunterladbaren Code-Transformationen und Migrationsrezepten (Regeln) sowie der Möglichkeit, eigene zu erstellen. Mit Sensei können Entwickler schlechte Codemuster während der Eingabe korrigieren, so dass sie qualitativ hochwertigen Code schneller liefern und ihn schließlich in Teams und Projekten auf konsistente und standardisierte Weise schreiben können.

Wie Sensei solche häufigen Java-Probleme behebt

Da Sie auf Sensei Ihre eigenen Rezepte erstellen können, haben wir ein Rezept erstellt, um den oben erwähnten Fehler zu korrigieren.

In diesem Beispiel wollen wir herausfinden, wo wir den Vergleichsoperator (==) in der Boxed Primitive Type verwenden.

Ein Sensei Rezept sieht wie folgt aus (in YAML):

Sie können nach dem wiederkehrenden Fehler suchen, während Sie tippen, oder die gesamte Datei, den konfigurierten Bereich und sogar die gesamte Codebasis durchsuchen. Sobald das Muster gefunden wurde, ist der nächste Schritt die Möglichkeit, es sofort zu beheben, ohne im Internet suchen zu müssen. Sensei ermöglicht es Ihnen, Korrekturen zu erstellen, die Code wie angegeben hinzufügen/ändern/löschen können. Sie können sogar mehrere Korrekturen bereitstellen, so dass die Entwickler je nach Bedarf die am besten geeignete Korrektur auswählen können.

In unserem Beispiel wollen wir den Vergleich umschreiben, indem wir die Gleichheitsmethode anstelle des Operators (==) verwenden.

Eine verfügbare Lösung wird wie folgt beschrieben:

Wie es funktioniert:

Standard-Codierungsrichtlinien auf einfache Weise implementieren

Java Gotchas Cookbook enthält 22 Rezepte, die Ihnen helfen, häufige Fehler zu vermeiden und Ihren Code sauber und sicher zu halten. Es erkennt die falsche oder unsichere Verwendung verschiedener Java-Sprachfunktionen und APIs, wie z. B. Objektgleichheit, Ausnahmebehandlung, reguläre Ausdrücke und Sammlungen. Mit Sensei und diesem Kochbuch können Sie von Anfang an besseren Code schreiben und sogar eigene Rezepte erstellen, die auf Ihr Team, Ihr Projekt oder Ihre Organisation zugeschnitten sind.

Dies ist nur ein Beispiel für die vielen Möglichkeiten, die Sensei bietet, um Ihre Projekte zu standardisieren. Sie können immer nach Anti-Patterns oder bestimmten manuellen Code-Transformationen Ausschau halten, auf die Sie häufig in Pull-Requests oder beim Coding selbst stoßen. Wenn Sie über eine Reihe von Codierungsrichtlinien verfügen, die von den Entwicklern häufig übersehen werden, können Sie diese Richtlinien in Rezepte umwandeln, so dass die Entwickler bewährte Codeumwandlungen sicher anwenden können.

Installieren Sie jetzt Sensei und aktivieren Sie das Java Gotchas Cookbook für eine produktive Entwicklungserfahrung. https://sensei.securecodewarrior.com/cookbooks/scw:java

*2021, Stand der Entwickler-Nation, https://www.developernation.net/developer-reports/de20

Ressource anzeigen
Ressource anzeigen

Autor

Wander Neto

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

Wie man häufige Java-Fehler vermeidet

Veröffentlicht Feb 02, 2022
Von Wander Neto

Werden Sie ein produktiverer Java-Entwickler

Mit 9 Millionen Entwicklern weltweit* ist Java (Oracle Corporation) eine der beliebtesten Programmiersprachen der Welt. Viele Anwendungs-Frameworks wurden auf Java aufgebaut, da es sich um eine sehr vielseitige Sprache handelt, mit der Programme auf vielen verschiedenen Geräten ausgeführt werden können, die die Java Runtime Environment (JRE) unterstützen - eine Umgebung, in der alle Java-Programme laufen. Die von den Entwicklern geleiteten Gemeinschaften sind sehr aktiv, und die ausführliche Unterstützung, die neuen Programmierern zur Verfügung steht, trägt zur ständig wachsenden Beliebtheit der Sprache bei.

Da es Java schon seit langem gibt, haben die Communities Jahre damit verbracht, Standards, Tools und Coding Patterns zu entwickeln und häufige Fehler, mit denen Entwickler immer wieder konfrontiert werden, zu entschärfen. Alle diese von der Gemeinschaft geleiteten Initiativen haben ein gemeinsames Ziel - den Entwicklern zu helfen, bei der Entwicklung von Anwendungen mit Java so produktiv wie möglich zu sein. Wenn es jedoch darum geht, die Best Practices oder Patterns im Anwendungscode anzuwenden, liegt die Verantwortung bei den Entwicklern. Die Durchsetzung guter Praktiken ist sehr unterschiedlich und macht es daher schwierig, einen Standardansatz für eine Programmierpraxis zu finden, wenn die Meinungen innerhalb der Gemeinschaften sehr unterschiedlich sind. Die Entwickler greifen auf die Hilfe von Online-Communities zurück, die ihnen manchmal unbeabsichtigt unsichere Lösungen für ihre Kodierungsprobleme liefern können.

Um Entwicklern zu helfen, sichere Lösungen für häufige Java-Coding-Probleme zu implementieren, haben wir Sensei entwickelt - ein IntelliJ-Plugin, das schlechte Coding-Patterns nach einem von Ihnen oder Ihrer Organisation definierten Rezept (oder Regeln) in einer professionellen Umgebung korrigiert. Sensei ermöglicht es Entwicklern, häufige Java-Fehler (Gotchas) mit einem einzigen Klick zu identifizieren und zu korrigieren.

Lesen Sie weiter, um zu erfahren, wie Sensei die Produktivität von Entwicklern erhöht, indem es einige häufige Java-Codierungsfehler behebt.

Ein wiederkehrender Fehler, der Entwickler frustriert

Ein Beispiel für diese häufigen Fehler ist die falsche Gleichheitsprüfung von Wrapper-Werten. Werte von umrahmten Primitiven sollten mit der Gleichheitsmethode statt mit dem Referenzvergleichsoperator (==) verglichen werden, um unerwartete Ergebnisse zu vermeiden.

Ein Beispiel: Die Verwendung des Vergleichsoperators für Integer-Werte im Bereich von -128 bis 127 verhält sich (normalerweise) genauso wie die Gleichheitsmethode. Führen wir jedoch denselben Vergleich mit Werten außerhalb dieses Bereichs durch, werden die Ergebnisse unterschiedlich ausfallen. Das liegt daran, dass Java einen konstanten Pool für den genannten Bereich von Integer-Werten unterhält. Die Verwendung der equals-Methode führt immer zu den erwarteten Ergebnissen und ist daher der richtige Weg für den Vergleich.

In diesem Beispiel wird fälschlicherweise der Operator (==) zur Überprüfung der Gleichheit verwendet.

Das Ergebnis ist die folgende Ausgabe:

wahr

falsch

falsch

wahr

Die richtige Art zu vergleichen ist die Gleichheitsmethode.

Und dann wäre die Ausgabe:

wahr

falsch

wahr

falsch

Diese wohlbekannte bewährte Praxis gibt es schon seit geraumer Zeit, und doch wird sie oft falsch in Legacy-Code implementiert, der darauf wartet, zum unpassendsten Zeitpunkt sein hässliches Gesicht zu zeigen. Deshalb haben wir Rezepte (oder Regeln) entwickelt, die dabei helfen, solche unerwünschten Codierungsmuster lokal zu identifizieren und mit einem einzigen Klick unter Sensei zu korrigieren.

Sensei ist ein hochgradig anpassbares IDE-Plugin zum Scannen und Korrigieren von unerwünschtem Code während der Eingabe - mit Hunderten von herunterladbaren Code-Transformationen und Migrationsrezepten (Regeln) sowie der Möglichkeit, eigene zu erstellen. Mit Sensei können Entwickler schlechte Codemuster während der Eingabe korrigieren, so dass sie qualitativ hochwertigen Code schneller liefern und ihn schließlich in Teams und Projekten auf konsistente und standardisierte Weise schreiben können.

Wie Sensei solche häufigen Java-Probleme behebt

Da Sie auf Sensei Ihre eigenen Rezepte erstellen können, haben wir ein Rezept erstellt, um den oben erwähnten Fehler zu korrigieren.

In diesem Beispiel wollen wir herausfinden, wo wir den Vergleichsoperator (==) in der Boxed Primitive Type verwenden.

Ein Sensei Rezept sieht wie folgt aus (in YAML):

Sie können nach dem wiederkehrenden Fehler suchen, während Sie tippen, oder die gesamte Datei, den konfigurierten Bereich und sogar die gesamte Codebasis durchsuchen. Sobald das Muster gefunden wurde, ist der nächste Schritt die Möglichkeit, es sofort zu beheben, ohne im Internet suchen zu müssen. Sensei ermöglicht es Ihnen, Korrekturen zu erstellen, die Code wie angegeben hinzufügen/ändern/löschen können. Sie können sogar mehrere Korrekturen bereitstellen, so dass die Entwickler je nach Bedarf die am besten geeignete Korrektur auswählen können.

In unserem Beispiel wollen wir den Vergleich umschreiben, indem wir die Gleichheitsmethode anstelle des Operators (==) verwenden.

Eine verfügbare Lösung wird wie folgt beschrieben:

Wie es funktioniert:

Standard-Codierungsrichtlinien auf einfache Weise implementieren

Java Gotchas Cookbook enthält 22 Rezepte, die Ihnen helfen, häufige Fehler zu vermeiden und Ihren Code sauber und sicher zu halten. Es erkennt die falsche oder unsichere Verwendung verschiedener Java-Sprachfunktionen und APIs, wie z. B. Objektgleichheit, Ausnahmebehandlung, reguläre Ausdrücke und Sammlungen. Mit Sensei und diesem Kochbuch können Sie von Anfang an besseren Code schreiben und sogar eigene Rezepte erstellen, die auf Ihr Team, Ihr Projekt oder Ihre Organisation zugeschnitten sind.

Dies ist nur ein Beispiel für die vielen Möglichkeiten, die Sensei bietet, um Ihre Projekte zu standardisieren. Sie können immer nach Anti-Patterns oder bestimmten manuellen Code-Transformationen Ausschau halten, auf die Sie häufig in Pull-Requests oder beim Coding selbst stoßen. Wenn Sie über eine Reihe von Codierungsrichtlinien verfügen, die von den Entwicklern häufig übersehen werden, können Sie diese Richtlinien in Rezepte umwandeln, so dass die Entwickler bewährte Codeumwandlungen sicher anwenden können.

Installieren Sie jetzt Sensei und aktivieren Sie das Java Gotchas Cookbook für eine produktive Entwicklungserfahrung. https://sensei.securecodewarrior.com/cookbooks/scw:java

*2021, Stand der Entwickler-Nation, https://www.developernation.net/developer-reports/de20

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.

Senden
Um das Formular abzuschicken, aktivieren Sie bitte "Analytics"-Cookies. Sie können die Cookies wieder deaktivieren, sobald Sie fertig sind.