https://medium.com/@egonelbre/psychology-of-code-readability-d23b1ff1258a – we remember 4+/-1 item in our short memory, then they fade away. – in our brain facts/knowledge pieces are grouped, chunked and CHUNKS are linked. – we process input with our focus/locus of attention (one thing at the same time in the same space) – focus/locus is called CONTEXT – MENTAL MODEL is […]
Design pattern – how to use them? 1. Remember the pattern category (creational, behavioral, structural) 1. Create simple, single sentence pattern explanation 2. Associate simple use case with previous explanation Whoila! You have a design patterns toolbox!
Specification pattern is DDD specific way for building blocks of business logic on top of domain entities. They are defined as predicates/filters for entities. They can be combined in more complex logic. You can benefit from implementation specifics as some technologies provide many enhancements. To correctly define specification pattern and find an applicable area […]
Covariance & Contravariance are one of the most confusing terms in C#, no surprise it’s very popular for geeky questions in job interviews. Any time someone mentions those terms, it takes quite a while to refresh my knowledge about it. So, I decided to write a couple of posts explaining them in the simplest and […]
Covariance & Contravariance are one of the most confusing terms in C#, no surprise it’s very popular for geeky questions in job interviews. Any time someone mentions those terms, it takes quite a while to refresh my knowledge about it. So, I decided to write a couple posts explaining them in the simplest and shortest […]
Def. A class should have only a single responsibility. “S” in SOLID acronym stands for Single Responsibility Principle. The definition seems quite obvious, intuitive and simple. But it’s not. Let’s clarify it. In order to proceed, I will introduce 2 new terms: Business Responsibility is business requirement, functionality that describe public class’ interface. It usually comes from client’s […]
SOLID is an acronym formed from the most basic, yet very important principles in OOP, defined by Robert C. Martin, back in 2000: 1. Single Responsibility 2. Open/Closed 3. Liskov Substitution 4. Interface Segregation 5. Dependency Inversion What I love about these principles are 2 things: Simple to understand and remember. They are compact, very concrete, […]