Andrzej Nowik | Software Engineer
I hope you find something useful.
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. ...
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: ...
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. ...