![](https://i0.wp.com/codecoach.biz/wp-content/uploads/2023/09/Liskov-Guide-Faces.png?resize=260%2C185&ssl=1)
The Sad and Happy Faces of Liskov
/
0 Comments
Fundamentally, the Liskov Substitution Principle (LSP) is…
![](https://i0.wp.com/codecoach.biz/wp-content/uploads/2023/09/galina-nelyubova-yNb_3fGUaxY-unsplash.jpg?resize=260%2C185&ssl=1)
The Difference between Validation and Business Rules
In software development, two concepts still cause…
![](https://i0.wp.com/codecoach.biz/wp-content/uploads/2023/07/allison-saeng-_LoleWcsX4I-unsplash.jpg?resize=260%2C185&ssl=1)
The Grand Chessboard of Software Design: Unlocking the Strategy Pattern
Have you ever been at a crossroads, paralysed by…
![](https://i0.wp.com/codecoach.biz/wp-content/uploads/2023/07/dayne-topkin-u5Zt-HoocrM-unsplash.jpg?resize=260%2C185&ssl=1)
Should We Directly Unit-Test Private Functions?
Software developers have long debated whether to…
![](https://i0.wp.com/codecoach.biz/wp-content/uploads/2023/06/ReadOnly_Getters.jpg?resize=260%2C185&ssl=1)
The Joy of Read-Only Getters
Read-Only getters (read-only properties in C#) are an excellent…
![](https://i0.wp.com/codecoach.biz/wp-content/uploads/2023/06/austin-chan-ukzHlkoz1IE-unsplash.jpg?resize=260%2C185&ssl=1)
Unit Testing Non-Deterministic Values
Sometimes we will need to set random or non-deterministic values…
![](https://i0.wp.com/codecoach.biz/wp-content/uploads/2023/06/shubham-dhage-pb5w9WU1goA-unsplash.jpg?resize=260%2C185&ssl=1)
Fixing Misconfigurations With Smart Defaults
In a recent article, we considered what value a program's configuration…
![](https://i0.wp.com/codecoach.biz/wp-content/uploads/2023/05/config.jpg?resize=260%2C185&ssl=1)
Beyond String Configurations
Sometimes even retrieving simple configuration values can be…
![](https://i0.wp.com/codecoach.biz/wp-content/uploads/2023/05/ravi-palwe-I3urDa6z2_4-unsplash.jpg?resize=260%2C185&ssl=1)
Separate Configuration. Here’s Why.
Consider the configuration code in the constructor for a hypothetical…
![authorisation](https://i0.wp.com/codecoach.biz/wp-content/uploads/2023/05/bouncer-1.jpg?resize=260%2C185&ssl=1)
What Is Authorisation?
I feel that the security concepts of Authentication and Authorisation…
![](https://i0.wp.com/codecoach.biz/wp-content/uploads/2023/05/ed-hardie-RMIsZlv8qv4-unsplash.jpg?resize=260%2C185&ssl=1)
What Is Authentication?
And why is Authentication central to computer system security? I…
![](https://i0.wp.com/codecoach.biz/wp-content/uploads/2023/05/mostafa-meraji-n64TcuScGlc-unsplash.jpg?resize=260%2C185&ssl=1)
Using Exceptions For Program Control Flow?
With my recent article on when to use exceptions, I got a few…
![exception](https://i0.wp.com/codecoach.biz/wp-content/uploads/2023/04/randy-laybourne-duTm7WvwN0U-unsplash.jpg?resize=260%2C185&ssl=1)
Exceptions are Confusing. Here’s When to Use Them.
In my days as a junior developer, I didn't understand exceptions.…
![wrong http status code](https://i0.wp.com/codecoach.biz/wp-content/uploads/2023/04/HTTP-status-codes.png?resize=260%2C185&ssl=1)
There’s Something Seriously Wrong with an HTTP Status Code
I relish writing and communicating general truths on programming…
![Not Wanting to Break Anything](https://i0.wp.com/codecoach.biz/wp-content/uploads/2023/04/Not-Wanting-To-Break-Anything.png?resize=260%2C185&ssl=1)
The Danger of ‘Not Wanting to Break Anything’
If you've worked with seriously convoluted, no-nonsense legacy…
![shotgun surgery](https://i0.wp.com/codecoach.biz/wp-content/uploads/2023/04/Shotgun-Surgery.png?resize=260%2C185&ssl=1)
Beware of Shotgun Surgery
Have you ever had to make one change after another merely to…
![factory method](https://i0.wp.com/codecoach.biz/wp-content/uploads/2023/03/FactoryMethod.png?resize=260%2C185&ssl=1)
The Factory Method Pattern
I get it; Design Patterns take time to understand. It took me…
![Double-Record](https://i0.wp.com/codecoach.biz/wp-content/uploads/2023/03/Transactions-Double-1.png?resize=260%2C185&ssl=1)
The Financial Double-Record Anti-Pattern
I find it fascinating when encountering a software design anti-pattern,…
![Chain Of Responsibility](https://i0.wp.com/codecoach.biz/wp-content/uploads/2023/03/ChainOfResponsibility.png?resize=260%2C185&ssl=1)
The Chain Of Responsibility Design Pattern
Chain of Responsibility
Chain of Responsibility is a behavioural…
![use case](https://i0.wp.com/codecoach.biz/wp-content/uploads/2023/03/UseCase.png?resize=260%2C185&ssl=1)
What Is A Use Case?
What is the essential part of a computer system?Answer: The…