-
Notifications
You must be signed in to change notification settings - Fork 0
home
Andre Winkler edited this page Apr 11, 2026
·
56 revisions
Eine lose Sammlung von verschiedenen Notizen zu dem Thema 'Programmieren'.
- Source Of Readability von Loup Vaillant
- Googles Java Bibliothek Guava Hier gibt es einen interessanten Abschnitt über die Nachteile strikter funktionaler Programmierung: Google Guava
- Modern SQL
- SQL und JSON / JSON Aggregation bei Gruppierung
- Testen von List-Inhalten mit Assertj.
- WireMock
- Blog
- Implementing #equals and #hashCode
- Ternary Associations: Modelling Associations between 3 Entities
- Offset Pagination with Spring Data JPA
-
Blog
- JPA #equals und #hashCode
-
JUnit und Testdaten aufräumen
entityManagerFactory .unwrap(SessionFactoryImplementor.class) .getSchemaManager() .truncateMappedObjects();
- 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.
- Google´s recommandation for resource names
- Youtube Spring IO / Top 10 Rest API Design Pitfalls by Victor Rentea
- The editor of the developer: VI
- The enhanced DOS Box.
- bzw. eine Artikel auf Windows 11 / Powershell 7 / Terminal. Mein neues Lieblingsthema:
oh-my-posh init pwsh --config "C:\Users\andre\AppData\Local\Programs\oh-my-posh\themes\atomic.omp.json" | Invoke-Expression
- Aktiviert 'Intelli-Sense' für die Powershell:
Set-PSReadlineOption -PredictionSource History
- Eine Sammlung von Git Alias Vorschlägen.
- TODO Nochm mehr Tools...
- ...
- 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.
- 10 Javascript changes you missed in 2023
- Java 2025 / best practices
- Thorben Janssen / Hibernate vs Spring Data vs jOOQ: Understanding Java Persistence
- Thorben Janssen / Cause of Death: Spring Data JPA
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>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 :-).
- 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:
supervsextends(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 / ...
- ...
by Andre Winkler 2021, Hamburg