![CUPID](https://i0.wp.com/codecoach.biz/wp-content/uploads/2023/03/Cupid-pink.png?resize=260%2C185&ssl=1)
![WET](https://i0.wp.com/codecoach.biz/wp-content/uploads/2023/02/WET_sml.jpg?resize=260%2C185&ssl=1)
DRY Is Good. But Know When You Need To Be WET.
This article differs from most others on the issue of WET ('Write…
![chatGPT](https://i0.wp.com/codecoach.biz/wp-content/uploads/2023/02/chatGPT_inverted.png?resize=260%2C185&ssl=1)
How Good is ChatGPT at Advanced Programming?
It's time to up the ante and challenge ChatGPT's code-generating…
![chatGPT](https://i0.wp.com/codecoach.biz/wp-content/uploads/2023/02/chatGPT_sml.png?resize=260%2C185&ssl=1)
How good is chatGPT at programming?
These days, it seems, every developer is test-driving—and then…
![scaffolding test](https://i0.wp.com/codecoach.biz/wp-content/uploads/2022/11/paul-becker-UW_7e16ZN78-unsplash.jpg?resize=260%2C185&ssl=1)
What Are TDD Scaffolding Tests And Why Do We Need Them?
Three rules govern Test-Driven Development (TDD).…
![](https://i0.wp.com/codecoach.biz/wp-content/uploads/2022/10/scott-graham-OQMZwNd3ThU-unsplash.jpg?resize=260%2C185&ssl=1)
A Simple Way Of Identifying Business Logic
Business Logic
Business Logic is the beating heart…
![switch](https://i0.wp.com/codecoach.biz/wp-content/uploads/2020/06/jaye-haych-bPOEB3sy4As-unsplash.jpg?resize=260%2C185&ssl=1)
3 Reasons Why The switch Statement Is Killing Our Software
When I first started programming, I fell in love—with…
![rigidity](https://i0.wp.com/codecoach.biz/wp-content/uploads/2022/10/After-Rigid-Fragile.png?resize=260%2C185&ssl=1)
![fragility](https://i0.wp.com/codecoach.biz/wp-content/uploads/2022/09/jilbert-ebrahimi-pVEcNabAg9o-unsplash.jpg?resize=260%2C185&ssl=1)
![](https://i0.wp.com/codecoach.biz/wp-content/uploads/2022/06/Crappy-Unit-Test-Data-1.png?resize=260%2C185&ssl=1)
Better Unit Test Data For An Infinite Range
Imagine you come across the listing below. It's for a parameterised…
![](https://i0.wp.com/codecoach.biz/wp-content/uploads/2022/05/5-Levels-Unknown-2.png?resize=260%2C185&ssl=1)
How To Be Better Than a Genius Programmer—The Simple Way
If you've been programming for a few years, you likely will have…
![](https://i0.wp.com/codecoach.biz/wp-content/uploads/2022/04/Two-Arrays_Problem.png?resize=260%2C185&ssl=1)
The Two Synchronised Arrays Problem
Imagine we have a system for managing users. Say, within the…
![](https://i0.wp.com/codecoach.biz/wp-content/uploads/2021/10/robert-gourley-zVytGq27fiY-unsplash.jpg?resize=260%2C185&ssl=1)
Always Separate Stable And Unstable Code
Recently we discovered a general truth – stable…
![](https://i0.wp.com/codecoach.biz/wp-content/uploads/2021/09/designnn-co-AqENyENH_zM-unsplash.jpg?resize=260%2C185&ssl=1)
Name Converters After The Output Type
The question came up again. What shall we call…
![](https://i0.wp.com/codecoach.biz/wp-content/uploads/2021/09/headway-5QgIuuBxKwM-unsplash.jpg?resize=260%2C185&ssl=1)
Function Names Start With A Verb
Today's Tip is foundational to good programming.Functions…
![](https://i0.wp.com/codecoach.biz/wp-content/uploads/2021/09/Clean-Architecture-Corrected-1.png?resize=260%2C185&ssl=1)
Clean Architecture Is Wrong
Well, not hugely wrong. But still not entirely correct as I see…
![](https://i0.wp.com/codecoach.biz/wp-content/uploads/2021/09/CachedCustomerRepository-4.png?resize=260%2C185&ssl=1)
Clean Architecture – Caching As A Proxy
In the last post on Clean Architecture, we explored how caching…
![](https://i0.wp.com/codecoach.biz/wp-content/uploads/2021/09/CachedCustomerRepository-2.png?resize=260%2C185&ssl=1)
Clean Architecture – Caching With Interface Adapters
Last time we discovered the versatility of Clean Architecture's…
![](https://i0.wp.com/codecoach.biz/wp-content/uploads/2021/09/SqlCustomerRepository-2.png?resize=260%2C185&ssl=1)
Clean Architecture – Interface Adapters Example
Today I would like to look at a simple Clean Architecture example…
![](https://i0.wp.com/codecoach.biz/wp-content/uploads/2021/08/Interface-Adapters-1.png?resize=260%2C185&ssl=1)
Clean Architecture – Interface Adapters
Today we will take a closer look at the Interface Adapter shell…