Core Java
- Java books for 2019 (05/2019)
- Q&A with Brian Goetz (01/2021)
- Records
- Reactive programming
- …
- Maven Survival Guide (11/2022)
Java 8
- Get a Taste of Lambdas and Get Addicted to Streams by Venkat Subramaniam (04/2017)
- Lambda expressions should be clue code. Two lines may be too many
- Funny quotes:
- the reason why programmers are antisocial -> 01:03
- “…the person that uses all the tools is called a consultant” 01:07
- Join my war on ClassLoader leaks by Mattias Jiderhamn (05/2018)
- How does the classloader (and GC) basically work
- What causes memory issues on redeployments and what can be done against it
- How to use the Eclipse Memory Analyzer
Persistence
- Performance oriented Spring Data JPA & Hibernate (05/2024)
- Database connection management, transactions
- Efficient fetching
- Hibernate Optimiser
Javascript
Angular
- Ngrx introduction
- Unit-testing RxJS code
- Angular/RxJS best practices
- Use stricter TypeScript settings
- Use async pipes for subscription
- Use share()
- Use pipes instead of functions
- Angular Change Detection
- Angular Zones
Architecture
Microservices
- Microservices, Monoliths, and Modularity (07/2017)
- Don’t use microservices to force modularization of a monolith
- Self Contained Systems: Microservices Done Right (07/2017)
- Bounded contexts (not domain/data objects!) as starting point for modularization
- On Monoliths and Microservices (02/2018)
- Why moving from a monolith to microservices?
- Despription of a modular architecture
- Introducing Domain-Oriented Microservice Architecture (10/2020)
- Problems of a complex Microservice archtiecture
- How to structure such architecture into maintainable chunks
- The Twelve-Factor App
- 12 rules on how to build software-as-a-service
Design/Clean Code
- Kent Becks Rules for Simple Design (09/2017, via Venkat - eJUG)
- The Code (ordered by priority)…
- …passes all tests
- …reveals its intetions
- …doesn’t contain duplications
- …has only minimal methods, classes etc.
- See also Martin Fowler
- The Code (ordered by priority)…
- Three Distinct Mind-sets in TDD (06/2018)
- A simple and understandable introduction to Test-Driven Development
- Execution in the Kingdom of Nouns
- Pretty old one about what’s wrong with a plain object-oriented language. Maybe a bit outdated since lambdas have been introduced to Java
Technical Stuff
Docker
- Einstieg in Docker (ct 15/2017, S.106-124)
- Don’t dockerize databases
- Don’t use Docker’s “latest” tag
- Use Doecker-compose 2.x for non-swarm
Various DevOps
Linux
Misc
- Continuous Integration and Feature Branching (06/2018)
- Why to avoid feature branches (in case I run into that argument again)
- Trunk-Based Development (10/2018)
- Definition, How-to, pro’s and con’s
- Agility Requires Safety by Yevgeniy Brikman (09/2018)
- Discussion of various “safety nets” for agile development, such as:
- Continuous integration (not the tooling, but the mindset!)
- Trunk-based development
- Monoliths vs microservices
- Feature toggles,…
- Comprehensive list of the pros and cons of each technique
- Discussion of various “safety nets” for agile development, such as:
- Beten wir Komplexität an? (09/2018)
- Ein kurzes Plädoyer gegen Komplexität in Softwareprojekten (vgl. Conway’s law, Parkinson’s law)
- The planned obsolescence of old coders (04/2019)