zoukankan      html  css  js  c++  java
  • Clean Code读书笔记(1)---有意义的命名

    名副其实

    选个好名字要花费时间,但省下来的时间比花掉的多。注意命名,而且一旦发现有更好地名称,就换掉旧的。名字一定需要符合其本意。

    举例:

    要表达消逝的时间,以日记。不好的命名: int d; 好的命名: int elapsedTimeInDays

    获取订单项Id的韩函数:

    不好的命名:

    List<int> GetOrderItems(Order order)
    {
        List<int> list1 = new List<int>();
        foreach(var item in order.Items)
        {
            list1.Add(item.Id)
        }
      
        return list1;
    }

    好的命名:

    List<int> GetOrderItemIds(Order order)
    {
        List<int> ids = new List<int>();
        foreach(var item in order.Items)
        {
            ids.Add(item.Id)
        }
      
        return ids;
    }

    避免误导

    应该避免在名字中使用会产生误导的词。

    举例:

    假如要表示一组账户: 不好的名字: accountList(会误导读者以为是List数据类型), 好的名字: accounts

    做有意义的区分

    当要区分两个表示相同概念的事物时,需要做到有意义的区分。而不是仅仅是让编译器能通过。

    举例:

    要写一个将数据从一个数组拷贝到另一个数组的函数时:

    不好的命名

    public void copyNumber(List<int> numbers1, List<int> numbers2)
    {
        foreach(int item in numbers1)
        {
             numbers2.Add(item);
        }
    }
    // numbers1和numbers2不是有意义的区分,仅仅是让编译通过而已。

    好的命名

    public void copyNumber(List<int> sourceNumbers, List<int> destinationNumbers)
    {
        foreach(int item in sourceNumbers)
        {
             destinationNumbers.Add(item);
        }
    }

    使用读得出来的名称

    需要使用读得出来的英语单词进行命名。

    比如我要表示一个更新时间变量。不好的命名:DateTime lastUpdatemdhms; 好的命名:DateTime lastUpdateTime.

    每个概念对应一个词 

    对于每个抽象概念,我们可以对应到一个特定的词。然后在整个系统中各个模块中都使用这个词,保持统一。比如获取数据都用fetch或者get作为前缀。

     不要添加没用的语境

    只要短名称足够清楚,就要比长名称好。不要给名称添加不必要的语境。保持名称的精炼。

  • 相关阅读:
    Redis(二) 扩展
    Redis(一)基础
    Java垃圾回收机制 入门
    freeregex-0.01 使用文档
    上传文件到阿里云linux服务器
    jQuery代码解释(基本语法)
    JQuery中使用FormData异步提交数据和提交文件
    jQuery获取data-*属性值
    jquery 中 $.map 的使用方法
    mysql创建表时反引号的作用
  • 原文地址:https://www.cnblogs.com/Code-life/p/14197479.html
Copyright © 2011-2022 走看看