一般人可能拿到需求,就开始写代码了,写着写着由于页面功能越来越多,感觉代码越来越复杂,自己都会觉得难以维护了。 举个例子,初级程序员写完一个页面之后,然后给另外一个
一般人可能拿到需求,就开始写代码了,写着写着由于页面功能越来越多,感觉代码越来越复杂,自己都会觉得难以维护了。
举个例子,初级程序员写完一个页面之后,然后给另外一个同事(可以理解为高级程序员)让帮忙 Review 代码,看到初级程序员的代码之后就觉得这个写得不对呀,怎么会这么去设计呢?
然后高级程序员会整理整个页面应该如何去设计,一个页面分为哪些块,有哪些事件,每个事件应该 dispatch 哪些 action,然后整个模块有哪些数据放在 store 里,哪些模块放在 state 里,吸取完经验与建议,让人恍然大悟,立刻决定重写上周写的代码。
注意,这里是重写,不是重构,重构是对软件内部结构的一种调转,目的是不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本。那么如果保证不改变软件可观察行为呢?就需要写测试用例,保证测试用例能跑通的情况下进行重新构造代码才是重构的第一步,没有测试用例的重构就是耍流氓。
那么如何提高设计代码的能力呢?
我觉得有一个方法对于提高设计代码的能力非常有帮助,那就是采用 TDD(测试驱动开发)。
TDD 的原理是在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码。
为什么 TDD 会提高设计代码的能力呢?可以看到 TDD 的原理是要在写代码之前就要写测试用例,在写测试用例的时候你必然得去思考你的每个函数,每个模块,每个组件应该如何去设计才能使得易于测试,往往易于测试的代码都比较好维护。
这就可以达到在写代码之前先去设计代码,然后才写代码,也就是先思考,后行动。
(责任编辑:中博IT教育)