代码改变世界

体验 Pivotal Cloud Foundry

2016-12-02 11:43 by yoogo, 4254 阅读, 0 推荐, 收藏, 编辑
摘要:Cloud Foundry 是开源的 PAAS 实现, Pivotal 基于CF 做了一些扩展,发布了自己的商业化版本 PCF。 并且将 PCF 部署到AWS 上做为一个参考实现,这就是 PWS。 目前 PCF 支持的 IAAS 包括 AWS, AZURE, GCP, vSphere , OpenS 阅读全文

TestNG 失败重试,动态绑定到所有测试方法

2016-05-17 23:36 by yoogo, 867 阅读, 0 推荐, 收藏, 编辑
摘要:对一个测试方法需要失败重试,只需实现 IRetryAnalyzer 接口,然后注册到测试方法: 这里允许测试 fail 4次, 把它注册给测试方法: 通常,在集成测试中,几乎所有测试方法都需要重试,可以通过监听器动态绑定: 最后把监听器注册到 testng.xml 。 注意: 使用 testNG 6 阅读全文

3句话概括 PUT/POST 的区别

2016-05-14 12:05 by yoogo, 274 阅读, 0 推荐, 收藏, 编辑
摘要:在 http 协议规范定义的请求方法中,get,delete,put,post 是我们最常用的,根据规范的定义,要求使用 get/delete/put 实现的服务是幂等的,而 post 不是。换句话说,put 和 post 方法的区别不在于哪个适合创建,哪个适合更新。而在于你的服务实现如果满足了幂等 阅读全文

重构 - 一般化

2016-03-09 22:23 by yoogo, 219 阅读, 0 推荐, 收藏, 编辑
摘要:Pull Up Field Pull Up Method Pull Up Constructor Body Push Down Method Push Down Field Extract Subclass 划分子类要看按什么标准划分子类,比如对于Employee, 可以按职责划分财务,行政,工程师 阅读全文

重构 - 简化方法的调用

2016-03-09 19:24 by yoogo, 245 阅读, 0 推荐, 收藏, 编辑
摘要:Rename Method 方法名是对方法体的抽象,是化繁为简的支柱 Add Parameter 注意:在添加参数的时候,先考虑是否可以把数据移动到方法所在的类中 Remove Parameter Separate Query from Modifier 目标:查询的方法不要做修改 Paramete 阅读全文

重构 - 简化条件分支

2016-03-09 15:38 by yoogo, 317 阅读, 0 推荐, 收藏, 编辑
摘要:Decompose Conditional 简化条件表达式 目的:把复杂的条件表达式抽成方法 Consolidate Conditional Expression 目的:合并多个行为相同的条件分支 Consolidate Duplicate Conditional Fragments 目的:去除在多 阅读全文

重构 - 组织数据

2016-03-09 10:45 by yoogo, 216 阅读, 0 推荐, 收藏, 编辑
摘要:自封装字段 Self Encapsulate Field 目标:即使访问自己的属性,也要通过 getter/setter ; Replace Data Value with Object 目标: 替换值类型为对象, 是抽类的一个特例 Change Value to Reference 问题: 应该引 阅读全文

代码坏味道

2016-03-08 01:08 by yoogo, 199 阅读, 0 推荐, 收藏, 编辑
摘要:肿胀 代码,方法或类膨胀到难以维护,一般是长期积累形成,从未人尝试瘦身。 这包括: 长方法,大类,长的参数列表,偏爱使用原始类型,数据块 对 OO 的滥用 对面向对象原则的不正确或一知半解。 switch 语句, 临时字段, 拒绝继承,Alternative classes with differe 阅读全文

重构 - 给方法和属性找到更合适的类

2016-03-08 01:03 by yoogo, 260 阅读, 0 推荐, 收藏, 编辑
摘要:Move Method 移动方法 问题 一个方法在其他类中调用的频率比所属的类还高 解 方法应该属于调用它最多的那个类 为什么重构 1,方法使用的数据或者变量的个数最多来自哪个类,那个类就是方法该待的地方,这就是所谓的类的内聚性; 2,减少类的依赖 Move Field 移动字段 问题 一个字段在另 阅读全文

重构 - 重组方法

2016-03-07 23:32 by yoogo, 389 阅读, 0 推荐, 收藏, 编辑
摘要:抽方法 (Extract Method) 问题 一坨代码理不清 解 分组,然后把一组代码移动到新的方法中 重构的必要性 行数越多,越难懂 收益 易懂,方法名代替了注释 减少重复 隔离的代码,更少出错 内联方法 (Inline Method ) 问题 方法体比方法本身更直观 解 直接用方法体替换方法 阅读全文