一个高健壮性的系统设计
关键
没有最好的,只有最合适的
- 逻辑域
- 单块作用域足够小、或者足够干净
- 模块域
- 层次清晰
- 系统域
- 模块不依赖、可挂接
域
定义:能让其他人看懂你代码所实现需求的最小代码范围
- 一块逻辑域只干一件事
- 把逻辑的职责
适当
拆分,并放置在更合适的位置- 如果职责足够原子,应当放置在能放置的最底层
- MVC、ECS、行为与表象
扩展思想
- 非侵入式
冲突
将状态处理封闭在内部,不让外部关心
- 动作系统
- 动作树、保存状态
- 多线程
代码精简
代码越多,出问题的概率越大
- 减少重复代码
- 继承、组合
- 避免过度多态
- 程序化绑定(注解/反射、代码生成)
- 配置序列化、VM
流式处理
用流式编程减少理解成本
- 函数式编程
- asset graph
- linq
- await/lambada
搞特殊
- 允许搞特殊、但是要封闭
代码规范
- 单个文件代码行数
- 单块逻辑作用域范围
- 二进制拆分
包依赖管理
- 大中小版本分级机制