SCW图标
英雄背景无分隔线
博客

So verhindern Sie häufige Java-Fehler

Wandern Sie Neto
发表于 2022 年 2 月 02 日
最后更新于 2026年3月9日

Seien Sie ein produktiverer Java-Entwickler

Mit 9 Millionen Entwicklern weltweit* gehört Java (Oracle Corporation) zu den beliebtesten Programmiersprachen der Welt. Viele Anwendungsframeworks 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 Java Runtime Environment (JRE) unterstützen — eine Umgebung, in der alle Java-Programme ausgeführt werden. Die von Entwicklern geleiteten Communitys sind sehr aktiv und die umfassende Unterstützung, die neuen Programmierern zur Verfügung steht, trägt zu ihrer stetig wachsenden Beliebtheit bei.

Da es Java schon lange gibt, haben die Communities Jahre damit verbracht, Standards, Tools und Codierungsmuster zu entwickeln und häufige Fehler zu beheben, mit denen Entwickler immer wieder konfrontiert sind. Alle diese von der Community geleiteten Initiativen haben ein gemeinsames Ziel: Entwickler dabei zu unterstützen, bei der Entwicklung von Anwendungen mit Java so produktiv wie möglich zu sein. Wenn es jedoch darum geht, die besten Praktiken oder Muster im Anwendungscode anzuwenden, liegt die Verantwortung beim Entwickler. Die Durchsetzung guter Praktiken ist sehr unterschiedlich und macht es daher schwierig, einen Standardansatz für eine Programmierpraxis zu verfolgen, wenn die Meinungen innerhalb der Gemeinschaften sehr unterschiedlich sind. Die Entwickler greifen auf Hilfe in Online-Communities zurück, die Ihnen manchmal versehentlich unsichere Lösungen für Ihre Codierungsprobleme bieten können.

Um Entwicklern bei der Implementierung sicherer Lösungen für häufig auftretende Java-Codierungsprobleme zu helfen, haben wir Sensei entwickelt — ein IntelliJ-Plugin zur Korrektur fehlerhafter Codierungsmuster gemäß den von Ihnen oder Ihrer Organisation definierten Rezepten (oder Regeln) in einer professionellen Umgebung. Sensei ermöglicht es Entwicklern, häufige Java-Fehler (Fallstricke) mit einem einzigen Klick zu identifizieren und zu korrigieren.

Lesen Sie weiter, um zu erfahren, wie Sensei die Produktivität von Entwicklern steigert, indem er einige häufig auftretende 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 Grundkörpern in Boxen sollten mit der Equals-Methode verglichen werden, statt mit dem Referenzvergleichsoperator (= =), um unerwartete Ergebnisse zu vermeiden.

Beispielsweise verhält sich die Verwendung des Referenzvergleichsoperators für Integer-Werte im Bereich von -128 bis 127 (normalerweise) genauso wie die Methode equals. Wenn wir jedoch denselben Vergleich mit Werten außerhalb dieses Bereichs durchführen, unterscheiden sich die Ergebnisse. Dies liegt daran, dass Java einen konstanten Pool für den genannten Bereich von Integer-Werten beibehält. Die Verwendung der Equals-Methode führt immer zu den erwarteten Ergebnissen und ist daher die richtige Methode zum Vergleichen.

In diesem Beispiel verwenden wir fälschlicherweise den Operator (==), um die Gleichheit zu überprüfen.

Was zu der folgenden Ausgabe führt:

wahr

falsch

falsch

wahr

Der richtige Weg zum Vergleichen ist die Equals-Methode.

Und dann wäre die Ausgabe:

wahr

falsch

wahr

falsch

Diese bekannte bewährte Methode gibt es schon seit geraumer Zeit und dennoch wird sie oft falsch in Legacy-Code implementiert, der darauf wartet, zum ungünstigsten Zeitpunkt seinen hässlichen Kopf zu erheben. Deshalb haben wir Rezepte (oder Regeln) erstellt, die helfen, solche unerwünschten Codierungsmuster lokal zu identifizieren und mithilfe von Sensei mit einem einzigen Klick eine Korrektur vorzunehmen.

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 einer eingebauten Fähigkeit, eigenen Code zu erstellen. Mit Sensei können Entwickler fehlerhafte Codemuster während der Eingabe korrigieren, sodass sie Qualitätscode schneller bereitstellen und ihn letztendlich auf konsistente und standardisierte Weise für alle Teams und Projekte schreiben können.

Wie Sensei solche häufigen Java-Probleme behebt

Da Sensei es dir ermöglicht, deine eigenen Rezepte zu kreieren, haben wir ein Rezept erstellt, um den oben genannten Fehler zu korrigieren.

In diesem Beispiel wollen wir herausfinden, wo wir den Vergleichsoperator (==) im primitiven Box-Typ verwenden.

Ein Sensei-Rezept sieht so aus (in YAML):

Das oben Genannte kann während der Eingabe nach dem wiederkehrenden fehlerhaften Muster oder der gesamten Datei, dem konfigurierten Bereich und sogar der gesamten Codebasis suchen. Sobald das Muster gefunden wurde, besteht der nächste natürliche Schritt darin, es sofort korrigieren zu können, ohne online suchen zu müssen. Mit Sensei können Sie Korrekturen erstellen, mit denen Sie Code wie angegeben hinzufügen/bearbeiten/löschen können. Sie können sogar mehrere Fixes bereitstellen, wenn Sie dies für richtig halten, sodass Entwickler den für sie am besten geeigneten Fix auswählen können.

In unserem Beispiel wollen wir den Vergleich mit der Methode equals anstelle des Operators (==) neu schreiben.

Ein verfügbarer Fix wird wie folgt beschrieben:

So funktioniert's:

Einfache Implementierung von Standard-Codierungsrichtlinien

Das Java Gotchas Cookbook enthält 22 Rezepte, mit denen Sie häufige Fehler vermeiden und Ihren Code sauber und sicher halten können. Es erkennt die falsche oder unsichere Verwendung verschiedener Funktionen und APIs der Java-Sprache, z. B. Objektgleichheit, Ausnahmebehandlung, reguläre Ausdrücke und Sammlungen. Wenn Sie Sensei und dieses Kochbuch verwenden, können Sie von Anfang an besseren Code schreiben und sogar Ihre eigenen Rezepte erstellen, die zu Ihrem einzigartigen Team, Projekt oder Ihrer Organisation passen.

Dies ist nur ein Beispiel für die vielen Möglichkeiten, wie Sensei zur Standardisierung Ihrer Projekte eingesetzt werden kann. Du kannst immer nach Anti-Patterns oder bestimmten manuellen Codetransformationen Ausschau halten, auf die du häufig in Pull-Requests stößt oder wenn du selbst codest. Wenn du eine Reihe von Codierungsrichtlinien hast, die von Entwicklern oft übersehen werden, könntest du die Richtlinien in Rezepte umwandeln, sodass Entwickler genehmigte Codetransformationen mit Zuversicht anwenden können.

Installieren Sie Sensei jetzt und aktivieren Sie Java Gotchas Cookbook für ein produktives Entwicklungserlebnis. https://sensei.securecodewarrior.com/cookbooks/scw:java

*2021, Bundesstaat der Entwicklernation, https://www.developernation.net/developer-reports/de20

查看资源
查看资源

想了解更多吗?

了解更多

Secure Code Warrior 您的Secure Code Warrior 帮助您在整个软件开发周期中保障代码安全,并建立将网络安全置于首位的企业文化。无论您是应用安全经理、开发人员、首席信息安全官,还是其他从事安全工作的人员,我们都能协助您的企业降低不安全代码带来的风险。

预约演示
分享到:
领英品牌社交x 标志
作者
Wandern Sie Neto
发表于2022年2月2日

分享到:
领英品牌社交x 标志

Seien Sie ein produktiverer Java-Entwickler

Mit 9 Millionen Entwicklern weltweit* gehört Java (Oracle Corporation) zu den beliebtesten Programmiersprachen der Welt. Viele Anwendungsframeworks 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 Java Runtime Environment (JRE) unterstützen — eine Umgebung, in der alle Java-Programme ausgeführt werden. Die von Entwicklern geleiteten Communitys sind sehr aktiv und die umfassende Unterstützung, die neuen Programmierern zur Verfügung steht, trägt zu ihrer stetig wachsenden Beliebtheit bei.

Da es Java schon lange gibt, haben die Communities Jahre damit verbracht, Standards, Tools und Codierungsmuster zu entwickeln und häufige Fehler zu beheben, mit denen Entwickler immer wieder konfrontiert sind. Alle diese von der Community geleiteten Initiativen haben ein gemeinsames Ziel: Entwickler dabei zu unterstützen, bei der Entwicklung von Anwendungen mit Java so produktiv wie möglich zu sein. Wenn es jedoch darum geht, die besten Praktiken oder Muster im Anwendungscode anzuwenden, liegt die Verantwortung beim Entwickler. Die Durchsetzung guter Praktiken ist sehr unterschiedlich und macht es daher schwierig, einen Standardansatz für eine Programmierpraxis zu verfolgen, wenn die Meinungen innerhalb der Gemeinschaften sehr unterschiedlich sind. Die Entwickler greifen auf Hilfe in Online-Communities zurück, die Ihnen manchmal versehentlich unsichere Lösungen für Ihre Codierungsprobleme bieten können.

Um Entwicklern bei der Implementierung sicherer Lösungen für häufig auftretende Java-Codierungsprobleme zu helfen, haben wir Sensei entwickelt — ein IntelliJ-Plugin zur Korrektur fehlerhafter Codierungsmuster gemäß den von Ihnen oder Ihrer Organisation definierten Rezepten (oder Regeln) in einer professionellen Umgebung. Sensei ermöglicht es Entwicklern, häufige Java-Fehler (Fallstricke) mit einem einzigen Klick zu identifizieren und zu korrigieren.

Lesen Sie weiter, um zu erfahren, wie Sensei die Produktivität von Entwicklern steigert, indem er einige häufig auftretende 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 Grundkörpern in Boxen sollten mit der Equals-Methode verglichen werden, statt mit dem Referenzvergleichsoperator (= =), um unerwartete Ergebnisse zu vermeiden.

Beispielsweise verhält sich die Verwendung des Referenzvergleichsoperators für Integer-Werte im Bereich von -128 bis 127 (normalerweise) genauso wie die Methode equals. Wenn wir jedoch denselben Vergleich mit Werten außerhalb dieses Bereichs durchführen, unterscheiden sich die Ergebnisse. Dies liegt daran, dass Java einen konstanten Pool für den genannten Bereich von Integer-Werten beibehält. Die Verwendung der Equals-Methode führt immer zu den erwarteten Ergebnissen und ist daher die richtige Methode zum Vergleichen.

In diesem Beispiel verwenden wir fälschlicherweise den Operator (==), um die Gleichheit zu überprüfen.

Was zu der folgenden Ausgabe führt:

wahr

falsch

falsch

wahr

Der richtige Weg zum Vergleichen ist die Equals-Methode.

Und dann wäre die Ausgabe:

wahr

falsch

wahr

falsch

Diese bekannte bewährte Methode gibt es schon seit geraumer Zeit und dennoch wird sie oft falsch in Legacy-Code implementiert, der darauf wartet, zum ungünstigsten Zeitpunkt seinen hässlichen Kopf zu erheben. Deshalb haben wir Rezepte (oder Regeln) erstellt, die helfen, solche unerwünschten Codierungsmuster lokal zu identifizieren und mithilfe von Sensei mit einem einzigen Klick eine Korrektur vorzunehmen.

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 einer eingebauten Fähigkeit, eigenen Code zu erstellen. Mit Sensei können Entwickler fehlerhafte Codemuster während der Eingabe korrigieren, sodass sie Qualitätscode schneller bereitstellen und ihn letztendlich auf konsistente und standardisierte Weise für alle Teams und Projekte schreiben können.

Wie Sensei solche häufigen Java-Probleme behebt

Da Sensei es dir ermöglicht, deine eigenen Rezepte zu kreieren, haben wir ein Rezept erstellt, um den oben genannten Fehler zu korrigieren.

In diesem Beispiel wollen wir herausfinden, wo wir den Vergleichsoperator (==) im primitiven Box-Typ verwenden.

Ein Sensei-Rezept sieht so aus (in YAML):

Das oben Genannte kann während der Eingabe nach dem wiederkehrenden fehlerhaften Muster oder der gesamten Datei, dem konfigurierten Bereich und sogar der gesamten Codebasis suchen. Sobald das Muster gefunden wurde, besteht der nächste natürliche Schritt darin, es sofort korrigieren zu können, ohne online suchen zu müssen. Mit Sensei können Sie Korrekturen erstellen, mit denen Sie Code wie angegeben hinzufügen/bearbeiten/löschen können. Sie können sogar mehrere Fixes bereitstellen, wenn Sie dies für richtig halten, sodass Entwickler den für sie am besten geeigneten Fix auswählen können.

In unserem Beispiel wollen wir den Vergleich mit der Methode equals anstelle des Operators (==) neu schreiben.

Ein verfügbarer Fix wird wie folgt beschrieben:

So funktioniert's:

Einfache Implementierung von Standard-Codierungsrichtlinien

Das Java Gotchas Cookbook enthält 22 Rezepte, mit denen Sie häufige Fehler vermeiden und Ihren Code sauber und sicher halten können. Es erkennt die falsche oder unsichere Verwendung verschiedener Funktionen und APIs der Java-Sprache, z. B. Objektgleichheit, Ausnahmebehandlung, reguläre Ausdrücke und Sammlungen. Wenn Sie Sensei und dieses Kochbuch verwenden, können Sie von Anfang an besseren Code schreiben und sogar Ihre eigenen Rezepte erstellen, die zu Ihrem einzigartigen Team, Projekt oder Ihrer Organisation passen.

Dies ist nur ein Beispiel für die vielen Möglichkeiten, wie Sensei zur Standardisierung Ihrer Projekte eingesetzt werden kann. Du kannst immer nach Anti-Patterns oder bestimmten manuellen Codetransformationen Ausschau halten, auf die du häufig in Pull-Requests stößt oder wenn du selbst codest. Wenn du eine Reihe von Codierungsrichtlinien hast, die von Entwicklern oft übersehen werden, könntest du die Richtlinien in Rezepte umwandeln, sodass Entwickler genehmigte Codetransformationen mit Zuversicht anwenden können.

Installieren Sie Sensei jetzt und aktivieren Sie Java Gotchas Cookbook für ein produktives Entwicklungserlebnis. https://sensei.securecodewarrior.com/cookbooks/scw:java

*2021, Bundesstaat der Entwicklernation, https://www.developernation.net/developer-reports/de20

查看资源
查看资源

请填写下方表格以下载报告

我们恳请您允许我们向您发送有关我们产品及/或安全编码相关主题的信息。我们将始终以最高标准谨慎处理您的个人数据,绝不会为营销目的将其出售给其他企业。

提交
scw 成功图标
SCW 错误图标
要提交表单,请启用“Analytics”Cookie。完成后,您可随时将其关闭。

Seien Sie ein produktiverer Java-Entwickler

Mit 9 Millionen Entwicklern weltweit* gehört Java (Oracle Corporation) zu den beliebtesten Programmiersprachen der Welt. Viele Anwendungsframeworks 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 Java Runtime Environment (JRE) unterstützen — eine Umgebung, in der alle Java-Programme ausgeführt werden. Die von Entwicklern geleiteten Communitys sind sehr aktiv und die umfassende Unterstützung, die neuen Programmierern zur Verfügung steht, trägt zu ihrer stetig wachsenden Beliebtheit bei.

Da es Java schon lange gibt, haben die Communities Jahre damit verbracht, Standards, Tools und Codierungsmuster zu entwickeln und häufige Fehler zu beheben, mit denen Entwickler immer wieder konfrontiert sind. Alle diese von der Community geleiteten Initiativen haben ein gemeinsames Ziel: Entwickler dabei zu unterstützen, bei der Entwicklung von Anwendungen mit Java so produktiv wie möglich zu sein. Wenn es jedoch darum geht, die besten Praktiken oder Muster im Anwendungscode anzuwenden, liegt die Verantwortung beim Entwickler. Die Durchsetzung guter Praktiken ist sehr unterschiedlich und macht es daher schwierig, einen Standardansatz für eine Programmierpraxis zu verfolgen, wenn die Meinungen innerhalb der Gemeinschaften sehr unterschiedlich sind. Die Entwickler greifen auf Hilfe in Online-Communities zurück, die Ihnen manchmal versehentlich unsichere Lösungen für Ihre Codierungsprobleme bieten können.

Um Entwicklern bei der Implementierung sicherer Lösungen für häufig auftretende Java-Codierungsprobleme zu helfen, haben wir Sensei entwickelt — ein IntelliJ-Plugin zur Korrektur fehlerhafter Codierungsmuster gemäß den von Ihnen oder Ihrer Organisation definierten Rezepten (oder Regeln) in einer professionellen Umgebung. Sensei ermöglicht es Entwicklern, häufige Java-Fehler (Fallstricke) mit einem einzigen Klick zu identifizieren und zu korrigieren.

Lesen Sie weiter, um zu erfahren, wie Sensei die Produktivität von Entwicklern steigert, indem er einige häufig auftretende 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 Grundkörpern in Boxen sollten mit der Equals-Methode verglichen werden, statt mit dem Referenzvergleichsoperator (= =), um unerwartete Ergebnisse zu vermeiden.

Beispielsweise verhält sich die Verwendung des Referenzvergleichsoperators für Integer-Werte im Bereich von -128 bis 127 (normalerweise) genauso wie die Methode equals. Wenn wir jedoch denselben Vergleich mit Werten außerhalb dieses Bereichs durchführen, unterscheiden sich die Ergebnisse. Dies liegt daran, dass Java einen konstanten Pool für den genannten Bereich von Integer-Werten beibehält. Die Verwendung der Equals-Methode führt immer zu den erwarteten Ergebnissen und ist daher die richtige Methode zum Vergleichen.

In diesem Beispiel verwenden wir fälschlicherweise den Operator (==), um die Gleichheit zu überprüfen.

Was zu der folgenden Ausgabe führt:

wahr

falsch

falsch

wahr

Der richtige Weg zum Vergleichen ist die Equals-Methode.

Und dann wäre die Ausgabe:

wahr

falsch

wahr

falsch

Diese bekannte bewährte Methode gibt es schon seit geraumer Zeit und dennoch wird sie oft falsch in Legacy-Code implementiert, der darauf wartet, zum ungünstigsten Zeitpunkt seinen hässlichen Kopf zu erheben. Deshalb haben wir Rezepte (oder Regeln) erstellt, die helfen, solche unerwünschten Codierungsmuster lokal zu identifizieren und mithilfe von Sensei mit einem einzigen Klick eine Korrektur vorzunehmen.

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 einer eingebauten Fähigkeit, eigenen Code zu erstellen. Mit Sensei können Entwickler fehlerhafte Codemuster während der Eingabe korrigieren, sodass sie Qualitätscode schneller bereitstellen und ihn letztendlich auf konsistente und standardisierte Weise für alle Teams und Projekte schreiben können.

Wie Sensei solche häufigen Java-Probleme behebt

Da Sensei es dir ermöglicht, deine eigenen Rezepte zu kreieren, haben wir ein Rezept erstellt, um den oben genannten Fehler zu korrigieren.

In diesem Beispiel wollen wir herausfinden, wo wir den Vergleichsoperator (==) im primitiven Box-Typ verwenden.

Ein Sensei-Rezept sieht so aus (in YAML):

Das oben Genannte kann während der Eingabe nach dem wiederkehrenden fehlerhaften Muster oder der gesamten Datei, dem konfigurierten Bereich und sogar der gesamten Codebasis suchen. Sobald das Muster gefunden wurde, besteht der nächste natürliche Schritt darin, es sofort korrigieren zu können, ohne online suchen zu müssen. Mit Sensei können Sie Korrekturen erstellen, mit denen Sie Code wie angegeben hinzufügen/bearbeiten/löschen können. Sie können sogar mehrere Fixes bereitstellen, wenn Sie dies für richtig halten, sodass Entwickler den für sie am besten geeigneten Fix auswählen können.

In unserem Beispiel wollen wir den Vergleich mit der Methode equals anstelle des Operators (==) neu schreiben.

Ein verfügbarer Fix wird wie folgt beschrieben:

So funktioniert's:

Einfache Implementierung von Standard-Codierungsrichtlinien

Das Java Gotchas Cookbook enthält 22 Rezepte, mit denen Sie häufige Fehler vermeiden und Ihren Code sauber und sicher halten können. Es erkennt die falsche oder unsichere Verwendung verschiedener Funktionen und APIs der Java-Sprache, z. B. Objektgleichheit, Ausnahmebehandlung, reguläre Ausdrücke und Sammlungen. Wenn Sie Sensei und dieses Kochbuch verwenden, können Sie von Anfang an besseren Code schreiben und sogar Ihre eigenen Rezepte erstellen, die zu Ihrem einzigartigen Team, Projekt oder Ihrer Organisation passen.

Dies ist nur ein Beispiel für die vielen Möglichkeiten, wie Sensei zur Standardisierung Ihrer Projekte eingesetzt werden kann. Du kannst immer nach Anti-Patterns oder bestimmten manuellen Codetransformationen Ausschau halten, auf die du häufig in Pull-Requests stößt oder wenn du selbst codest. Wenn du eine Reihe von Codierungsrichtlinien hast, die von Entwicklern oft übersehen werden, könntest du die Richtlinien in Rezepte umwandeln, sodass Entwickler genehmigte Codetransformationen mit Zuversicht anwenden können.

Installieren Sie Sensei jetzt und aktivieren Sie Java Gotchas Cookbook für ein produktives Entwicklungserlebnis. https://sensei.securecodewarrior.com/cookbooks/scw:java

*2021, Bundesstaat der Entwicklernation, https://www.developernation.net/developer-reports/de20

观看网络研讨会
开始吧
了解更多

请点击下方链接下载该资源的PDF文件。

Secure Code Warrior 您的Secure Code Warrior 帮助您在整个软件开发周期中保障代码安全,并建立将网络安全置于首位的企业文化。无论您是应用安全经理、开发人员、首席信息安全官,还是其他从事安全工作的人员,我们都能协助您的企业降低不安全代码带来的风险。

查看报告预约演示
下载PDF文件
查看资源
分享到:
领英品牌社交x 标志
想了解更多吗?

分享到:
领英品牌社交x 标志
作者
Wandern Sie Neto
发表于2022年2月2日

分享到:
领英品牌社交x 标志

Seien Sie ein produktiverer Java-Entwickler

Mit 9 Millionen Entwicklern weltweit* gehört Java (Oracle Corporation) zu den beliebtesten Programmiersprachen der Welt. Viele Anwendungsframeworks 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 Java Runtime Environment (JRE) unterstützen — eine Umgebung, in der alle Java-Programme ausgeführt werden. Die von Entwicklern geleiteten Communitys sind sehr aktiv und die umfassende Unterstützung, die neuen Programmierern zur Verfügung steht, trägt zu ihrer stetig wachsenden Beliebtheit bei.

Da es Java schon lange gibt, haben die Communities Jahre damit verbracht, Standards, Tools und Codierungsmuster zu entwickeln und häufige Fehler zu beheben, mit denen Entwickler immer wieder konfrontiert sind. Alle diese von der Community geleiteten Initiativen haben ein gemeinsames Ziel: Entwickler dabei zu unterstützen, bei der Entwicklung von Anwendungen mit Java so produktiv wie möglich zu sein. Wenn es jedoch darum geht, die besten Praktiken oder Muster im Anwendungscode anzuwenden, liegt die Verantwortung beim Entwickler. Die Durchsetzung guter Praktiken ist sehr unterschiedlich und macht es daher schwierig, einen Standardansatz für eine Programmierpraxis zu verfolgen, wenn die Meinungen innerhalb der Gemeinschaften sehr unterschiedlich sind. Die Entwickler greifen auf Hilfe in Online-Communities zurück, die Ihnen manchmal versehentlich unsichere Lösungen für Ihre Codierungsprobleme bieten können.

Um Entwicklern bei der Implementierung sicherer Lösungen für häufig auftretende Java-Codierungsprobleme zu helfen, haben wir Sensei entwickelt — ein IntelliJ-Plugin zur Korrektur fehlerhafter Codierungsmuster gemäß den von Ihnen oder Ihrer Organisation definierten Rezepten (oder Regeln) in einer professionellen Umgebung. Sensei ermöglicht es Entwicklern, häufige Java-Fehler (Fallstricke) mit einem einzigen Klick zu identifizieren und zu korrigieren.

Lesen Sie weiter, um zu erfahren, wie Sensei die Produktivität von Entwicklern steigert, indem er einige häufig auftretende 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 Grundkörpern in Boxen sollten mit der Equals-Methode verglichen werden, statt mit dem Referenzvergleichsoperator (= =), um unerwartete Ergebnisse zu vermeiden.

Beispielsweise verhält sich die Verwendung des Referenzvergleichsoperators für Integer-Werte im Bereich von -128 bis 127 (normalerweise) genauso wie die Methode equals. Wenn wir jedoch denselben Vergleich mit Werten außerhalb dieses Bereichs durchführen, unterscheiden sich die Ergebnisse. Dies liegt daran, dass Java einen konstanten Pool für den genannten Bereich von Integer-Werten beibehält. Die Verwendung der Equals-Methode führt immer zu den erwarteten Ergebnissen und ist daher die richtige Methode zum Vergleichen.

In diesem Beispiel verwenden wir fälschlicherweise den Operator (==), um die Gleichheit zu überprüfen.

Was zu der folgenden Ausgabe führt:

wahr

falsch

falsch

wahr

Der richtige Weg zum Vergleichen ist die Equals-Methode.

Und dann wäre die Ausgabe:

wahr

falsch

wahr

falsch

Diese bekannte bewährte Methode gibt es schon seit geraumer Zeit und dennoch wird sie oft falsch in Legacy-Code implementiert, der darauf wartet, zum ungünstigsten Zeitpunkt seinen hässlichen Kopf zu erheben. Deshalb haben wir Rezepte (oder Regeln) erstellt, die helfen, solche unerwünschten Codierungsmuster lokal zu identifizieren und mithilfe von Sensei mit einem einzigen Klick eine Korrektur vorzunehmen.

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 einer eingebauten Fähigkeit, eigenen Code zu erstellen. Mit Sensei können Entwickler fehlerhafte Codemuster während der Eingabe korrigieren, sodass sie Qualitätscode schneller bereitstellen und ihn letztendlich auf konsistente und standardisierte Weise für alle Teams und Projekte schreiben können.

Wie Sensei solche häufigen Java-Probleme behebt

Da Sensei es dir ermöglicht, deine eigenen Rezepte zu kreieren, haben wir ein Rezept erstellt, um den oben genannten Fehler zu korrigieren.

In diesem Beispiel wollen wir herausfinden, wo wir den Vergleichsoperator (==) im primitiven Box-Typ verwenden.

Ein Sensei-Rezept sieht so aus (in YAML):

Das oben Genannte kann während der Eingabe nach dem wiederkehrenden fehlerhaften Muster oder der gesamten Datei, dem konfigurierten Bereich und sogar der gesamten Codebasis suchen. Sobald das Muster gefunden wurde, besteht der nächste natürliche Schritt darin, es sofort korrigieren zu können, ohne online suchen zu müssen. Mit Sensei können Sie Korrekturen erstellen, mit denen Sie Code wie angegeben hinzufügen/bearbeiten/löschen können. Sie können sogar mehrere Fixes bereitstellen, wenn Sie dies für richtig halten, sodass Entwickler den für sie am besten geeigneten Fix auswählen können.

In unserem Beispiel wollen wir den Vergleich mit der Methode equals anstelle des Operators (==) neu schreiben.

Ein verfügbarer Fix wird wie folgt beschrieben:

So funktioniert's:

Einfache Implementierung von Standard-Codierungsrichtlinien

Das Java Gotchas Cookbook enthält 22 Rezepte, mit denen Sie häufige Fehler vermeiden und Ihren Code sauber und sicher halten können. Es erkennt die falsche oder unsichere Verwendung verschiedener Funktionen und APIs der Java-Sprache, z. B. Objektgleichheit, Ausnahmebehandlung, reguläre Ausdrücke und Sammlungen. Wenn Sie Sensei und dieses Kochbuch verwenden, können Sie von Anfang an besseren Code schreiben und sogar Ihre eigenen Rezepte erstellen, die zu Ihrem einzigartigen Team, Projekt oder Ihrer Organisation passen.

Dies ist nur ein Beispiel für die vielen Möglichkeiten, wie Sensei zur Standardisierung Ihrer Projekte eingesetzt werden kann. Du kannst immer nach Anti-Patterns oder bestimmten manuellen Codetransformationen Ausschau halten, auf die du häufig in Pull-Requests stößt oder wenn du selbst codest. Wenn du eine Reihe von Codierungsrichtlinien hast, die von Entwicklern oft übersehen werden, könntest du die Richtlinien in Rezepte umwandeln, sodass Entwickler genehmigte Codetransformationen mit Zuversicht anwenden können.

Installieren Sie Sensei jetzt und aktivieren Sie Java Gotchas Cookbook für ein produktives Entwicklungserlebnis. https://sensei.securecodewarrior.com/cookbooks/scw:java

*2021, Bundesstaat der Entwicklernation, https://www.developernation.net/developer-reports/de20

目录

下载PDF文件
查看资源
想了解更多吗?

了解更多

Secure Code Warrior 您的Secure Code Warrior 帮助您在整个软件开发周期中保障代码安全,并建立将网络安全置于首位的企业文化。无论您是应用安全经理、开发人员、首席信息安全官,还是其他从事安全工作的人员,我们都能协助您的企业降低不安全代码带来的风险。

预约演示下载
分享到:
领英品牌社交x 标志
资源中心

入门资源

更多文章
资源中心

入门资源

更多文章