Kevin Rutherford's Blog
August 26, 2024
Chasing an assumption
Hello again! Sorry it’s been a while since I last wrote. This may, or may not, be the start of more regular posts. Let’s see…
Yesterday I finally got a tricky bit of code working. It’s a spike, helping me to figure out how a complicated distributed algorithm will all hang together.
And when I say “working”, I mean that it worked on my laptop :-). I tried deploying it to my production server and it didn’t work there. But that’s because part of it makes a post to http://localhost:44002, which doesn’...
October 14, 2022
Javascript Checkout -- Pausing for breath
This article is part of a series in which I’m doing a well-known code kata in the “TDD as if you meant it” style. I’m also strictly following the 4 rules of simple design and looking for opportunities to use implicit coupling to drive refactoring under the Once And Only Once rule. (If you missed the start of this series you can catch up with part 1 here.)
I’m going to take a break for the next couple of weeks.

And before I do that, I want to ask you a question: Is this kata seri...
October 7, 2022
Javascript Checkout -- Triangulation 4
This article is part 7 in a series in which I’m doing a well-known code kata in the “TDD as if you meant it” style. I’m also strictly following the 4 rules of simple design and looking for opportunities to use implicit coupling to drive refactoring under the Once And Only Once rule. (If you missed the start of this series you can catch up with part 1 here.)
Thanks for reading Habitable Code! Subscribe here to see how this worked example plays out and to support my work.
This is how we left things ...
October 4, 2022
Javascript Checkout -- Triangulation 3
This article is part 6 in a series in which I’m doing a well-known code kata in the “TDD as if you meant it” style. I’m also strictly following the 4 rules of simple design and looking for opportunities to use implicit coupling to drive refactoring under the Once And Only Once rule. (If you missed the start of this series you can catch up with part 1 here.)
Last time, I decoupled the code from the prices of A and B.
Thanks for reading Habitable Code! Subscribe here to see how this worked example p...
September 30, 2022
Javascript Checkout - Triangulation 2
This article is part 5 in a series in which I’m doing a well-known code kata in the “TDD as if you meant it” style. I’m also strictly following the 4 rules of simple design and looking for opportunities to use implicit coupling to drive refactoring under the Once And Only Once rule. (If you missed the start of this series you can catch up with part 1 here.)
Last time I decided to compare two different approaches to test-driving this kata. We’re currently working on a branch while we explore trian...
September 27, 2022
Javascript Checkout 4
This article is part 4 in a series in which I’m doing a well-known code kata in the “TDD as if you meant it” style. I’m also strictly following the 4 rules of simple design and looking for opportunities to use implicit coupling to drive refactoring under the Once And Only Once rule. (If you missed the start of this series you can catch up with part 1 here.)
This is looking like being a long series of articles, so make sure you subscribe (it’s free!) so you don’t miss anything.
Last time I spent qu...
September 23, 2022
Javascript Checkout 3
This article is part 3 in a series in which I’m doing a well-known code kata in the “TDD as if you meant it” style. I’m also strictly following the 4 rules of simple design and looking for opportunities to use implicit coupling to drive refactoring under the Once And Only Once rule. (If you missed the start of this series you can catch up with part 1 here.)
This is looking like being a long series of articles, so make sure you subscribe (it’s free!) so you don’t miss anything.
In part 2 I increase...
September 20, 2022
Javascript Checkout 2
This article is part 2 in a series in which I’m doing a well-known code kata in the “TDD as if you meant it” style. I’m also strictly following the 4 rules of simple design and looking for opportunities to use implicit coupling to drive refactoring under the Once And Only Once rule.
This is looking like a long series of articles, so make sure you subscribe (it’s free!) so you don’t miss anything.
A the end of the previous article we had this code:

It’s now time to REFACTOR, which I consider to be v...
September 16, 2022
Javascript Checkout 1
Back in early 2015, on my old blog, I ran a series of articles in which I implemented a solution to a popular code kata. I followed the strict test-driven development (TDD) cycle, and when it came to the REFACTOR step I tried to drive all of my choices using connascence. After 7 or 8 articles we (me and the regular commenters) ended up quibbling over which kinds of connascence I had, which should be tackled first, etc. It was a useful exercise, because we all learned a lot about connascence and ...
September 9, 2022
Incoming: The coupling that wasn't there
As you may know from earlier articles, I have a side project to build a wiki. There is an API, which won’t concern us today, and a single page application (SPA), which will. The SPA is written in Typescript and React. Wiki page contents are written in Markdown, to which I’ve added two bespoke extensions:
Every occurrence of text such as [[Habitable Code]] is replaced in the rendered page by a hyperlink; when the link is clicked, it opens the wiki page with that title. Fairly standard for a wiki.
A...
Kevin Rutherford's Blog
- Kevin Rutherford's profile
- 20 followers
