优秀的架构设计

  • 架构分层,高层策略都集中在workbench,一目了然
    • 逻辑集中在workbench.ts中,一眼看去非常清晰
    • 看startup函数,渲染,初始service,状态restore高层策略集中
      • 如果是我,恢复过去状态,我可能分散写在sidebar和editor中了
      • restore的逻辑写在了workbeanch中,而非各组件中,这样就非常有顺序了
  • 组件分层,职责单一,关注点分离
    • 非常多层次,各层有各层的职责
    • 左侧的渲染树,explorerView负责粘合,workbenchTree负责渲染树,TreeModel,Tree
  • 抽象复用,封装变化实现扩展
    • 很多的基础类复用,即提取了共性,又在基础上扩展出不同的类
    • 如Tree,在左侧的文件树,git树都有应用,通过可变的controller和内部render,可扩展不同的类型。
    • Tree基础上,通过继承,workbenchTree,FileIconThemeTree。
  • 强大service管理
    • restorePart都是靠各个service去调度各个区块