测试驱动开发(TDD)是一个例子,它是那些你要么爱要么恨的技术之一。我们不讨论TDD是不是软件设计的“最佳方式”,确实有很多人使用TDD作为设计软件的方式,但它不见得适合每个人。带着写出一些生产代码之后再编写测试的观点在白板上画出一些设计的草图,这也没有错。无论布道者说什么,TDD都不是银弹。
我是一个非常视觉化的人,属于后一个阵营。我喜欢在试图找到解决方案之前,先将问题可视化。向我描述业务流程,我会勾画一个总结出来。跟我谈商业问题,我会画一个高层次领域模型。对我来说,可视化问题的一个方法是提问,搞清楚我是否明白你在说什么。我也喜欢把解决方案画出来,因为它是让一切都公开化、帮助其他人迅速理解的好方法。