What has not been declared dead already? Test Driven Development was buried years ago. Still, it continues to spread. Of course, Agile is dead as well. But even traditional companies come into contact with Scrum. The dead continue to live, but declaring something dead is always good for a snappy headline. In that sense, witness how I destroy epics as an agile practice.
The term is vague. This has advantages. Epics are more for communication than specification. The vagueness makes them versatile. But there is a risk of misunderstandings. I stick to Mike Cohn’s definition:
Clean Architecture is a term coined by Robert C. Martin. The main idea:
Entities and use cases are independent of frameworks, UI, the database, and external services.
A Clean Architecture style has a positive effect on maintainability:
Diagrams as code is a term used for storing the source of a diagram image as a text file. Examples include architecture diagrams, or diagrams showing a system’s behavior or design.
In this article, I will present an approach that takes the term diagrams as code literally. I will show you how to generate diagrams from source code.
Represent the diagrams as models in Java source code. And…
I’ve started a new side project. The goal is to drastically simplify the development of message-driven microservices.
Event sourcing is used as the standard persistence mechanism. In the future, I also plan to implement service integration using Kafka.
The project is called Being. It’s based on the Lagom framework.
Here’s the link to the Being project.
Please leave a comment what you think, or chat with me on Gitter.
I appreciate feedback.
I just published a new side project of mine, for creating modular monoliths.
It’s very early stage. Not more than an outline. I’m curious what you think about it, please leave me a note in the comments.
Each module is contained in its own Gradle project. Apart from
connector, the modules have no dependencies.
This modular style of development potentially has the following benefits:
A few days ago, one of my students showed me his code. He had written an AWS lambda function that scrapes a web site and posts contents to Discord. He was unhappy because he couldn’t test the contents of the messages being posted. He said that there wasn’t a mocking framework for the external services.
I told him that he doesn’t need a mocking framework. He just needs to use Dependency Injection (DI). DI enables you to:
I just released version v2.0 of the requirements as code library.
Using it, you can create a single behavior that receives messages from the calling code. The behavior then dispatches the messages to an appropriate message handler. Which handler is appropriate is defined in a behavior model.
In the following example, a user sends a request with the user name (“Joe”). The system greets the user with “Hello, Joe.”
Since the behavior is the central point of control for all functions, you can inject and configure the dependencies of all functions through it. …
Jackson is a powerful library for processing JSON. It’s the default library used by the Spring Framework. It’s very flexible and configurable. The standard way of configuring it is using annotations in the classes to be processed.
In this post, I will explain how to use the Moonwlker library that I created. It’s a facade to Jackson, and provides a builder API to configure Jackson. That way, you can get rid of anotations in your classes. I will also show you how to integrate Moonwlker into Spring Boot applications.
Before we dive into code examples, why would you want to…
Hi folks. I hope you’re doing good and staying healthy.
I just wanted to let you know that I did a major update of the GitHub frontpage of my long term side project, requirements as code.
My goal has been to improve the description of what the project is about, to clearly describe the proposed application design, and to give concrete code examples to try out.
You can find the project here.
I’d be glad if you check it out. Comments & questions are welcome.
If you want to have a direct conversation, don’t hesitate: email@example.com
Got a bit of time on your hands, and you’re wondering how to use it effectively?
I explain the fundamentals of agile software development and Scrum. How it works and the pitfalls to avoid when getting started.
Watch my online video now on Skillshare: