def programming

If you say "I told you so", you are the one who has failed. Because you knew, but did not manage to stop the train wreck

[Most managers] may defend the schedule and requirements with passion; but that’s their job. It’s your job to defend the code with equal passion.

The proper use of comments is to compensate for our failure to express ourself in code.

Encoded names are seldom pronounceable and are easy to miss-type.

on naming

Programmers must avoid leaving false clues that obscure the meaning of code.

on oop

Functions should do one thing. They should do it well. They should do it only.

The ideal numbers of arguments for a function is zero (niladic). Next comes one (monadic), followed closely by two (dyadic). Three arguments (triadic) should be avoided where possible. More than three (polyadic) requires very special justification ‐ and then shouldn't be used anyway.

The first rule of functions is that they should be small. The second rule of functions is that they should be smaller than that.

The Three Laws of TDD:

1) You may not write production code until you have written a failing unit test.
2) You may not write more of a unit test than is sufficient to fail, and not compiling is failing.
3) You may not write more production code than is sufficient to pass the currently failing test.

Built with using

Source code available @ githubpull requests are more than welcome ;-)