小酌重构系列[25]——终篇总结

前言

《小酌重构系列》是我在博客园的第一个系列文章,这个系列历时一个多月终于完成了。
完成这个系列后,内心有一些感慨想和你们分享一下。html

初衷

写这个系列的初衷是为了团队培训,为何要作这个培训呢?
是由于在项目的开发过程当中,咱们遭遇了一些“代码的痛苦”。程序员

代码的痛苦

写代码是程序员的基本工做,但写出好的代码不是一件容易的事情。
写不出好的代码,就可能产生痛苦。学习

代码的痛苦包含哪些方面呢?编码

通常来讲,包括可读性较差、不够简洁、缺少可扩展性、缺少可维护性等等。
简单地说,就是代码质量不高。code

“代码的痛苦”也是开发者的痛苦,低下的代码质量可能会下降系统的稳定性。
系统最终是要交付于客户的,系统若是不稳定,客户用的时候会痛苦会抱怨,维护时你不只要忍受客户的抱怨,还要痛苦地去维护“代码的痛苦”。htm

痛苦的诱因

这些痛苦并不是是无根之源,痛苦的产生是多方面的,不只和编码有关,也和管理脱不开关系。
在这里,我仅从编码角度去分析这些痛苦的缘由。blog

编码风格的差别

在项目开始前,咱们是约定了一些编码风格和规范的。
但实际作下来,因为各成员的编码风格差别,使得有些代码看起来“五花八门”。
为了统一项目的代码风格,一些成员不得不返工去修改代码,而且返工不止一次。ip

编码习惯的不一样

每一个人已经造成了必定的思惟方式和编码习惯,即便是一些很差的习惯。
这使得一些曾经发生过的问题,在后续的开发过程当中仍然反复地发生。资源

编码意识的匮乏

有些成员专一于功能开发,对代码的规范、整洁度和质量看得较轻,也没有意识去思考如何写出优秀的代码。
固然这也和编码习惯有关,习惯性的不去思考代码质量的问题。开发

代码审查的匮乏

限于时间和资源问题,在项目中咱们只能花费较少的时间来进行code review。
虽然每次code review能发现一些问题,但每次代码问题的解决方式都只到表面,内里没有获得根本性地解决,这也是一些问题反复发生的缘由之一。

指望的目标

代码的痛苦就比如一个慢性疾病,如今咱们已经知道了本身得的是什么病,以及病发的缘由。
接下来要作的就是如何科学有效地治疗这个疾病,让本身渐渐康复起来。
因而在团中,我就作了这个培训,这个培训主要有如下几个指望目标:

  • 提升团队成员的编码质量
  • 促使团队成员造成统一的编码风格
  • 提升团队成员的编码意识,养成思考和自主code review的习惯
  • 但愿最终的交付物不只能知足客户的需求,还具有良好的维护性

仅通过一时的培训,是不可以解决代码的痛苦的,因而咱们采起了培训+实践的方式来解决痛苦。
在通过大约2周的培训,以及近2个月的反复实践后,团队成员总体的代码质量已经有所提升。
关键的是,一些缺少意识的团队成员已经产生了自主思考的意识,知道去思考代码的一些细节了。

关于这个系列

草稿和大纲

在开始这个系列以前,我使用Onenote基本打好了全部的草稿,这些草稿的内容大可能是一些文字和图示,代码则单独地放在VS解决方案中。
因此在开始正式写第一篇文章时,我就列出了整个系列的大纲。
草稿终归是草稿,真正动键盘时,仍是发现草稿中有不少瑕疵存在,以至于草稿中的文字我基本没有用到。
草稿并不是没有做用,每次我都会站在第三者的角度去审视和思考草稿的内容,它指引我向更深处去思考一些问题。
限于本人浅薄的知识和穷乏的描述能力,有些深刻思考的内容没能在文章中表达出来。

计划和坚持

若是只有一天的计划,让本身按时作完这一天的事情,我相信绝大多数人都可以作到。
生活和工做每一天都在继续,我写这个系列,是想让本身每一天都能按计划进行下去,更是想让本身长期地坚持下去。

在开始这个系列时,我乐观地计划天天应该完成一篇。
诚实地讲,我知道本身不可能100%的完成这个计划,能有80%就不错了。
由于天天都会有不一样的事情出现,有些事情你是不得不去优先处理的,其余的事情极可能致使完成这件事情的周期被拉长。
定这么个计划,是为了时刻督促本身要坚持完成这个系列,不要半途而废。
不少事情要作就作完,作一半还不如不作。

我我的比较欣慰的是,虽然中间由于假期暂停了将近10天,但假期一结束后,我当即接续完成了最后的几篇文章。

收获

这个系列带给个人收获主要有两点:

  • 写文章是但愿能教一些东西,写文章的过程也是再思考再学习的过程,就像《暗时间》里所说的“教是最好的学”。
    这个系列完成后,不只能够分享一些知识,也使得本身对重构的认识又上升了一个台阶。
  • 本人的文字描述能力一直比较欠缺,特别是文字占了较大篇幅的文章,这样的文章更考究做者的思路和逻辑。
    经过这个系列自我感受文字能力有所提高,在团队的一些会议中,我的的现场描述能力也有所提高。

后续

关于重构这个系列并无完结,以后我会挑一些项目中实践的代码做为示例为你们解释重构的过程。 接下来我还将写几个系列的文章,近期应该会写JavaScript系列或ASP.NET MVC系列的,尽请期待。

相关文章
相关标签/搜索