整洁代码之道 11 系统

整洁代码的层次继续上升,从类到系统,本章讲解如何在较高的系统层级上保持代码整洁

11.1 如何建造一个城市

  1. 系统和城市一样,有些人负责全局,其他人负责细节,几乎不可能一个人掌控所有

11.2 将系统的构造与使用分开

  1. 软件系统应该将启动过程和运行时逻辑进行分离

11.2.1 分解 main 方法

  1. 将构造与使用分开的方法之一就是 将全部的构造过程搬迁到 main 方法中

11.2.2 工厂

  1. 有时候应用程序也要负责确定什么时候创建对象

11.2.3 依赖注入( Dependency Injection ,DI )

  1. 控制反转( Inversion of Control ,IoC ) 时依赖注入的一种应用手段
  2. 控制反转将对象的第二权责抽离出来,转移到另一个属于它的对象中,使两个对象都遵循 单一权责原则

11.3 扩容

  1. 系统需要扩容是非常现实的需求,因为一开始没有人能把一切都设计的那么超前
  2. 迭代和增量开发是每个系统都需要经历的事
  3. 面向切面编程( aspect-oriented progamming ,AOP ) 是一种可以让系统实现快速扩容的编程手段
  4. 在 AOP 中,被称为切面的模块构造,指明了系统中哪些行为会通过某种方式被修改,从而让某些特定场景被支持

11.4 Java 代理

  1. JDK 提供的 动态代理 只能和借口协同工作
  2. 庞大的代码量和复杂的操作逻辑是动态代理的两大弱点

11.5 纯 Java AOP 框架

  1. SpringAOP 就是一个纯 Java AOP 框架,它通过编写 XML 内容来实现系统中各种 Bean 的依赖注入

11.6 AspectJ 的切面

  1. AspectJ 是通过切面来实现关注面切分的工具

11.7 测试驱动系统架构

  1. 最佳的系统架构由模块化的关注面领域组成,每个关注面都使用统一对象实现

11.8 优化决策

  1. 模块化和关注面切分成就了分散化的管理和决策
  2. 有时候决策不一定非要预先作出,延迟决策到最后一刻也不失为一种好手段

11.9 明智使用添加了可论证价值的标准

  1. 创立标准的过程有时非常漫长

11.10 系统需要领域特定语言

  1. 领域特定语言( Doamin-Specific Lanuage ,DSL ) 是一种单独的小型脚本语言,或通过标准语言编写的 API 集合

11.11 小结

  1. 系统也应该是整洁的
  2. 侵害性架构会湮灭系统逻辑,冲击整个系统的敏捷开发能力
  3. 无论是设计系统或单独的模块,都最好使用当前环境下可实现的最简单方案
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值