my blog. for you.

Let’s talk digital.

I’m an independent IT consultant and entrepreneur in the Internet and software business. I’m interested in design, enterprise applications, web apps and SaaS products. I design and develop business solutions and applications. I help companies in terms of software quality and knowledge transfer, e.g. with Angular and Spring Boot.

Modern Web App Design Patterns: Patterns.dev

After last week's post on The Modern JavaScript Tutorial, a comprehensive guide to modern JavaScript, as something of a follow-up, today I'd like to introduce you to Patterns.dev (previously known as "Modern Web App Design Patterns"), an ebook on "design patterns and component patterns for building powerful web apps with vanilla JavaScript and React". The authors of Patterns.dev provide design patterns and tips on how to improve the architecture of your web apps. Patterns.dev follows a descriptive rather than prescriptive approach in ... Read more

Jeremy Keith – Declarative Design @ “Stories on the Road”

More on this idea: Design & Quantum Superposition Read more

Java Design Patterns

Based on Christopher Alexander's pattern language, design patterns in software allow us to apply reusable patterns to common use cases and scenarios in software development instead of having to reinvent the proverbial wheel each time we're facing similar problems. If you'd like to brush up on design patterns in the context of Java as a programming language, Java Design Patterns has you covered. Java Design Patterns is a website "showcasing Java-based design patterns, principles, and code snippets". For a more general, language-independent overview ... Read more

Christopher Alexander – Patterns in Architecture

Sadly, a few days ago, seminal architect and design theorist Christopher Alexander passed away. Having coined the term "pattern language" Christopher Alexander is considered the father of the pattern language movement. It is this term we as software engineers - oftentimes quite casually - refer to when we're talking about design patterns. In 1996, Christopher Alexander gave this compelling talk at the 1996 ACM Conference on Object-Oriented Programs, Systems, Languages and Applications (OOPSLA): In this talk, Alexander addresses the connection between architecture and software ... Read more

Inversion of Control vs Dependency Injection

Dependency injection is one way of implementing inversion of control - a programming principle that allows for better modularity and extensibility. Dependency injection is commonly achieved via constructor injection, field injection, or setter injection. Inversion of control is an abstract concept, which dependency injection is a realisation of. Other methods of implementing inversion of control for example include the template pattern, service discovery, delegates, events, and currying (when applying a functional programming paradigm). Read more

A Catalogue of Design Patterns

Recently, I came across this well-structured as well as visually appealing catalogue of software design patterns on Refactoring.Guru. The subject of design patterns can be a somewhat dry, unwieldy one. Hence, using visuals and metaphors can come in handy when explaining both the general idea behind design patterns and specific patterns alongside with their use cases. Refactoring.Guru does a great job not only at explaining the origin and purpose of and rationale behind design patterns and pattern languages but also at describing each ... Read more

Cloud Design Patterns

In the past few months, I've been working a lot with distributed applications and more complex cloud architectures, both in terms of Stratospheric - From Zero to Production with Spring Boot and AWS (the eBook I'm currently writing together with Tom Hombergs and Philip Riecks) and client work. Microsoft's library of Cloud Design Patterns (as previously mentioned in this blog post) is a collection of cloud-related software and infrastructure design patterns that can help you with weighing up the merits of common ... Read more

Push Notifications with Amazon MQ – Sample From “Stratospheric – From Zero to Production with Spring Boot and AWS”

The following is an excerpt from the chapter on "Push Notifications with Amazon MQ" from the eBook "Stratospheric – From Zero to Production with Spring Boot and AWS" I'm currently writing together with Tom Hombergs and Philip Riecks. You can get the eBook over at Leanpub. Push Notifications With Amazon MQ As discussed in the chapter "Sharing Todos with SQS and SES" we might want to share our Todos with others. Being able to share Todos is already quite helpful for working on tasks ... Read more

CORS: What It Is and How It Works

Expanding on last week's article on best practices for REST API Design I'd like to point to a specific aspect working REST APIs frequently entails: A browser security feature called "Cross-Origin Resource Sharing (CORS)". This feature allows you to define which resources provided by a web application are supposed to be accessible from which origin, which in turn typically is comprised of protocol, host / domain name and port. This website's origin for example is https://bjoernkw.com:80 (port 80 is the default port ... Read more

REST API Design: Best Practices

It's probably safe to say that REST (REpresentational State Transfer - originally described by Roy Fielding) is the most widely used architectural pattern when it comes to APIs in web application contexts. From statelessness, to self-descriptive messages, and hypermedia as the engine of application state (HATEOAS) REST comes with quite a few principles, constraints, patterns, and flavours, not all of which are used or applied consistently with each REST API. REST often is a rather loosely-applied architectural pattern or a continuum, on ... Read more
Next Page »