在万物可以驱动开发的时代。终于理解了什么叫不做不错。
程序员为什么需要其他人来驱动开发呢?是因为错误都是程序员造成的,你犯了错,还不能让别人告诉你怎么做吗?
让我们先来看看什么可以驱动开发。据不完全统计:
- TDD(Test Driven Development)
- FDD(Feature Driven Development)
- BDD(Business Driven Development)
- R-TDD(Rapid Template-Driven Development)
- CDD(Contract Driven Development)
- RDD(Requirements Driven Development)
什么都可以教程序员怎么去开发软件,只有程序员本身,一个亲身工作了10多年的人不能告诉自己怎么开发。
你可以刷LeetCode,你可以读源码,你可以学习编程,你可以找到生产环境bug,你可以开发高性能的程序,但是你不知道怎么可以让代码写的更好。还得让别人告诉你怎么开发。
其实作为CRUD程序员,并不需要太复杂的技能知识,已经够应付工作了。如果让我列举什么可以驱动开发呢,我觉得可以分下面几步。
- 首先让代码容易读懂,好维护。首先摆脱“过程”思想,做好对代码的“分层,分段”,不要可以跑就好了。其实做到这一点已经很难了。越厉害的人写的代码越“简单”,可维护行越强,可代替性也就越强。
- 运用好,设计模式。使用前人总结的那些经典,更深层的使代码“简洁”。好的设计模式,可以使代码的复杂程度以指数程度下降。想想netty,再看看spring简化过后的Mono和Flex。
- 理解深层次的计算机底层原理。JVM空间,操作系统内核。如果减少系统调用。使用多线程提高代码的效率。(普通的CRUD的时候,其实我觉得代码的可读性更重要。)
我理解测试驱动开发存在的意义是什么呢?应该是这个人知道什么是好的代码。
- 单一职责(设计模式原则)
- 代码简单,不能复杂度过高(clean code)
其实简单的代码就会更容易写unit test。但是有的程序员可能没有深入理解好的代码是什么,所以就通过测试来驱动开发。你要先写测试用例,让你的代码好进行测试。然后再去写代码。
我觉得好的代码 ——> 容易写测试
但是不能推导出
容易写测试的代码——> 就是好代码。这个不是充要条件。
上面就是我的一些理解。真的别都来驱动我们程序员开发了,让程序员有时间去看看书,自己从代码层面多思考思考,去驱动开发吧。