Skip to content
Andre Winkler edited this page Apr 11, 2026 · 56 revisions

Verschiedenes: Anleitungen, Code-Schnipsel, Links

Eine lose Sammlung von verschiedenen Notizen zu dem Thema 'Programmieren'.

Referenzen

Gruppierung

Java

  • Testen von List-Inhalten mit Assertj.
  • WireMock

Adam Bien

JPA / Hibernate

Thorben Janssen

Vlad Mihalcea

Web, Frontend

  • Spring Boot 4 / Neue Möglichkeiten mit 'RestTestClient'. Siehe Beispiele unter rest-test-client auf GitHub.
  • Spring Boot und die Änderungen am 'RequestMatcher': marco.de oder Spring Doc 5.8 und Spring Doc (current). Empfehlenswert sind die Migrationshilfen zwischen den Major Version von Spring.

Rest

SQL

Javascript / Typescript / Web Frameworks

Tools

Eclipse

  • Heute ein sehr unterschiedliches Laufzeitverhalten einer Spring-Boot-Anwendung beobachtet. Gestartet wurde die Spring-Boot Applikation über Eclipse 'Run As' bzw. 'Debug As'. Die 'Debug As' Variante benötigte ein vielfaches der Zeit für den Start als die einfache 'Run As' Variante. Nach Deaktivierung aller Breakpoints (es war nur einer in einer DTO Klasse festgelegt, die in der Startphase nicht durchlaufen wird) waren beide Varianten 'Run As' und 'Debug As' wieder gleich schnell.

Musste gesehen haben Links:

Visual Code Extensions

Maven

Die lokalen Maven Settings:

<profile>
  <id>mavenGluehlochDe</id>
  <activation>
    <activeByDefault>true</activeByDefault>
  </activation>
  <repositories>
    <repository>
      <id>repositoryMavenGluehlochDe</id>
      <url>https://maven.gluehloch.de/repository</url>
      <layout>default</layout>
      <releases>
        <enabled>true</enabled>
        <checksumPolicy>fail</checksumPolicy>
        <updatePolicy>always</updatePolicy>
      </releases>
      <snapshots>
        <enabled>true</enabled>
        <checksumPolicy>fail</checksumPolicy>
        <updatePolicy>never</updatePolicy>
      </snapshots>
    </repository>
  </repositories>
</profile>

First Indicators of Overengineering in Your Project

Link: First Indicators of Overengineering in Your Project Adam Bien Blog / first indicators of overengineering

  • You start to use terms like "potentially", "in future" or "scalable".
  • You spend more time thinking of "encapsulation", "abstraction" and "decoupling", than the actual problem.
  • You believe, that the with amount of frameworks, libraries, and languages (better polyglot projects), the qualitity of the software will improve.
  • You are able to replace every single concept, class and layer - but this feature actually cannot be derived from the client's requirements.
  • Just looking at the code - you do not understand what happens - you need addtional tools, products and consultants :-) to understand it.
  • You hate monolithic structures - so everything is configurable, replacable - of course at runtime. If it becomes too complex, go to point 5.
  • You start to implement a generator to tackle the complexity.
  • Your configuration file is getting slightly bigger, than your code.
  • Your interface is so fluent, that only domain experts understand the code :-)
  • The problem with patterns, best practices and idioms is the overuse of a single principle. Regardless what you are considering: overuse of DRY can lead to "fat" layers and classes, overuse of Separation Of Concerns to many fine grained units, overuse of modularization to jar, plugin or just governance hell. Common sense and the balance between concepts and idioms are the solution- but it's hard to find in real world :-).

TODOs / Ideensammlung

  • Wie funktioniert das? You read a signal's value by calling its getter function, which allows Angular to track where the signal is used.
  • Java Generics: super vs extends (Return vs function parameter). Produce and Consumer.
  • Java Generics: List<? extends Type> / Zuweisung von Listen mit Typen aus der gleichen Vererbungshierarchie.
  • Funktionale Programmierung / Monads / Result
  • Einrichten von GIT für die Powershell (insbesondere GIT Alias für die Powershell).
  • Spring MVC Applikation verpackt in einer Jetty Instanz.
  • SQL und JSON / JSON Aggregation bei GROUP BY Ausdrücken.
  • @Transactional und Exception Handling
  • IAM / Spring oauth2 / Goole oauth2 / Spring Unterstützung / Keycloak / ...
  • ...

Clone this wiki locally