代码整洁之道-读书笔记之整洁的代码

1.整洁代码

阅读本书有两个原因,第一,你是个程序员,第二,你想成为更好的程序员

1.1 要有代码

有人认为随着时代的发展,写代码不再是问题,我们更应该关注建模和需求

这句话后半句没有问题,因为语言在发展、在进步,但是无论语言发展的如何强大,最终的精确性都需要代码来实现,所以代码是不可被丢弃的

1.2 糟糕的代码

问:为什么会有糟糕的代码?

答:想着快点完成;赶时间;老板给的时间不足以写出好的代码;先完成需求,之后在对代码进行优化;能运行的代码总比没有强

其实当你有了之后回头优化的想法,大概率你也不会优化了

勒布朗说过:稍后等于永不

1.3 混乱的代价

在这里插入图片描述

相信很多有工作经验的人,都经历过前人的代码,被这种代码拖累,导致整个团队生产力下降,这时候技术leader就会投入更多的人,然后新人并不了解代码,也不知道如何修改代码,导致就按照自己的想法写代码,最终导致代码越来越混乱,直到生产力降到0

1.3.1 华丽新设计

出现了上面的问题,人们的第一想法就是:摒弃老的代码,做一个全新的设计,这是一个好的思路,也是一个正确的思路,但是从老迁移到新的时间成本很高,在没有完全迁移完成,老的系统也没法下掉,就这样我们进行新老系统的维护,一旦设计新系统的人离职了,可能新来的成员又要进行设计新系统了,因此我需要花时间去保持代码的整洁

1.3.2 态度

写代码的态度也决定你写的代码好坏,不知道你是否经历过要花费几个星期来完成本应该几个小时的工作,是否经历过只需要做一行改动,却设计上百个模块的情况?

为什么会发生这样的事,为什么好的代码会很快变成糟糕的代码?

我们抱怨需求变化背离了初期设计。我们哀叹进度太紧张,没法干好活。我们把问题归咎于那些愚蠢的经理、苛求的用户、没用的营销方式等,代码自然就写不好了

程序员遵从不了解混乱风险的经理的意愿,也是不专业的做法。

1.3.3 谜题

程序员面临着一种基础价值谜题。有那么几年经验的开发者都知道,之前的混乱拖了自己的后腿。但开发者们背负期限的压力,只好制造混乱。简言之,他们没花时间让自己做得更快!真正的专业人士明白,这道谜题的第二部分说错了。制造混乱无助于赶上期限。混乱只会立刻拖慢你,叫你错过期限。赶上期限的唯一方法—做得快的唯一方法—就是始终尽可能保持代码整洁。

1.3.4 整洁代码的艺术

写整洁代码,需要遵循大量的小技巧,贯彻刻苦习得的“整洁感”。这种“代码感”就是关键所在。有些人生而有之。有些人费点劲才能得到。它不仅让我们看到代码的优劣,还予我们以借戒规之力化劣为优的攻略。

缺乏“代码感”的程序员,看混乱是混乱,无处着手。有“代码感”的程序员能从混乱中看出其他的可能与变化。“代码感”帮助程序员选出最好的方案,并指导程序员制订修改行动计划,按图索骥。

简言之,编写整洁代码的程序员就像是艺术家,他能用一系列变换把一块白板变作由优雅代码构成的系统。

1.3.5 什么是整洁代码

大家对整洁代码,都有着自己的理解,今天我就说一下大家公认的整洁代码的规范

1.只做好一件事(每个函数、每个类、每个模块都全神贯注于一事,不受四周细节的干扰和污染)

2.可读性强

3.有单元测试

4.易于作者之外的人修改

5.代码尽量简单、少

6.没有重复代码

7.有意义的命名

1.6 童子军军规

代码必须时时保持整洁

1.7 前传与原则

在本书中,你会发现对不同设计原则的引用,包括单一权责原则(Single ResponsibilityPrinciple, SRP)、开放闭合原则(Open Closed Principle, OCP)和依赖倒置原则(Dependency Inversion Principle, DIP)等。

1.8 小结

本书会看到好的代码,也会有糟糕的代码,会学习到如何从糟糕的代码转换为好代码,要时刻保持、提醒自己,保持代码的整洁

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

特特专属

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值