欢迎光临散文网 会员登陆 & 注册

荐书小摊-如何写出令人尊敬的代码《Clean Code》

2023-03-16 21:39 作者:SpiderK  | 我要投稿

《Clean Code》 这是我工作后读的第一本书,也是想要推荐的第一本。

想写出令人尊敬的代码

程序员是一个技术工种,划分为蓝领,称之新农民工。

既然是技术工种,业内以优秀的开发能力,高效的做事手法,严谨的工作态度作为核心竞争力。

并且根据各项指标会划分为初级,中级,高级,资深程序员,对应着不同的工作内容以及薪资。

工作的第一个年头,一年级的我经常会感叹各个大佬写出的非常值得尊敬的代码(优雅,简洁,易维护...)

虽然在 code review 时经常会对我的代码提出各种各样的要求和建议(挨骂)

但是怎么把代码写好这个问题还是没有完整的认知,苦思不得其解。某天下班就找到大佬咨询 "如何写出令人尊敬的代码" 这一问题。

大佬意味深长的看了我一眼以后,就推荐了这本《Clean Code》,看完之后,深感幸运。

让代码散发着善意

在讲解《Clean Code》的一般原则之前,先看一下几位大佬对此观点的评价:

“Clean code does one thing well.”    --- Bjarne Stroustrup (Inventor of C++)

“Clean code is simple and direct. Clean code reads like well-written prose.”   --- Grady Booch (Pioneer of OO and UML)

“Clean code can be read, and enhanced by a developer other than its original author.”   --- Dave Thomas (Godfather of the Eclipse Strategy)

“Clean code always looks like it was written by someone who cares.”   --- Michael Feathers(Author of “Working effectively with legacy code”)

从上面的描述中,不难看出大家对Clean Code这一思想的认同,可以说 “Clean Code 就是心怀爱意地去编程”,让你的程序单纯、简单、美好,当他人读你的程序时,能感觉到“作者的善意”。

编程世界里的名词

“如果要想深挖一个行业,第一件事就是找到有关该行业的 100 个关键词” -- 麦肯锡

《Clean Code》讲解了我当时编码过程中司空见惯却又没有重视的事项,总共分为以下几大类:

命名

函数

注释

Code format

类&对象

数据结构

错误处理

封装

测试

迭代(持续重构)

并发编程等...

这些名词,既是是刚做开发时的我,也能大致知道概念内容。但是在阅读本书之前,我完全不知道应该如何在这些方面做出改进,更别说散发着 “开发者的善意”  比如:

如何跟前端开发更默契的工作解耦

如何使团队开发成员更便捷的使用已存在的接口

如何使测试同学提高测试的代码覆盖率

如何让 BA(Business Analyst) 更精准的验收功能等等

《Clean Code》 知识导图

读后感

认真做事

一年级时 leader 告诉我一句话 "程序员需要甄别以及避免玩具代码。每月的工资除以当月的代码行数,便是公司所付的一行代码钱,值不值,开发内心要有数。"

《Clean Code》是作者 “鲍勃大叔” 结合自己几十年的开发经验总结的一套编程原则。“认真做事” 是作者 “鲍勃大叔” 给我的第一印象,读完本书,他使我第一次明白认真做事的差距,

一盘炒饭,一把剪刀,一个手工品,一段代码... 同样的物品,价值可能相差百十倍。完成同样一个需求,公司愿意给不同的人支付不一样的薪水,背后的原因就在于此。

持续迭代

我大概是花了3周的时间阅读本书。读完之后,其实并不能记住书中描述的所有注意项。依旧是上面那位 leader 指导我:"搞技术,建立知识索引很重要。"

简单来说,要先创建自己专业的知识体系,可以不会用,但是不能不知道。需要用到的时候,再专项去实践。这个道理可能很多技术人都明白。

我自己从"建立索引" 引申出了一个观点 ”但凡我做不到,认为无法完成的事务。世界上一定有办法做到,只是我的索引(知识体系)没有涵盖到“

正如在阅读本书之前,我并不知道如何优化自己的代码一般。这个观点推动着我持续迭代自己的索引,补充自己的知识体系,并帮助我不断提升代码质量。

有趣的规则

代码质量与整洁度成正比

程序员花费在读代码上的时间通常要10倍于真正编写代码上的时间,也即Writing vs. Reading的比例大概是1:10

优秀的代码大部分是可以自描述的,好于文档和注释

代码大部分时候是用来维护的,而不只是用来实现功能的

大部分项目都不是朝生夕死的短命鬼,代码实现是写给身边的队友和自己看的,需要长期维护,不能应付了事。


荐书小摊-如何写出令人尊敬的代码《Clean Code》的评论 (共 条)

分享到微博请遵守国家法律