Introduction In the previous posts, we learned about connascence and explained why it’s so important to understand for software developers and architects. We looked at all 5 levels of static connascence and different approaches to improve code quality. In this post, we will focus on 4 levels of dynamic connascence and will take a practical […]
Fixing Static Connascence
Introduction In the previous post, we described connascence and explained why it’s so important to understand for software developers and architects. In this post, we will show a practical approach on how to fix different levels of static connascence. As a summary, connascence has nine levels (five static and 4 dynamic). The higher the level, […]
Connascence, why is it so important?
Connascence metric has its own website https://connascence.io/ where you can find detailed descriptions and examples. In this post, we will show why connascence is a very important metric. We will visualize, condense, and summarize the concepts so they are fast and easy to comprehend. What is Connascence? Before we can understand the importance of connascence, […]
How to make your tests AWESOME
Some people may argue that automated tests are not worth the effort. But here is a kicker: time spent on creating and maintaining tests in many cases is completely justified by time saved on manual testing and re-testing. Another toll of not having automated tests is the cost of bugs (in time and money) caught […]
Migrating Monolith to Microservice Architecture – Journey Continues
In the previous post, we broke down the monolith into coarse-grained Microservices based on their business domain purpose, which changed our architecture style from monolith to service-based. We refrained from migrating to Microservices right after and decided to wait a little before taking the next round. Now, as our application is stable and running smoothly, […]
Migrating Monolith to Microservice Architecture – the Path
If you have a large and scary Monolith and are looking for a clear path of migration to modern Microservices, this post is exactly about that. We are going to take a Monolithic application and, together, step by step, walk through the migration process. Importantly, our application is going to be live in production at […]
Simple Domain-Driven Design – Building Blocks
If you are wondering what Domain-Driven Design (or in short DDD) is, why it is such a useful technique, and how it is applied, this post will explain all of this. We will be working bottom up by looking at each DDD building block at a time and iteratively connecting them together in a cohesive […]
Why Not to write SQL Stored Procedures – Part 2
Previous part talked about why using Stored Procedures for writing business logic may be a bad idea. In this part, we continue on this subject but are going to look at the problem from an architecture angle. Typical Stored Procedures based application Typical application which heavily uses SPs for business logic may look like this. […]
Why Not to write SQL Stored Procedures – Part 1
SQL Stored Procedures (SPs) have been a workhorse for several decades. They have been used for many reason. Some of which can be justified, but some can lead to tremendous technical debt. The good of Stored Procedures Among justifiable reasons to write SPs are the following: The ugly of Stored Procedures SQL Syntax The worst […]