极客时间已完结课程限时免费阅读

第三季回归 | 我们一起来写好代码!

第三季回归 | 我们一起来写好代码!-极客时间

第三季回归 | 我们一起来写好代码!

讲述:郑晔

时长04:04大小3.72M

你好,我是郑晔,我又回来了!
在《10x 程序员工作法》中,我们讲了工作原则,在《软件设计之美》,我们讲了设计原则。有不少同学通过各种途径和我表示,这两个专栏让他们受益匪浅。但也有人和我提出,虽然觉得有收获,但还不过瘾。
这些原则虽然很好,但怎么应用到自己的实际工作中,完全取决于个人的理解,经验丰富的人或许可以直接改变自己的行为,而经验少的人,从中的获得就完全取决于个人的悟性了。
比如,我在两个专栏中都讲到了单一职责原则,最终得出的结论都是要把代码写短小。但什么叫写短小,不同的人理解起来就是有差异的。
有一次,我在一些人面前演示了如何将一段代码重构成小函数,然后,我问听众,你们可以接受一个函数代码行数的上限是多少?一个听众很认真地说,100 行。我默默地看了看被我重构掉的那个“不好”的函数,好像也没有 100 行,按照他的标准,那个函数根本不需要改。
还有一次,一个颇有经验的前辈在我面前说自己写代码的要求很高,函数要求写得很短。我不明就里地问了一句,你要求一个函数不得超过多少呢?他说 50 行。
50 行也好,100 行也罢,在我看来,这简直是一个天文数字。我通常对自己的要求是,像 Java 语言这种表达能力一般的语言尽可能 10 行之内搞定,而像 Python、Ruby 这类动态语言,5 行代码就可以解决大多数问题,而且很多代码一行就够了。
在自己实际的项目中,考虑到团队的协作,我在静态检查中配置的参数是 20 行。换言之,一个函数超过 20 行,连构建都是无法通过的。
从这些例子中你可以看到,虽然大家都遵循了同样的原则,但具体体现在代码上,却是千差万别的。
也正是因为理解的差异,造成的结果是,虽然许多人懂得了很多道理,依然不能很好地完成自己的本职工作。许多人日夜辛苦地调试的代码,其实在写出来的那一刻就已经漏洞百出了。
如果能够知道这些代码是有问题的,在写代码之初就把这些问题消灭在萌芽中,日后的辛苦就可以节省出不少。
Martin Fowler 在《重构》这本书里给这种有问题的代码起了一个很有特点的名字:代码的坏味道。
有追求的程序员都希望自己能够写出整洁的代码,而这一切的出发点就是坏味道。只有拥有对于坏味道的嗅觉,才有机会对代码进行重构,也才有机会写出整洁的代码。
所以我做了第三个专栏,在这个专栏里,我们就从代码的坏味道出发。我会给你提供一些非常直观的坏味道,让你看一眼就知道代码有问题。在这些坏味道中,有一些是你已经深恶痛绝的,比如,长函数和大类;有一些则是在挑战你的编程习惯,比如,else 语句和循环语句。这些坏味道的知识即学即用,对照你的代码,你立刻就能发现很多问题。
按照我们专栏一贯的风格,我不仅仅会告诉你一段代码是坏味道,也会告诉你这些坏味道之所以为坏味道背后的道理,还会和你讨论如何去重构这段代码。
有了《10x 程序员工作法》或《软件设计之美》这两个专栏的积淀,当你再去学习新专栏的时候,之前学习的这些原则就实打实地体现在对于代码的改进上,让你修炼的内功有了更好的用武之地。
来吧,欢迎加入《代码之丑》!请再次和我一起踏上程序员精进之路,我们一起修炼,不断打磨自己编写代码的手艺!
分享给需要的人,Ta购买本课程,你将得20
生成海报并分享

赞 13

提建议

上一篇
结课测试 | 这些10x程序员工作法的知识你都掌握了吗?
下一篇
第四季回归 | 通向高质量代码之路
unpreview
 写留言

精选留言(4)

  • Stephen
    2020-12-28
    没想到自己抢了个沙发。我今年目标就是学完郑老师的<10x程序员>,加油!

    作者回复: 2020年马上就结束了,你加油!

    2
  • 腾挪
    2021-04-14
    代码之丑专栏非常实用。

    作者回复: 多谢支持

    1
  • ifelse
    2022-05-05
    冲!
  • 泡泡龙
    2020-12-28
    郑晔老师的课闭着眼睛买就行了,根本不用怀疑质量

    作者回复: 欢迎回来!