zoukankan      html  css  js  c++  java
  • 关于起名

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

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

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

    1. 避免歧义

    const limitOfLoginTries = 5;
    

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

    到底 错 4 次会锁定 还是 错 5 次会锁定?limit 在是否包含边界值的问题上存在歧义。这里用 maxlimit 好。

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

    这个函数用于找出一条 起点到终点 的路径。

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

    上述两个例子来源于《编写可读代码的艺术》这本书。


    2. 说明 what 而不是 how

    const moneyMultiplyRatio = money * 0.027;
    

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


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

    把大象装冰箱,阅读理解 3 行名字 显然比 100 行实现细节 更有效率。

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

    这和函数式编程中申明式的思想一致。说明要干什么「what」,隐藏技术细节「how」。写的人思路更清晰,读的人理解更轻松。

  • 相关阅读:
    20145215《Java程序设计》第4周学习总结
    20145215《Java程序设计》第3周学习总结
    20145215《Java程序设计》第2周学习总结
    关于开源中国的代码托管
    问卷调查
    2019年12月29日 回怼老王
    cnblogs今天挂了
    感悟别人的感悟——写在2020年前一天
    心情随笔_20191231
    js事件冒泡和捕捉
  • 原文地址:https://www.cnblogs.com/apolis/p/11792185.html
Copyright © 2011-2022 走看看