资讯专栏INFORMATION COLUMN

笔记 编写可读性代码的艺术

xiaochao / 3450人阅读

阅读原文

1. 代码应当易于理解

唯一标准:让别人理解的时间最小

2. 把信息装到名字里

选择专业的词

避免泛泛的名字

使用具体的名字代替抽象的名字

为名字携带更多的信息

名字的作用域越大,最好名字越长

丢掉没用的词

单词 更多选择
send deliver, dispatch, announce, distribute,route
find search, extract, locate, recover
start launch, create, begin, open
make create, set up, build, generate, compose, add ,new
3. 审美

我之前学设计的时候看过一本书,写给大家看的设计书(第3版)将这本书中的设计审美原理应用到写代码上,真实十分贴切,如果你读过此书,你的审美能力会大幅提高。

对齐

重复

对比

亲密性 按照亲密关系分段

顺序

4. 写什么样的注释

不要写一眼就能看懂的注释,类似于此地无银三百两

与其写注释,不如把变量名函数名写好,可以从名字中理解

记录你的思想

加入评论

指出哪里有陷阱,需要注意

言简意赅,不要啰嗦

不要使用不明确的代词,不要像像算命先生说话,如何解释都对

5. 可读性控制流

追求最小理解时间,而不是最少代码行

尽可能提前return结果

少点嵌套,要尽可能扁平化

理解执行流程。有些是连续执行。有些是随时都可能执行,像事件回调

避免使用while, 一般我们循环都是为了遍历数组,为什么不用forEach呢?

6. 拆分超长表达式

拆分超长的表达式

拆分巨大的语句

尽量把逻辑包裹在函数中,不要重复你自己 DRY

7. 变量与可读性

减少变量,变量越少越好

减少中间结果,垂直消费

减少用于控制流的变量

缩小变量的作用域

用到变量再定义,不要提前定义,不然还要随时想着,之前定义的变量是用干嘛的呢?

8. 重构

抽取不相关的自子问题

抽取各种配置性的变量在一起,他们都是配置

尽量写纯函数

创建大量通用代码

打造自己的武器装备库

简化接口传参

过犹不及,不要太苛刻

9. 一次只做一件事 10. 少写代码

最好的代码就是没有代码

别费神实现那个功能,你不会需要的

质疑和拆分的需求

保持小代码库

删除没用的代码

删除没有的注释

11. 调试

尽可能将错误打印出来,不要隐藏

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/93472.html

相关文章

  • 《JavaScript Dom编程艺术》读书笔记(二)

    摘要:逻辑非操作符只能作用于单个逻辑操作数,其结果是把那个逻辑操作数所返回的布尔值取反。如果那个逻辑操作数所返回的布尔值是,逻辑非操作符将把它取反为为了避免产生歧义,上面这条语句把逻辑操作数放在了括号里,使逻辑非操作符作用于括号里的所有内容。 算术操作符 加减乘除这些算术操作中的每一种都必须借助于相应的操作符才能完成。操作符是JavaScript为完成各种操作而定义的一些符号。等号(=)、加...

    caspar 评论0 收藏0
  • 《JavaScript Dom编程艺术》读书笔记(二)

    摘要:逻辑非操作符只能作用于单个逻辑操作数,其结果是把那个逻辑操作数所返回的布尔值取反。如果那个逻辑操作数所返回的布尔值是,逻辑非操作符将把它取反为为了避免产生歧义,上面这条语句把逻辑操作数放在了括号里,使逻辑非操作符作用于括号里的所有内容。 算术操作符 加减乘除这些算术操作中的每一种都必须借助于相应的操作符才能完成。操作符是JavaScript为完成各种操作而定义的一些符号。等号(=)、加...

    xingpingz 评论0 收藏0
  • 《JavaScript Dom编程艺术》读书笔记(二)

    摘要:逻辑非操作符只能作用于单个逻辑操作数,其结果是把那个逻辑操作数所返回的布尔值取反。如果那个逻辑操作数所返回的布尔值是,逻辑非操作符将把它取反为为了避免产生歧义,上面这条语句把逻辑操作数放在了括号里,使逻辑非操作符作用于括号里的所有内容。 算术操作符 加减乘除这些算术操作中的每一种都必须借助于相应的操作符才能完成。操作符是JavaScript为完成各种操作而定义的一些符号。等号(=)、加...

    Aceyclee 评论0 收藏0
  • SICP Python 描述 1.4 实践指南:函数艺术

    摘要:实践指南函数的艺术来源译者飞龙协议函数是所有程序的要素,无论规模大小,并且在编程语言中作为我们表达计算过程的主要媒介。目前为止,我们讨论了函数的形式特性,以及它们如何使用。第一行描述函数的任务。 1.4 实践指南:函数的艺术 来源:1.4 Practical Guidance: The Art of the Function 译者:飞龙 协议:CC BY-NC-SA 4.0 函...

    lemon 评论0 收藏0

发表评论

0条评论

xiaochao

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<