代码整洁之道————学习笔记(待更新)

一、命名规范

  • 变量,方法,类的名称尽量见名知意
  • 避免误导性的命名。

如1与l,O与0…

  • 区分变量名时避免做无用区分

如:假如有一个Protect类,还有一个ProtectInfo类和一个ProtectData类,那么这就是无意义命名,InfoData意义并无区别。

  • 使用读的出来的名字
  • 使用在全文中容易搜索的名字
  • 不要使用编码
  • 类名和对象名应该是名词或者名词短语

如用户类UserList,

  • 方法名应该是动词或者动词短语

如有一个查询全部用户的函数:queryAllUserName()

二、函数

  • 函数体应该尽量短小
  • 每个函数应该尽量只做一件事
  • 每个函数一个抽象级

    这是确保函数只做一件事的关键。需要遵循自定向下读的向下原则。

  • 精简switch语句

    利用多态实现确保每个switch语句都埋藏在较低的抽象层级。

  • 使用描述性的名称

    尽量做到见名知意,名称能较好的描述该函数要做的事情

  • 函数参数

    最好的参数量是0,其次是单参数,然后是双参数,应该尽量避免三参数除非迫不得已。

三、注释

  • 时间应该花在修改糟糕的代码上,而不是为其写注释
  • 用代码解释自己的意图
  • 合理的注释:
    • 法律信息。
    • 提供信息的注释。
    • 对意图的解释。
    • 警示作用。
    • 公共API中的Javadoc。
  • 不合理的注释:
    • 自说自话。
    • 多样的注释。
    • 误导性注释。
    • 废话注释。
    • 注释掉的代码。

四、格式

  • 垂直方向上的区隔。

    每组代码展现一种思路,用空行隔开。
    在这里插入图片描述

  • 垂直方向上的靠近

    每组代码中紧密相关的代码应该互相靠近。
    在这里插入图片描述

  • 垂直距离
    • 变量声明:变量声明应该尽可能靠近它使用的位置。
    • 循环中的控制变量应该总是在循环语句中声明。
    • 实体类变量应该在类顶部声明。
    • 相关的函数, 若果某个函数调用了另一个函数,就应该把他们放在一起,而且调用者应该放在被调用者上面。
    • 概念相关,概念相关的代码应该放到一起,相关性越强,距离应该越近。 *
  • 水平方向上的区隔与靠近
    • 赋值操作符周围加空格以达到强调目的:
      在这里插入图片描述
    • 不在函数名与左括号之间加空格符。
  • 避免缩进
    尽可能扩展。

  • 空范围
    有时候,for,while语句体可能为空,需要确保空范围体的缩进,用括号包起来。

一段标准格式的代码
在这里插入图片描述

在这里插入图片描述

五、对象和数据结构

  • 得墨忒耳律

模块不应该了解它所操作对象的内部情形。对象隐藏数据,暴露操作。这意味着对象不应通过存取器暴露其内部结构。
更准确地说,得墨忒耳率认为类C的方法只应该调用以下对象的方法:
* C
* 由f创建的对象
* 作为参数传递给f的对象
* 由C的实体变量持有的对象

六、错误处理

  • 先写try-catch-finally代码块
    try代码块就像是事务。catch代码块将程序维持在一个持续状态,无论try中发生了什么都是如此。
  • 使用不可控异常
  • 给出异常发生的环境说明
    抛出的每一个异常,都应该提供足够的环境说明,以便判断错误的来源。
  • 依调用者需要定义异常类
    通过打包调用API,确保他返回通用异常类型,从而简化代码:
    在这里插入图片描述
  • 别返回NULL值,别传递NULL值
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值