ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

第一章_绪论_1.3 如何成为一名好的系统架构设计师

第一章_绪论_1.3 如何成为一名好的系统架构设计师 一、概述从 Pat Kua 提出的 6 种角色特质说明优秀架构设计师的衡量标准并阐述工程师与架构设计师的本质区别以及从工程师到初级/中级/高级架构设计师的成长路径与核心能力。二、核心概念1.优秀架构设计师的 6 种角色特质Pat Kua技术全面的架构设计师须具备作为领导者、作为开发者、作为系统综合者、具备企业家思维、具备战略/战术权衡思维、具备良好沟通能力。2.“象牙塔式架构设计师”反面模式不考虑技术选型与问题域之间的匹配度易受各种技术诱惑做出脱离实际的架构选择。3.工程师与架构设计师的本质区别技术上架构设计师首要工作是抽象建模工程师主要负责实现、组织上、个人成长上架构设计师是业务和技术的桥梁工作主题是“权衡”。4.成长阶段年限工程师1~3 年→高级工程师3~5 年→技术专家4~8 年→初级架构设计师5~8 年→中级架构设计师8~10 年以上→高级架构设计师10 年以上遵循“10000 小时定律”。5.三力判断力/执行力/创新力成为架构设计师的关键判断力准确判断系统复杂度与脆弱点、执行力用合适方案解决复杂度、创新力创造新方案解决复杂度。6.技术雷达用战略思维探索技术的有用工具帮助在团队敏捷度快速行动与一致性保持足够一致之间取得平衡。三、关键要点1.优秀架构设计师无统一衡量标准但可据能力评价Pat Kua 提出 6 种角色特质领导者、开发者、系统综合者、企业家思维、战略/战术权衡思维、良好沟通。2.作为领导者像导师带领开发团队向同一技术愿景前进借助讲故事、影响力、引导冲突、构建信任实现愿景并听取参与者意见调整愿景。3.作为开发者须理解技术选型与问题域的匹配避免“象牙塔式架构设计师”行为最佳方法是多与开发人员在一起、花时间在代码上。4.聚焦系统不只关注代码还要满足不同利益相关者支持、安全、运营人员的质量属性需求而非针对某一参与者偏好优化。5.企业家思维所有技术选型都有成本与收益应像企业家愿承担风险、收集真实世界短期/长期成本与收益信息、寻找隐性成本文档化、社区、约束、长期风险。6.权衡战略与战术思维持续关注新技术但不一定立即采用在团队/组织层面平衡敏捷度与一致性用技术雷达探索技术。7.良好沟通用听众熟悉术语风险回报、成本收益而非技术词汇沟通用图表与小组讨论建立技术愿景并书面记录架构决策日志或 Wiki留痕。8.与建筑师类比都做顶层设计、当需求方与实施者桥梁但架构设计师一定从工程师成长建筑师在成为设计师前不会先做工人/工程师。9.工程师与架构设计师本质区别在技术抽象建模 vs 实现、组织、个人成长架构工作主题是权衡需习惯不完美与一定条件下的不精确。10.成为架构设计师关键是培养判断力、执行力、创新力遵循积累经验、拓宽视野、深度思考的原则。11.成长路径 6 阶段工程师1~3 年指导完成、高级工程师3~5 年独立完成含判断选择、技术专家4~8 年领域专家、可修改扩展架构、初级架构5~8 年独立设计系统、基于方法论、中级架构8~10 年复杂系统、高级架构10 年创造新架构模式。12.“10000 小时定律”成为顶尖专业人才需持续 10000 小时练习架构成长关键在于对技术的热情与持续投入学习、实践、思考、总结。四、典型示例1.高级架构设计师创造新架构模式谷歌分布式存储架构、分布式计算 MapReduce 架构、列式存储架构开创大数据时代Docker 在虚拟机成熟背景下创造容器化技术潮流。2.技术选型反例若问题更适合关系型数据库将文档数据库引入系统毫无道理——说明技术选型必须匹配问题域。3.高级工程师阶段理论积累数据库表设计 3 个范式、面向对象设计模式、SOLID 设计原则、缓存设计理论缓存穿透/雪崩/热点。五、易错与注意1.“象牙塔式架构设计师”忽视技术选型与问题域匹配被技术诱惑而做出脱离实际的选择。2.工程师常完美主义、追求程序精准架构设计师须习惯不完美与一定条件下的不精确工作主题是权衡。3.误区架构设计师不必写代码——优秀架构设计师应有组织地参与开发并编写一定量代码以从一线获得架构反馈。4.成长误区拓展技术宽度 ≠ 仅知道技术名词须深入理解每个技术的原理、优缺点及应用场景。
返回列表