一个高健壮性的动作系统设计

一个高健壮性的系统设计

关键

没有最好的,只有最合适的

  • 逻辑域
    • 单块作用域足够小、或者足够干净
  • 模块域
    • 层次清晰
  • 系统域
    • 模块不依赖、可挂接


定义:能让其他人看懂你代码所实现需求的最小代码范围

  • 一块逻辑域只干一件事
  • 把逻辑的职责适当拆分,并放置在更合适的位置
    • 如果职责足够原子,应当放置在能放置的最底层
    • MVC、ECS、行为与表象

扩展思想

  • 非侵入式

冲突


将状态处理封闭在内部,不让外部关心

  • 动作系统
    • 动作树、保存状态
  • 多线程

代码精简


代码越多,出问题的概率越大

  • 减少重复代码
    • 继承、组合
    • 避免过度多态
    • 程序化绑定(注解/反射、代码生成)
      • 配置序列化、VM

流式处理


用流式编程减少理解成本

  • 函数式编程
    • asset graph
    • linq
  • await/lambada

搞特殊


  • 允许搞特殊、但是要封闭

代码规范


  • 单个文件代码行数
  • 单块逻辑作用域范围
  • 二进制拆分

包依赖管理


  • 大中小版本分级机制