- ((6436c79d-c0ca-499f-a330-2c7ddd0fbde6)) ((6436c78f-318d-40f4-8bab-3db31e19923b))
-
sort, set in order, shine, standardize, and sustain —— 5S (methodology) - Wikipedia
-
CONTENTS
- 整洁代码
- 要有代码
- 糟糕的代码
- 混乱的代价
- 华丽新设计
- 态度
- 迷题
- 整洁代码的艺术
- 什么是整洁代码
- 思想流派
- 我们是作者
- 童子军军规
- 前传与原则
- 小结
- 文献
- 有意义的命名
- 介绍
- 名副其实
- 避免误导
- 做有意义的区分
- 使用读得出来的名称
- 使用可搜索的名称
- 避免使用编码
- 2.7.1匈牙利语标记法
- 成员前缀
- 接口和实现
- 避免思维映射
- 类名
- 方法名
- 别扮可爱
- 每个概念对应一个词
- 别用双关语
- 使用解决方案领域名称
- 使用源自所涉问题领域的名称
- 添加有意义的语境
- 不要添加没用的语境
- 最后的话
- 函数
- 短小
- 只做一件事
- 每个函数一个抽象层级
- switch语句
- 使用描述性的名称
- 函数参数
- 一元函数的普遍形式
- 标识参数
- 二元函数
- 三元函数
- 参数对象
- 参数列表
- 动词与关键字
- 无副作用
- 分隔指令与询问
- 使用异常替代返回错误码
- 抽离Try/Catch代码块
- 错误处理就是一件事
- Error.java依赖磁铁
- 别重复自己
- 结构化编程
- 如何写出这样的函数
- 小结
- SetupTeardownIncluder程序
- 文献
- 注释
- 注释不能美化糟糕的代码
- 用代码来阐述
- 好注释
- 法律信息
- 提供信息的注释
- 对意图的解释
- 阐释
- 警示
- TODO注释
- 放大
- 公共API中的Javadoc
- 坏注释
- 喃喃自语
- 多余的注释
- 误导性注释
- 循规式注释
- 日志式注释
- 废话注释
- 可怕的废话
- 能用函数或变量时就别用注释
- 位置标记
- 括号后面的注释
- 归属与署名
- 注释掉的代码
- HTML注释
- 非本地信息
- 信息过多
- 不明显的联系
- 函数头
- 非公共代码中的Javadoc
- 范例
- 文献
- 格式
- 格式的目的
- 垂直格式
- 向报纸学习
- 概念间垂直方向上的区隔
- 垂直方向上的靠近
- 垂直距离
- 垂直顺序
- 横向格式
- 水平方向上的区隔与靠近
- 水平对⻬
- 缩进
- 空范围
- 团队规则
- 鲍勃大叔的格式规则
- 对象和数据结构
- 数据抽象
- 数据、对象的反对称性
- 得墨忒耳律
- 火⻋失事
- 混杂
- 隐藏结构
- 数据传送对象
- 小结
- 文献
- 错误处理
- 使用异常而非返回码
- 先写Try-Catch-Finally语句
- 使用不可控异常
- 给出异常发生的环境说明
- 依调用者需要定义异常类
- 定义常规流程
- 别返回null值
- 别传递null值
- 小结
- 文献
- 边界
- 使用第三方代码
- 浏览和学习边界
- 学习log4j
- 学习性测试的好处不只是免费
- 使用尚不存在的代码
- 整洁的边界
- 文献
- 单元测试
- TDD三定律
- 保持测试整洁
- 整洁的测试
- 面向特定领域的测试语言
- 双重标准
- 每个测试一个断言
- F.I.R.S.T.
- 小结
- 文献
- 类
- 类的组织
- 类应该短小
- 单一权责原则
- 内聚
- 保持内聚性就会得到许多短小的类
- 为了修改而组织
- 文献
- 系统
- 如何建造一个城市
- 将系统的构造与使用分开
- 分解main
- 工厂
- 依赖注入
- 扩容
- Java代理
- 纯Java AOP框架
- AspectJ的方面
- 测试驱动系统架构
- 优化决策
- 明智使用添加了可论证价值的标准
- 系统需要领域特定语言
- 小结
- 文献
- 迭进
- 通过迭进设计达到整洁目的
- 简单设计规则1:运行所有测试
- 简单设计规则2〜4:重构
- 不可重复
- 表达力
- 尽可能少的类和方法
- 小结
- 文献
- 并发编程
- 为什么要并发
- 挑战
- 并发防御原则
- 单一权责原则
- 推论:限制数据作用域
- 推论:使用数据复本
- 推论:线程应尽可能地独立
- 了解Java库
- 了解执行模型
- 生产者-消费者模型
- 读者-作者模型
- 宴席哲学家
- 警惕同步方法之间的依赖
- 保持同步区域微小
- 很难编写正确的关闭代码
- 测试线程代码
- 将伪失败看作可能的线程问题
- 先使非线程代码可工作
- 编写可插拔的线程代码
- 编写可调整的线程代码
- 运行多于处理器数量的线程
- 在不同平台上运行
- 装置试错代码
- 硬编码
- 自动化
- 小结
- 文献
- 逐步改进
- Args的实现
- Args:草稿
- 所以我暂停了
- 渐进
- 字符串参数
- 小结
- JUnit内幕
- JUnit框架
- 小结
- 重构SerialDate
- 首先,让它能工作
- 让它做对
- 小结
- 文献
- 味道与启发
- 注释
- 环境
- 函数
- 一般性问题
- Java
- 名称
- 测试
- 小结
- 文献
- ((6436c5b7-800d-4bb1-a1dd-e4bba28f53f6))