Andrzej Nowik | Software Engineer

Welcome to my homepage. Here I share my articles on software engineering.
I hope you find something useful.

Simplify your Application Architecture with Modular Design and MIM  [Pinned]

1. Intro tl;dr Instead of forcing your application into a prescriptive template like Clean or Hexagonal Architectures, get back to basics and use patterns from Modular Software Design. Divide the application into independent modules, each containing business logic representing a specific process. For modules with complex business logic, extract the infrastructure-related code into separate Infrastructure-Modules. This will enable you to build an application characterized by low cognitive load, high maintainability, and high extensibility. ...

Unit Tests - from waste to asset  [Pinned]

Have you ever doubted that Unit Tests are worth the effort? Or have you had a feeling that you can’t rely on them in terms of quality? It might be because you’ve been exposed to so-called “London School” of writing tests. This text is my attempt to summarize and draw conclusions from the pragmatic approach to Unit Tests and TDD presented in the best resources I could have found. Goals vs reality Let’s start with some promises Unit Tests and TDD made: ...

Stop doing Pull Requests. Start doing Code Reviews  [Pinned]

Do you think you know what CI (Continuous Integration) is? Do you use it? By the end of this article you should acknowledge that you probably don’t1. I’ve compiled this text from fine resources about the Code Review - one of the cornerstones of CI. Kent Beck, the inventor of Continuous Integration, TDD and XP discourages Pull Requests. Dave Farley, the co-inventor of Continuous Delivery and author of the Modern Software Engineering book urges not to use them. He says that Google’s highly regarded State of DevOps Report (DORA) clearly backs him up. ...

2023.04.22 9 min Andrzej Nowik