Originally published at
Fiberglass flowers. You can comment here or
there.
I prefer first to identify program classes, then to think some time about its design, the longer the better.
Then, to prove my internal API idea, I make up code pieces by “wishful thinking”: how I wish the code to look, for it to be the most brief and to express core system objects and functionality, for classes to be least coupled etc etc.
I write them down to code, mock up classes, and try to make the code example work in unit test harness.
During this process I see more details: what does the API miss in order to make pieces work, especially in initialization, finalization, and whatever things were missed during initial design.
Finally I get a (huh) nearly working system core covered with readable unit tests.
I believe, not whe worst approach. Now, how can it be improved?
What did I miss?