Eight Projects You Shouldn't TDD
Test-driven development is still a hotly debated design methodology. Is it valuable? Is it harmful? Does it cost more than it saves? I will tell you which projects you should not develop test-first.
Put the Logic with the Data
The understandability of code is directly related to the distance between the data and the code that makes decisions based on that data. The fewer places you have to look to see the actual behavior of the system, the easier it is to comprehend.
Cut Out The Middleman
Too much decoupling in software development is arguably worse than too little. Excessive decoupling leads to software that is more complex, more verbose, harder to understand and much less maintainable. Don’t let your critical use cases get split up into little tiny bits and strewn about your application!
A CPU is a linear instruction processor. Humans behave autonomously, using pattern recognition to dynamically respond to stimuli. The natural tendency is for programmers to shape their minds according to the CPU’s implementation. The software craftsman must know how to write software on both sides of the spectrum: linear procedures and autonomous objects.