分析自己在大学期间读过的书(五)

前情提要

在上一篇文章中,我用很丑的代码实现了生成词云的功能。今天就想着怎么能把代码写得好些。

重构是什么

在不改变代码行为的前提下改善代码设计。

为什么要重构

工程的需求

一般来说,代码重构的充分条件,一是需要继续基于这份代码进行开发,二是当前的实现无法满足未来功能的拓展,简言之,不得不。
也就是说,对于我写的一次性的代码来说,从工程的角度来看,其实没有重构的必要,因为以后也不会有人在这份代码的基础上继续开发了,没有必要花费这个精力。

学习的需要

但是,对于个人来说,练习是非常有必要的。台上一分钟,台下十年功,私下里不先学会练好,难道你想直接拿工作上的项目练手吗?还想继续干不!

+_+ 写不出来 ……

抬头看时间,猛然发觉 11 点已经到了,而我却还没有写完。事实上我觉得,再给我一个小时的时间,也还是写不出来。

失败分析

从晚上 8 点开始,一边改代码一边码字,两边都进行得非常困难。下面是我总结的两个失败的点:

第一,我对重构这件事本身的理解和掌握明显不够,无法驾驭这个话题与实践。表现在,我花了很长的时间考虑要不要给原先没有测试的代码先加上测试再去做重构!如果不加,如何保证不破坏原有的功能?加上测试,我又该怎么做?

第二,对于不了解的语言,本来就没有重构的能力和资格。生成词云的代码是用 Python 写的,而我不了解 Python,改完变量名之后做其他重构时处处掣肘,完全无法继续进行!

总结

  • 写什么,如何写,非常重要,超出自己能力范围的话题要慎重
  • 要明确自己知识的边界,知道自己的天花板,今天的失败是一个很好的教训

接下来怎么做

  • 认真学习重构的内容,补知识的漏洞,要让这次失败有价值
  • 学习 Python。主流语言要掌握,Python 是一个很常见的语言,理应掌握
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,604评论 25 709
  • 本文把程序员所需掌握的关键知识总结为三大类19个关键概念,然后给出了掌握每个关键概念所需的入门书籍,必读书籍,以及...
    dle_oxio阅读 11,257评论 6 244
  • 魔王的宫殿才有让人恶心的音乐 卑贱的刺客只有恶心的腐尸
    匹洛曹没有猫阅读 256评论 0 0
  • Bian L, Zheng R, Su S, Lin H, Xiao H, Wu HX, et al. Spati...
    董八七阅读 702评论 0 0
  • 2013年的高中,是悲喜交加的一段青春岁月。它已经过了单纯懵懂的年华,却还没到成熟干练的年纪。它仅仅是青春里稍纵即...
    噗酱阅读 482评论 4 3