《Clean Code》读书笔记.md

第一章;整洁代码

  • 代码呈现了需求的细节

第二章:有意义的命名

  • 名副其实,看名称能够理解意识,减少注释补充说明
  • 做有意义的区分

第三章:函数

  • 短小:if语句,else语句,while语句,其中的代码块应该只有一行
  • 只做一件事:如果函数只是做了该函数下的同一抽象层上的事情,则函数只做了一件事。编写函数为了把一些大一些概念拆分为另一个逻辑层次的一系列步骤
  • 向下原则:每个函数后面都跟着位于下一个抽象层级的函
public Money caluatePay(Employee e) throws InvalidEmployeeType {
    swicth(e.getType()) {
        case COMMISSIONED:
            return caluateCommissionPay(e);
        case HOUR:
            return caluateHourPay(e);
        default:
            throw new InvalidEmployeeType(e.getType());
    }
}

// 1.语句太长
// 2.不只做了两件事
// 3.违反单一责任原则
// 4.违反开放封原则,每当添加新类型时,就必须重新修改

// 优化方法,将Switch语句封装到抽象工厂里
public abstract class Employee {
    public abstract boolean isPayDay();
    public abstract Money caluatePay();
    public abstract deliverPay(Money pay);
}

public interface EmployeeFactory {
    public Employee makeEmployee(EmployeeRecord employeeRecord) throws InvalidEmployeeType;
}

public EmployeeImpl implements EmployeeFactory {
    public Employee makeEmployee(EmployeeRecord employeeRecord) throws InvalidEmployeeType {
        swicth(employeeRecord.getType()) {
            case COMMISSIONED:
                return new CommissonedEmployee(employeeRecord);
            case HOUR:
                return new HourEmployee(employeeRecord);
            default:
                throw new InvalidEmployeeType(employeeRecord.getType());
        }
    }
}
  • 控制函数的参数个数,使用参数对象
  • 抽离try/catch的主题函数
  • 使用错误码代替异常常数

第四章:注释

  • 注释用于弥补我们在代码标示意图时的失败。
  • 尽量避免注释,时间越久可能偏离事实

第五章:格式

  • 源文件的对顶部应该给出高层次的概念和算法,细节依次展开。

第六章:对象和数据结构

  • 数据隐藏于抽象之后,暴露操作数据的函数;数据结构暴露其数据,没有提供有意义的函数
  • 过程式函数便于在不改动既有数据结构情况下添加新函数,面向对象代码便于在不改动既有函数的情况下添加新类
  • 模块不应该了解不所操作对象的内部情节
  • 数据结构不会有任何操作

第七章:错误处理

  • 可控异常违反了开放封闭原则,底层的修改会导致高层的函数签名
  • 不要返回null

第八章:边界

  • 将外部代码整合进来

第九章:测试

  • 保持测试整洁

第十章:类

  • 单一权责:只有一个修改的理由
  • 具体类包含实现细节,抽象类只呈现概念

第十一章:系统

  • 软件系统应该应将启动过程和启动过程后的运行时逻辑分离,在起始过程中构建应用对象,也会存在相互的依赖关系

第十二章:迭进

第十三章:并发编程

  • 对象是过程的抽象,线程是调度的抽象
  • 避免数据在多线程共享是避免在多线程间共享
  • 线程安全包,java.til.concurrent
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值