关于具体和抽象的碎碎念

一个架构师应该具备的能力:

  • ① 丰富的软件设计和开发经验(业务拆解和功能拆解能力,行业标准理解);
  • ② 对内要有优秀的组织能力(团队管理);
  • ③ 对外要有极强的沟通和表达能力(向上汇报、跨部门沟通);
  • ④ 多面角色(产品、测试、开发、客户)视角的问题分析能力;

我的理解主要分为两块:职场软技能和硬核技术。

职场软技能先撇开不谈,而硬核技术又可以从两个方向去理解:

  • 自上而下(抽象->具体),从最初设计一个系统,到把这个系统逐步拆解,并能够通过代码实现的过程。
  • 从下向上(具体->抽象),从一堆具体的业务实现中,逐步提炼核心(稳定)功能并抽象为一套行而有效行为(系统)的过程。

无论是哪个方向,你都需要对软件/系统/代码中的“好”和“坏”有判别的能力。

往往来说,行业标准或者一些业界公认的规范,都是前人总结的相对靠谱的方法论。

除此之外还有软件的特质供评判参考:

  • 1、可维护性;(往往一套系统是希望天长日久地使用下去的,可维护性对应着维护成本)
  • 2、可靠性;(只有经过验证才是可靠的,测试的必要性,往往需要在【稳定】和【更新】之间权衡)
  • 3、可拓展性;(不可能有无限的拓展,所以考虑【拓展】时,往往考虑的是【约束】)

考虑系统中的“变化”和“不变”之特性,设计模式干得其实就一件事
————那就是把系统中的“不变”的功能,从日益繁杂的“变化”的业务需求中剥离出来。

  • Copyrights © 2019-2024 Klusfq
  • Visitors: | Views: