I'm a german software engineer from the beautiful city of Münster in North-Rhine Westphalia. I'm interested in everything related to digital products and get tremendous satisfaction from creating a good user experience. I love clean code, and a missing test suite drives me crazy. Currently, I'm employed at bitside, where we help large and small companies with IT consulting and software development. I try to learn something every day and want to recap some of it on this blog.
-
Teleporting Renderless Slots in Vue.js
With Vue 2, one way to create reusable logic was to use renderless components. After Adam’s blog post, the concept quickly became popular. But when Vue 3 introduced the composition API, which offers similar benefits at even greater flexibility, renderless components became less relevant.
But there are still some interesting things you can do with renderless components. When you combine them with dynamic components, for example. » more
-
How to vendor npm dependencies
When you have to make changes to a third-party npm library, you usually have two choices:
- Fork the library and publish it as a new package.
- Or vendor the library and copy it into your project.
Both are valid options and depending on the scenario you have to decide which one’s better. In this blog post, I’ll show you how to do the latter. » more
-
The structure of conditional expressions — and why yours should read like natural language
When talking about clean code there are some things that most programmers will pay attention to. Naming things well or using short function bodies are two examples. But there are other, more subtle code smells that can make your code hard to understand. One thing I recently stumbled upon in a code review is the structure of conditional logic. Have a look at the following JavaScript snippet. Can you immediately tell what the output is? » more
-
Integrating ESLint into a legacy codebase
One of the first things I usually do for a new JavaScript project is to set up and configure ESLint. ESLint is a static code analyzer. It’s great for two reasons: First, it helps you enforce a consistent coding style across a team of developers or as a solo dev. This isn’t purely about code aesthetics but about making code more readable. Second, it can spot errors in your code while you’re writing it, and that’s less time head-scratching, debugging, and digging through stack traces. Software development is complicated, and ESLint is one of the tools that can help make your life a little easier. But the primary reason that ESLint is one of the first things I set up is that it becomes increasingly difficult with every line of code you add to the project. » more
-
Unboxing webpack — making sense of loaders and plugins
In 2016 I traveled through Australia for a few weeks and tried surfing for the first time in my life. I loved it, but I had an uneasy feeling whenever I went into the water. There were jellyfish under the surface, and after I had watched a few unlucky bathers, I knew that touching them hurt.
Webpack, to me, is a bit like these jellyfish. It is part of the development environment and has reasons to be there, but we usually try to stay away from each other because we know that any contact will be painful for both of us. Unfortunately, many of the technical problems I faced at work lately seemed to be related to webpack somehow, so avoiding contact was rarely an option. I usually reached out to a colleague for help, and we solved the problem with google and a lot of experimentation. » more -
How to set up an electron app with Vue and webpack
I recently started my first electron project because I thought it was the quickest way to build a user interface for a desktop app that I was developing. But the project setup turned out to be much more difficult than I had anticipated because I ran into many errors that I could find very little information about online and which I had to solve through tedious trial-and-error. However, in the process, I have learned a lot about the architecture of electron apps and – most importantly – how to fend off the most significant security risks. In this article, I want to share some of these things. Maybe it can save you part of the frustration that I experienced. » more