28 Iterations later
In vielen Sourcecode Dateien finden sich Abschnitte wieder, die von Softwareentwicklern liebevoll Toter Code genannt werden
Thoughts on agile software development
In vielen Sourcecode Dateien finden sich Abschnitte wieder, die von Softwareentwicklern liebevoll Toter Code genannt werden
Das Validieren in Java hat viele interessante aber selten benutze Möglichkeiten. In diesem Beitrag geht es um das Kombinieren der Validierungs-Annotationen. Ein zu prüfenden Datum mit verschiedenen Validierungen zu annotieren ist sicherlich bekannt.
In diesem Beitrag wollen wir uns aber eine weniger bekannte Variante anschauen.
Wenn die Wertebereiche der Eingaben im Frontend geprüft werden ist es gut, wenn die Wertebereiche von Frontend und Backend übereinstimmen ist es schön. Elegant wird es, wenn Frontend und Backend ihre Wertebereiche aus der gleichen Quelle erhalten.
Leider zeigt sich hier ein kleines Manko dieses Ansatzes. Die Entitäten für Spring Data müssen annotiert werden, die DTO müssen annotiert werden und das Javascript Framework muss auch die Wertebereiche der Eingabe kennen. Drei verschiedene Konfigurationen konsistent zu halten ist arbeitsintensiv und fehleranfällig.
Streit entbrennt in der Regel darüber, was der Entwickler der Software an weiterer Dokumentation in seinem Code benötigt.
Das Zitat von Cory House “Code is like humor. When you have to explain it, it’s bad.” bringt auf humorvolle Weise ein grundlegendes These auf den Punkt. Schlechter Code wird durch Dokumentation nicht besser.
Beim Unit Testen eines Spring Boot Service der obiges FacilityRepository verwendet gibt es zwei nahe liegende Möglichkeiten. Entweder ein Spring Boot Test oder ein Mockito Test. Neben diesen gibt es aber mit
Spring Data Mock noch eine dritte interessante Alternative .
“To be or not to be, that is the question” sprach Hamlet und legt damit allen Entwicklern die entscheidende Frage in den Mund “Ist das eine gute Idee oder mache ich hier Blödsinn?”. Die Frage ist leider oft nicht so einfach zu beantworten, es gibt zu viele Grautöne zwischen dem Schwarz und Weiß.
Eine REST API mit Spring Boot ist schnell einsatzbereit, aber im Einsatz produziert die Schnittstelle häufig eine Menge unnötiger Daten, die vom Server zurückgeliefert werden.
Häufig existieren REST Schnittstellen, die Resourcen im Json Formate zurückliefern, die keinerlei Verknüpfung zu anderen Resourcen besitzen. Schlimmer noch, sie offenbaren interne Werte, damit der Client die Möglichkeit hat, andere Resourcen zu adressieren oder zu manipulieren. Häufig ist es dies der Schlüssel der Resourcen in der Datenbank.
Spring Security bietet eine Fülle von Möglichkeiten, die Rechtekontrolle für REST Endpoints zu realisieren. Besonders interessant ist die Verwendung der Annotationen @PreAuthorize und @PostAuthorize.