Plainionist Become a Better Developer, Deliver Software Faster

Book Review: Software Architecture - The Hard Parts

I got caught by the title — and I’m glad I did.

The subtitle (“Trade-Offs in Distributed Architectures”) might scare off some folks who don’t work with distributed systems. That would be a mistake. This is one of the best books on software architecture I’ve read in the last 10 years.

Book: Software Architecture - The Hard Parts

Software Architecture - The Hard Parts

More ...

Book Review: Software Design X-Rays

Technical debt is a reality for every software developer. We all know some “dark corners” of our codebases - those problematic areas we dread touching. But some challenges are less obvious. This is where Software Design X-Rays by Adam Tornhill comes in.

Book: Software Design X-Rays

Software Design X-Rays

More ...

Book Review: A Philosophy of Software Design

Have you read “Clean Code” by Robert C. Martin? Then “A Philosophy of Software Design” by John Ousterhout should be next on your list. It shares the same goal—writing better, maintainable software—but sometimes takes a very different path to get there.

Book: A Philosophy of Software Design

A Philosophy of Software Design

More ...

What is Software Complexity?

Learn more about it:

More ...

C# development in a FreeBSD jail?

While VSCode and DotNet generally works on FreeBSD, the “C# Dev Kit” does not due to the following issue: FreeBSD build of C# Dev Kit

Knowing that FreeBSD jails support running an almost full features linux system and also X11 apps, I was curious whether it would be possible to run VSCode including “C# Dev Kit” in a jail.

Here is what I learned.

More ...

Book Review: Clean Craftsmanship: Disciplines, Standards, and Ethics

What is software craftsmanship?

Craftsmanship is the state of knowing, how to do something well and is the outcome of good tutelage and lots of experience.

– Robert C. Martin, Clean Craftsmanship

Book: Clean Craftsmanship: Disciplines, Standards, and Ethics

Clean Craftsmanship: Disciplines, Standards, and Ethics

More ...

Book Review: Get Your Hands Dirty on Clean Architecture

I’ve been interested in software architecture, particularly in Clean Architecture, for many years. I discovered this book a while ago and kept it on my reading list until recently, when I finally found the time to read “Get Your Hands Dirty on Clean Architecture” by Tom Hombergs.

Book: Get Your Hands Dirty on Clean Architecture

Get Your Hands Dirty on Clean Architecture

More ...

How to automatically cache response objects?

One of my web applications has quite some pages which show quite a bit of data.

In order to achieve smooth navigation between the pages, without bothering the user with progress indicators when the data of a page is loaded from the Web API every time the user navigates to a particular page, the data needs to be cached in the browser.

As most of the data is readonly, frameworks like Vuex or similar state patterns seem to be “too heavy” in this case.

Here is my simple approach to automatically cache the response objects from the Web APIs which provides great performance of the Web application without introducing much complexity.

More ...

Auto freeze response objects with Axios interceptor

I didn’t investigated it on my own, but some research indicated that Vue.Js performs better when the objects bound to the UI controls are frozen. Of course, calling Object.freeze manually in every Vue.Js component is cumbersome and error-prone so here is how I automatically freeze all response objects I receive from my Web API using Axios.

More ...

Running a PWA in an intranet

In the previous article I summarized how I used Docker to host a web application on my Raspberry PI. This successful experiment inspired me to start a new one: Let’s turn this “regular” web application into a Progressive Web App (PWA), only hosted and operating in my local network.

It turned out this experiment was a lot trickier than initially thought …

More ...

My first Docker container

Docker

Even though Docker is popular already for quite a while, I never had an opportunity to give it a try. Until recently when I bought a Raspberry PI to host some web applications.

Of course, hosting these web applications directly on the PI would have been simpler and more efficient but then I still wouldn’t have any hands on experience with Docker.

Here is the summary of my first Docker experiment.

More ...

Book Review: Feel Good Productivity

Since I am a software developer, I have been interested in increasing my productivity because there are always more things to learn, experiment with, and accomplish than I could possibly achieve.

Over the last two decades, I have read quite a few books, countless articles, and watched tons of YouTube videos on the subject.

So, when Ali announced his book, it was clear that I would get one.

Book: Feel Good Productivity

Feel Good Productivity

More ...

Book Review: The Rust Programming Language

Everyone is saying: “When you want to learn about the Rust programming language then this is THE book to start with!”

Book: The Rust Programming Language

The Rust Programming Language

More ...

Book Review: Functional Design

A book about functional design by Uncle Bob?

When I read about a new book by Uncle Bob on X, I was immediately excited because so far I had read almost all of his books and I love functional programming since years. A perfect match!

So I pre-ordered the book already march 2023 and immediately started reading when it finally arrived in january 2024.

Book: Functional Design: Principles, Patterns, and Practices

Functional Design: Principles, Patterns, and Practices

More ...

What actually is Task<T>?

If you see such source code, do you immediately think of multi-threading?

What if I would tell you that Task<T> is nothing but a fancy delegate which is not coupled to threads at all?

More ...