如果说学习数据结构与算法可以让你写出高效的代码,那么学习设计模式可以让你写出高质量的代码。
吃饭的本事,得练好
写出“能用”代码的人比比皆是,但是,并不是每个人都能写出“好用”的代码。只会写能用的代码,我们永远成长不成大牛,成长不成最优秀的那批人。
当你熟练掌握了各种编写高质量代码的技巧、方法和理论,实际上,你会发现写烂代码和好代码花费的时间是差不多的。当你把写高质量代码培养成一种开发习惯之后,在编写代码时,自然就有一种代码质量意识,自然而然就可以写出不错的代码。即便项目的代码质量因为各种原因有所妥协,但你起码知道什么样的代码是高质量代码,丝毫不影响你具备写出高质量代码的能力。
毫不夸张地讲,很多工程师,甚至一些 BAT 的员工,代码都写得惨不忍睹。一方面,在目前这种快糙猛的开发环境下,很多工程师并没有太多时间去思考如何写高质量代码;另一方面,在烂代码的熏陶下,在没有人指导的环境里,很多工程师也搞不大清楚高质量代码到底长什么样。
这就导致很多工程师写了多年代码,代码功力一点都没长进,编写的代码仍然只是能用即可,能运行就好。平日的工作就是修修补补、抄抄改改,一直在做重复劳动,能力也一直停留在“会干活”的层面,就像高速路上的收银员,只能算是一个“熟练工”。
闭门造车效果并不好
当然,也有一些比较上进的工程师,会去找设计模式、编码规范、重构等类型的书籍去看,学习如何编写高质量的代码。实际上,我也买了很多这类的书籍来看,从这些经典的书籍中,我也学到了很多编程技巧和提高代码质量的方法。
不过,这些书籍都有一个特点,那就是比较偏重理论讲解,喜欢拿猫、狗之类生活中的例子来举例。当然,这样的例子也有优点,那就是能在简短的时间和篇幅内,很好地帮你理解原理。但同时也存在一个严重的问题,那就是过于脱离真实的软件开发。而且例子本身没有难度,你一看就觉得懂了,但是看完之后,可能还是不清楚如何将理论落地到实际的项目编码中。
比如,我们都知道著名的 KISS 原则(Keep It Simple and Stupid)。这个原则理解起来很简单,一看貌似就懂了,那我问你,怎样的代码才算是足够简单呢?怎样才算不够简单需要优化呢?估计很多人都回答不上来,因为大部分书籍都没有讲清楚。
除此之外,一个人自己闷头看书,在很多时候效果并不好。一方面,每个人的理解能力是不一样的。对于同一本书,不同理解能力的人看完之后收获也是不一样的。跟着有经验的老师学比闷头自己看书要更高效、收获更多、成长更快。另一方面,编码本身就是一门实践课,光闷头看书本理论肯定是不够的,更重要的是在实践中学习如何应用这些理论。
真实的项目实战代码案例剖析
实际上,大部分设计原则、设计思想、设计模式理解起来都不难,难的是如何将这些理论灵活恰当地应用到实际的开发中,而不是教条主义和盲目滥用。而要想正确、得当地应用理论知识,光看书是不够的,我们要在实战中去亲身感受、体会这些理论该如何应用。但是,我们平时的开发更多的是基于已有的框架,照着别人的流程,扩展新的功能模块。所以,在工作中就可能没有那么多足够复杂、足够有难度的开发场景,让我们有机会去实践这些理论。
基于这种考虑,我结合自己过去工作中积累的项目经验,为整个专栏精心设计了 200 多个真实的项目实战代码案例。几乎每节课、每个知识点都会结合一个完整的开发案例来讲解。
让我们一起见证成长
我们知道,设计问题本来就没有标准答案。 所以,不要轻信一家之言,更不要迷信本专栏,也不要盲目追从任何一位专家、大师的说法。主动思考,积极讨论,比单纯地被动接受,学习效果要好十倍、百倍。
我个人觉得,“数据结构与算法美”和“设计模式”是两门跟我们每天的编程开发,直接关系非常大的课程,是两门奠定一个工程师最基本的代码能力的课程。它们一个教你如何写高效代码,一个教你如何写高质量代码。弄懂了这两门课的内容,在今后的开发中,你就不需要担心写出被人吐槽的烂代码了,甚至还能让你的代码成为职场发展的一个加分项和闪光点。
注定不能一帆风顺的人生,我就不祝你万事如意了,我祝你乘风破浪。
