软件架构师的修炼之道
架构师的工作包罗万象,从开发基础框架到设计软件架构,从优化系统性能到修复重要BUG,从新技术选型到做出关键技术决策,从指导工程师开发到沟通、协调各种内外部关系。
想要成为一名优秀的软件架构师,就需要具备架构设计顶级思维模型,从而形成以不变应万变的架构设计能力,做到面对任何复杂的业务场景都能够给出优雅的架构解决方案。
同时,从“质量-效率-成本”铁三角维度来说,架构的目标就是站在系统整体看待和解决问题,提升研发效率和关键质量,降低长期维护成本。那么如何拥有顶级架构思维呢?
我们可以看一看:
基本思维
• 系统全局:始终坚持站在系统和全局的视角看待和解决问题。
• 以人为本:理解利益方需求,关心最终用户,考虑程序员、测试人员、项目经理、运维等。
• 推迟决策:不到成熟一刻,不着急做出最终决策;低优先级的事情,推迟决策。
• 善于借鉴:研究和借鉴已有的设计成果和设计模式。
• 化虚为实:让想法具体化形象化,将架构展现出来。
• 极简主义:只关注高优先级的质量属性,提升这些质量属性同时降低风险。
基本方法
• 思考循环:分解问题 => 理解问题 => 澄清问题 => 清晰描述问题 => 探索设计 => 展示设计 => 评估设计可行性和适用性 => 实施设计 => 反馈效果
• TDC循环:思考、动手、检查。
此外,要深入理解各种软件设计原则和工程思想;善于系统需求分析,擅长沟通,能够挖掘出关键架构需求;熟悉领域建模,能够为业务建立合适的架构模型;熟悉各种技术架构模式,确立系统关键质量属性;能够推演系统可能面临的技术难题并设法解决;熟悉各种组件模块之间的依赖、复用、解耦关系和方法;熟悉开发架构、业务架构、部署架构、数据架构等多种架构视图;熟悉如何引导、探索、展示、评估设计的各类方法和工具箱;有能力在团队里提倡架构思维,提升团队成员的架构设计能力。但是在实践过程中,又可能会面临如下坑:
• 大型项目实战经验不足,架构设计能实践力不知如何进一步提升?
• 多到数不清的业务,架构设计又该怎么做?
• 如何激发团队潜能,让团队高效协作?
• 之前团队留下的烂坑,我们应该如何重构?
• 技术选型该怎么做?容易出现哪些问题?
……
想解决上述困扰,并快速升级自己的架构实力,最好的方式就是与优秀比肩,与业界大咖同步前沿趋势,并真实了解到更多的技术创新及研发实践的架构案例。