Merge pull request #13 from kneitzel/UpdateDocumentation

Update documentation
This commit is contained in:
Konrad Neitzel 2024-05-09 18:03:07 +02:00 committed by GitHub
commit d655bff119
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 151 additions and 5 deletions

View File

@ -15,8 +15,10 @@ This projects includes multiple plugins:
To use this Template, all you need is a local Java Installation. To use this Template, all you need is a local Java Installation.
My current advice is to use a long term supported (LTS) version of either Java 17 or Java 21. My current advice is to use a long term supported (LTS) version of either Java 17 or Java 21.
**Important** All commands following should be issued in the root directoy of the project (the directory where you find the pom.xml)
**[Documentation in English](documentation/en/_Index.md)** **[Documentation in English](documentation/en/_Index.md)**
**[Dokumentation in Deutsch](documentation/de/_Index.md)** **[Dokumentation in Deutsch](documentation/de/_Index.md)**
**Important: ChatGPT was utilized to generate the documentation based on
predefined content specifications, as it represents the fastest way to produce
comprehensive documentation.**

View File

@ -8,6 +8,9 @@ Stelle Deiner Wahl auf dem Computer.
angegeben. Unter Windows kannst Du am Anfang des Befehles das ./mvnw durch mvnw angegeben. Unter Windows kannst Du am Anfang des Befehles das ./mvnw durch mvnw
ersetzen. ersetzen.
**Hinweis**: Die Befehle müssen im Hauptverzeichnis des Projekts, in dem auch
die pom.xml ist, ausgeführt werden.
## Wie kannst Du das Projekt nutzen ## Wie kannst Du das Projekt nutzen
### Start der Anwendung von der Kommandozeile ### Start der Anwendung von der Kommandozeile

View File

@ -0,0 +1,71 @@
# Statische Codeanalyse
Statische Codeanalyse ist ein unerlässliches Werkzeug im Softwareentwicklungsprozess,
das dazu dient, Codequalität zu sichern und Fehler frühzeitig zu erkennen, bevor sie in
Produktion gehen. Sie analysiert den Quellcode auf potenzielle Fehler, ohne das Programm
auszuführen. Diese Technik ist besonders nützlich, um gängige Fehler wie Syntaxfehler,
Typinkonsistenzen oder ungenutzte Variablen aufzuspüren.
Der Hauptvorteil der statischen Codeanalyse liegt in ihrer Fähigkeit, komplexe und schwer
zu findende Fehler zu identifizieren, die während der Laufzeit schwer zu diagnostizieren
sind. Sie verbessert die Code-Sicherheit, indem sie Schwachstellen aufdeckt, die zu
Sicherheitslücken führen können, wie z.B. Buffer Overflows oder SQL-Injection. Darüber
hinaus unterstützt sie die Einhaltung von Kodierungsstandards und verbessert die Lesbarkeit
sowie Wartbarkeit des Codes.
Die Implementierung einer statischen Analyse in den Entwicklungszyklus ermöglicht es
Entwicklerteams, effizienter zu arbeiten, da viele Fehler behoben werden können, bevor sie
überhaupt in den Testprozess gelangen. Dies spart Zeit und Ressourcen in späteren
Entwicklungsphasen und führt zu einer insgesamt höheren Softwarequalität.
## Tools zur statischen Codeanalyse
### Sonarlint
SonarLint ist ein leistungsstarkes Plug-in für die statische Codeanalyse, das
für eine Vielzahl der am weitesten verbreiteten Entwicklungsumgebungen
verfügbar ist, darunter IDEs wie Eclipse, Visual Studio, IntelliJ IDEA und
Visual Studio Code. Dies ermöglicht es Entwicklern, Code-Qualitätsprobleme
direkt während der Entwicklung zu identifizieren und zu beheben, unabhängig
von der verwendeten Plattform.
Die Stärke von SonarLint liegt in seiner Fähigkeit, präzise und relevante
Ergebnisse zu liefern, was es zu einem wertvollen Werkzeug für
Softwareentwickler macht, die die Qualität ihrer Codebasis verbessern möchten.
Die Analyseergebnisse sind in der Regel sehr genau und helfen, Fehler
frühzeitig im Entwicklungsprozess zu erkennen und zu korrigieren.
SonarLint wird von SonarSource bereitgestellt, dem Unternehmen, das auch die
beliebte Code-Qualitätsplattform SonarQube entwickelt hat. Es ist unter einer
Open-Source-Lizenz verfügbar, was bedeutet, dass es kostenlos genutzt werden
kann, sowohl in kommerziellen als auch in nicht-kommerziellen Projekten.
Diese Lizenzierung macht SonarLint besonders attraktiv für Entwickler und
Organisationen, die eine kosteneffektive Lösung zur Verbesserung ihrer
Code-Qualität suchen.
### PMD
PMD ist ein beliebtes Tool für die statische Codeanalyse, das speziell darauf
ausgelegt ist, im Build-Prozess automatisch integriert zu werden. Dies
ermöglicht es, PMD nahtlos in kontinuierliche Integrationsumgebungen und auf
Buildservern zu verwenden. Durch seine Integration in den Build-Prozess kann
PMD automatisch Codeanalysen durchführen, sobald der Code kompiliert wird,
was die Identifikation und Behebung von Codequalitätsproblemen effizienter
gestaltet. Dies macht es zu einem idealen Werkzeug für Entwicklerteams, die
eine kontinuierliche Überwachung und Verbesserung der Codequalität
sicherstellen möchten.
### SpotBugs
SpotBugs ist ein fortschrittliches Werkzeug zur statischen Codeanalyse, das
speziell für die Integration in den Build-Prozess konzipiert ist, ähnlich wie
PMD, jedoch mit erweiterten Funktionen zur Erkennung potenzieller Fehler. Ein
besonderes Merkmal von SpotBugs ist die Unterstützung von Null-Überprüfungen
durch Annotationen wie @Nullable, die PMD nicht bietet. Diese Funktionalität
ermöglicht es Entwicklern, explizit anzugeben, wo Nullwerte erwartet werden,
was die Fähigkeit des Tools erhöht, Nullzeigerausnahmen zu erkennen, bevor
der Code bereitgestellt wird. Wie PMD kann auch SpotBugs nahtlos in
kontinuierliche Integrationsumgebungen und auf Buildservern integriert werden,
was den Prozess der Qualitätskontrolle des Codes während der Kompilierung
automatisiert. Diese Integration hilft Entwicklungsteams, durch
kontinuierliche Bewertungen und Verbesserungen einen hohen Standard der
Codequalität aufrechtzuerhalten.

View File

@ -7,9 +7,9 @@
- [Erzeugung eines Images](ImageCreation.md) - [Erzeugung eines Images](ImageCreation.md)
- Überprüfung auf Aktualisierungen - Überprüfung auf Aktualisierungen
# Statische Codeanalyse ## [Statische Codeanalyse](StaticCodeAnalysis.md)
- PMD - PMD
- SpotBugs - SpotBugs
# Sonstiges ## Sonstiges
- Lombok - Lombok

View File

@ -3,6 +3,11 @@
- Simply download a zip file of this project and unzip it somewhere on your computer - Simply download a zip file of this project and unzip it somewhere on your computer
- open the pom.xml and change the settings at the start of the document to fit with your project - open the pom.xml and change the settings at the start of the document to fit with your project
**Important** The shown commands use a syntax that is used by unix and macos. If you
are using Windows then please replace the ./mvnw with mvnw only.
**Important** All commands shown should be issued in the root directoy of the project (the directory where you find the pom.xml)
## How to use this project ## How to use this project
### Start the application from commandline ### Start the application from commandline

View File

@ -0,0 +1,65 @@
# Static Code Analysis
Static code analysis is an essential tool in the software development process,
designed to ensure code quality and detect errors early before they go into
production. It examines the source code for potential mistakes without running
the program. This technique is particularly useful for identifying common
errors such as syntax errors, type inconsistencies, or unused variables.
The main advantage of static code analysis lies in its ability to identify
complex and hard-to-find errors that are difficult to diagnose during runtime.
It enhances code security by revealing vulnerabilities that could lead to
security breaches, such as buffer overflows or SQL injection. Additionally,
it supports adherence to coding standards and improves the readability and
maintainability of the code.
Implementing static analysis in the development cycle allows development
teams to work more efficiently, as many errors can be addressed before they
even enter the testing process. This saves time and resources in later
development stages and leads to overall higher software quality.
## Tools for static code analysis
### Sonarlint
SonarLint is a powerful static code analysis plugin available for a wide
range of widely-used development environments, including IDEs like Eclipse,
Visual Studio, IntelliJ IDEA, and Visual Studio Code. This enables developers
to identify and fix code quality issues directly during the development
process, regardless of the platform used.
The strength of SonarLint lies in its ability to deliver precise and relevant
results, making it a valuable tool for software developers looking to improve
the quality of their codebase. The analysis results are typically very
accurate and help to detect and correct errors early in the development
process.
SonarLint is provided by SonarSource, the company that also developed the
popular code quality platform SonarQube. It is available under an open-source
license, meaning it can be used free of charge in both commercial and
non-commercial projects. This licensing makes SonarLint particularly
attractive for developers and organizations seeking a cost-effective
solution to enhance their code quality.
### PMD
PMD is a popular static code analysis tool specifically designed to be
automatically integrated into the build process. This allows PMD to be
seamlessly used in continuous integration environments and on build servers.
By being integrated into the build process, PMD can automatically perform
code analysis as soon as the code is compiled, making the identification
and resolution of code quality issues more efficient. This makes it an
ideal tool for development teams that want to ensure continuous monitoring
and improvement of code quality.
### SpotBugs
SpotBugs is an advanced static code analysis tool tailored for integration
into the build process, similar to PMD, but with enhanced capabilities for
identifying potential bugs. A distinctive feature of SpotBugs is its support
for null-checks using annotations such as @Nullable, which PMD does not offer.
This functionality allows developers to explicitly denote where null values
are expected, enhancing the tools ability to detect null pointer exceptions
before the code is deployed. Like PMD, SpotBugs can be seamlessly integrated
into continuous integration environments and on build servers, automating the
process of code quality checks during compilation. This integration aids
development teams in maintaining high standards of code quality through
continuous assessments and improvements.

View File

@ -7,7 +7,7 @@
- [Image Creation](ImageCreation.md) - [Image Creation](ImageCreation.md)
- Checking of Updates - Checking of Updates
## Static Code Analysis ## [Static Code Analysis](StaticCodeAnalysis.md)
- PMD - PMD
- FindBugs - FindBugs