Matthias Noback

Software developer, code gardener, regular speaker, blogger and workshop host. Author of "Principles of Package Design" and "Microservices for everyone".

Matthias Nobackmatthiasnoback
2025-06-20

New post: "Enumeration, part 3" matthiasnoback.nl/2025/06/fort

It's surprising how much there is to explore about enumeration types, but here we are with the final part: we further improve the design by making log level an abstract type, and all the concrete levels subtypes.

Matthias Nobackmatthiasnoback
2025-06-19

New post: "Enumeration, part 2" matthiasnoback.nl/2025/06/fort

We increase type safety by narrowing the integer level argument to a derived type argument. By introducing a factory type for log levels we are able to separate responsibilities. Finally we allow level comparisons using operator overloading.

Matthias Nobackmatthiasnoback
2025-06-18

New post: "Fortran: Enumeration, part 1" matthiasnoback.nl/2025/06/fort

We are refactoring the integer parameters for the various log levels that we want to support. We want to accomplish type-safety and ease-of-use (pun intended).

Matthias Nobackmatthiasnoback
2025-06-12

New post: "Module Design" matthiasnoback.nl/2025/06/fort

We look into splitting an existing module into smaller modules. We then put a façade module in front of the smaller modules, so users only have to deal with a simple programming interface. Finally we fix compilation cascade issues by introducing the concept of a submodule.

Matthias Nobackmatthiasnoback
2025-06-11

New post: Service Composition, part 2: Decoration matthiasnoback.nl/2025/06/fort

In this post we explore another way of composing abstractions, which is called decoration. We prefix existing log messages with a timestamp and implement optional delegation based on a configured log level.

Matthias Nobackmatthiasnoback
2025-06-10

New post "Fortran: Service Composition, part 1: Aggregation" matthiasnoback.nl/2025/06/fort

We are ready to build more features into the logging library, using different styles of composition. First we look at aggregation.

Matthias Nobackmatthiasnoback
2025-06-09

New post: "Abstract Types and Deferred Procedures" matthiasnoback.nl/2025/06/fort

We define an abstract type with deferred procedures (in OO language: an interface) for the file logger. Introducing an abstract factory allows clients to decouple from specific service types and shows us how polymorphism works.

Matthias Nobackmatthiasnoback
2025-06-05

@philippe99 Nice, thanks for letting me know!

Matthias Nobackmatthiasnoback
2025-06-05

New post: "Modeling Services as Derived Types" matthiasnoback.nl/2025/06/fort

Derived types are good for "data objects", but they can also be used for "service objects". We look at a safe refactoring from module state and subroutines to a derived type with a data component and a type-bound procedure.

Matthias Nobackmatthiasnoback
2025-06-05

@tetrislife What do you mean by aliasing between arguments?
Hmm, what I've seen is a lot of maintainability issues caused by: lack of modularization and encapsulation, large functions and files... In part typical legacy code issues + premature optimization/thinking for the compiler.

Matthias Nobackmatthiasnoback
2025-06-04

New article: "Private Data Components and Custom Constructors" matthiasnoback.nl/2025/06/fort

We make the data inside the derived type private (encapsulation), offer alternative ways for creating new instances (factory functions), and expose these alternatives as an abstract function.

Matthias Nobackmatthiasnoback
2025-06-03

New post: "Type-bound Procedures" matthiasnoback.nl/2025/06/fort These are the equivalent of class methods, but can surprisingly still be used as regular functions.

Matthias Nobackmatthiasnoback
2025-06-02

New post: "Derived Types" matthiasnoback.nl/2025/06/fort These are similar to structs or classes in other languages.

Matthias Nobackmatthiasnoback
2024-10-10

It's been a while since I was at a conference, but today I presented on techniques I've been using with teams in the past few years: "How to eliminate waste in a software development process" The link to the slides: drive.google.com/file/d/1uLSQe

Matthias Nobackmatthiasnoback
2024-08-30

It's been a while, but I'm finally speaking in public again :) at the AFUP conference in October. Two talks even, one about Static analysis/Automated refactoring, and one about Waste in software development. Looking forward to meeting you there!

More info and a short interview: event.afup.org/forumphp2024-in

Matthias Nobackmatthiasnoback
2024-04-05

@danielsiepmann Thanks for your review :)

Matthias Nobackmatthiasnoback
2024-03-01

- "The DevOps Handbook" (no big surprises, a great overview when you want to get started with this topic; it's not about specific tools)
- "The Goal" Goldratt (about lean manufacturing, big inspiration for writers of "The Phoenix Project")
- "The Design of Everyday Things" Norman (in progress; principles for designing of products, including digital ones)

Matthias Nobackmatthiasnoback
2024-03-01

Unfortunately, I find myself driving a car a lot these days, but this has one advantage: I have time to listen to audiobooks... So far, they are all gold:

- "Thinking in Systems" Meadows (a great introduction to systems thinking)
- "The Phoenix Project" Kim, Spafford, Behr (a novel that describes the process of introducing continuous delivery in an IT organization)

Matthias Nobackmatthiasnoback
2024-02-16

@danielsiepmann That's great to hear! See you there :)

Matthias Nobackmatthiasnoback
2024-02-14

Join my workshop on "Advanced Web Application Architecture", February 29th, in Venlo (east of NL, close to DE ;) webcampvenlo.nl/session/worksh

Client Info

Server: https://mastodon.social
Version: 2025.04
Repository: https://github.com/cyevgeniy/lmst