首页 > 其他 > 详细

关于起名

时间:2019-11-04 15:27:36      阅读:72      评论:0      收藏:0      [点我收藏+]

从机器的视角来看,变量、函数、类……的名字,是用来区别其它事物的。
从人的视角来看,区别其它事物只是对名字最基本的要求,名字还要能帮助读者理解代码。

为了让读者更好地理解代码,起名时下面两点需要注意:

  1. 避免歧义 - 让读者正确理解
  2. 说明 what 而不是 how - 提高读者理解效率

避免歧义

const limitOfLoginTries = 5;

这个变量用于定义:密码输入错误多少次,用户将会被锁定。

limit 这个词说不清:错 4 次会锁定 还是错 5 次会锁定。
这里用 max 更好。


const getPath = (start, end) => {
  // expensive calculation
}

这个方法用于计算起点和终点的路径。

get 操作常见于从 map 中取一个元素。
潜意识会觉得它是一个轻量级的操作。
但示例方法会执行复杂的计算。方法调用者容易掉以轻心,重复调用,最终导致性能问题。
这里用 caculate 更好。

上述两点受《编写可读代码的艺术》这本书启发。

说明 what 而不是 how

const moneyMultiplyRatio = money * 0.027;

钱乘以一个比例,名字和代码说的一样。
看完了还是不知道这个变量想干吗。
如果是利息的话,直接用interest要好得多。

这和函数式编程中申明式的思想一致。

说明要干什么-what,隐藏技术细节-how。
方便读者快速理解代码整体思路。

延伸

用变量名表达变量的意图。
给一段代码起个名字,表达这段代码的意图,就是方法。

200 行代码把大象装冰箱,远不如阅读三行代码有效率:

refrigerator.open();
refrigerator.put(elephant);
refrigerator.close();

关于起名

原文:https://www.cnblogs.com/apolis/p/11792185.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!