Coding From a Reference (Draft)

Instead of starting our coding process from a totally blank page without any context, we should start coding from a solid reference. The reference should be well written, well commented, and should address a level of concerns that are appropriate for the level of maturity we're targeting.

Using Diffs

If there's an idiom that's frequently used in our code then it can be handy to actually keep a literal diff of a previous change handy. In simple cases, we can just hack our changes into that diff, re-apply the diff to our code, and then let Git walk us through the conflicts which will actually just allow us to quickly jump to each location that we need to modify to make our change and then quickly accept the new stuff.

This can be quite a bit easier than backworking all of the places that need to be changed from docs or by using the structure of the code and then potentially iterating from there.

How Does This Compare to Blank Slate?

Blank Slate is the idea that sometimes you're better off to start with a blank sheet than to try to pare something down to just what you need. In other words, blank slate actually assumes from the get go that you already have some kind of reference implementation. And, with Blank Slate, we aren't saying that you shouldn't use the reference implementation, but rather that you should keep it open separately and scrap it for parts while building the new thing constructively.

So, this all works nicely together. Transformer workflows are basically just the idea that

Hey, if you aren't working with some reference implemenation, or if there's a better, broader reference implementation than the one you're already using then go get (that) one. Then, use Blank Slate accordingly. I.e., if only small tweaks are needed to the reference implementation, then do that. Otherwise, scrap it and use it for parts and build your thing constructively by referencing the concerns and relevant pieces from the reference.