前情提要
在上一篇文章中,我用很丑的代码实现了生成词云的功能。今天就想着怎么能把代码写得好些。
重构是什么
在不改变代码行为的前提下改善代码设计。
为什么要重构
工程的需求
一般来说,代码重构的充分条件,一是需要继续基于这份代码进行开发,二是当前的实现无法满足未来功能的拓展,简言之,不得不。
也就是说,对于我写的一次性的代码来说,从工程的角度来看,其实没有重构的必要,因为以后也不会有人在这份代码的基础上继续开发了,没有必要花费这个精力。
学习的需要
但是,对于个人来说,练习是非常有必要的。台上一分钟,台下十年功,私下里不先学会练好,难道你想直接拿工作上的项目练手吗?还想继续干不!
+_+ 写不出来 ……
抬头看时间,猛然发觉 11 点已经到了,而我却还没有写完。事实上我觉得,再给我一个小时的时间,也还是写不出来。
失败分析
从晚上 8 点开始,一边改代码一边码字,两边都进行得非常困难。下面是我总结的两个失败的点:
第一,我对重构这件事本身的理解和掌握明显不够,无法驾驭这个话题与实践。表现在,我花了很长的时间考虑要不要给原先没有测试的代码先加上测试再去做重构!如果不加,如何保证不破坏原有的功能?加上测试,我又该怎么做?
第二,对于不了解的语言,本来就没有重构的能力和资格。生成词云的代码是用 Python 写的,而我不了解 Python,改完变量名之后做其他重构时处处掣肘,完全无法继续进行!
总结
- 写什么,如何写,非常重要,超出自己能力范围的话题要慎重
- 要明确自己知识的边界,知道自己的天花板,今天的失败是一个很好的教训
接下来怎么做
- 认真学习重构的内容,补知识的漏洞,要让这次失败有价值
- 学习 Python。主流语言要掌握,Python 是一个很常见的语言,理应掌握
网友评论