【.com快译】如今,随着软件技术的不断迭代和应用范围的不断扩大,企业对软件架构师的基本工程技能要求也在快速提升。包括:全栈架构知识、以客户为中心的产品设计思维、应用平台工程的实验创新思维、使用SRE实践对生产环境的主动监控和可观察性,以及更多常态化的项目实践。此外,在某些领域,工程知识的广度比技术技能的深度更重要。从广义上讲,工程项目的组成部分可以大致分为八个不同的类别,如下图所示。你不必在这八个领域都是专家,但一定要在某些领域深耕细作,掌握好,才能成长为真正的软件架构师。接下来,让我们带着学习路线的思路一一深入探讨:1.软件工程、架构和设计模式对于软件工程、架构和设计模式的基础知识,我推荐以下学习路径you:KeypointsofsoftwarearchitectureandReferencedocuments:本书带来的各种软件观点和架构观点《软件系统架构(Software System Architecture)》涵盖了制定软件架构时可以遵循的各种指导方法。《软件架构的各种模式(Software Architecture Patterns)》:本书涵盖了常用的软件架构模式,如分层、事件驱动、Reactive、消息驱动、微内核、微服务、管道等,可以帮助你从基础掌握软件架构的各个要素.基础《设计模式(Design Patterns)》:为你整理了22种设计模式,涵盖了面向对象设计模式的基本要素,包括:创建模式、结构模式和行为模式。CloudNativeDesignPatterns:主要涵盖当前流行的设计模式,如:应用的12个关键原则、领域驱动设计、各种云设计模式。企业架构:对于想要通过企业架构开发积累丰富经验的架构师来说,了解TOGAF的TheOpenGroup以及Zachman或PEAF等类似框架是必不可少的。参考资料:在这个领域的最后,你还可以参考给架构师的行业研究和报告,以及各种软件架构标准和指南。2.Infrastructure,Cloud,DevOpsandAutomation对于基础设施、云、DevOps和自动化的基础知识,我推荐如下学习路径:基础设施(计算、存储和网络)涵盖的基本要素包括:计算:裸机(BareMetal)、虚拟化(Hypervisor)、容器、容器编排、边缘计算、Serverless、负载均衡等存储:对象存储、文件存储(如NFS、SAN)、数据库存储、存储复制等。网络:基础网络(如集线器、网桥、交换机、路由器等)、拓扑结构、LAN、WAN、VPC(VirtualPrivateCloud,虚拟私有云)、CIDR(ClasslessInter-DomainRouting,https://cidr.xyz/)等。CloudArchitecture:涵盖了三大云服务商在云端设计和运行各种流量负载的架构的关键概念、设计原则和最佳实践:AWS的综合框架,以其出色的运营、安全性、可靠性、性能效率和成本优化构成了架构支柱。MicrosoftAzure的综合框架还提供成本优化、高效运营、性能效率、可靠性和安全性。谷歌云的架构已成为便捷操作、安全性、隐私和合规性、可靠性、性能和成本优化方面的关键原则。您还可以点击链接-https://vedcraft.com/architecture/software-quality-strategy-is-essential-for-every-architect/获取有关云迁移或框架采用的更全面的文章。DevOps涉及持续构建与集成、持续部署、持续交付、CI/CD的生命周期,包括:《DevOps周期表》涵盖了digital.ai整理的大部分DevOps工具和技术。Google发布的DevOps状态报告研究。关于最近的趋势,例如GitOps、DevSecOps、AIOps和MLOps。3.质量工程,持续交付在了解质量工程和持续测试的细微差别的基础上,我向大家推荐以下学习路径:持续交付:了解整个持续交付生命周期的基础知识。加入开源CD基金会社区,分享和遵循该领域的各种最佳实践。敏捷交付实践:可以获得敏捷框架的认证,比如SAFe(ScaledAgileFramework)。质量工程实践:涵盖各种标准实践的基础知识,例如:单元测试、行为驱动测试、功能测试、稳健性测试、回归测试、进度测试、移动测试、可访问性测试、像素测试、性能测试和安全测试。持续测试:通过Selenium等工具和实践,涵盖各种自动化的基本要素。软件质量:可以使用链接--https://vedcraft.com/architecture/software-quality-strategy-is-essential-for-every-architect/,了解一个架构师需要了解的软件质量的方方面面4.生产工程与SRE为了了解现代生产工程的动态实践,我向你推荐以下学习路径:BasicSRE实践:《Google SRE知识书籍》涵盖了SRE的相关原则、实践和管理要点面向生产的设计:从生产工程的角度,使用模式和反模式来设计应用现代实践:通过混沌的现代实践进行扩展engineeringYourknowledge.V.平台工程(PlatformEngineering)的研究与认知要了解平台工程的研究与相关性,推荐以下学习路径你:应用能力。行业研究:通过链接-https://vedcraft.com/architecture/5-reports-every-software-architect-should-read/,了解Forrester、Gartner等行业研究报告。工程博客:通过链接--https://vedcraft.com/architecture/engineering-blogs-every-software-architect-should-read/,了解最佳实践和案例研究。六、数据工程、机器学习、人工智能如果你想分析数据,更广泛地理解工程、机器学习(ML)和人工智能(AI),我会推荐以下学习路径:数据工程:涉及《企业架构师指南》由Oracle编写,有助于理解Hadoop和Cloudera的基本理论《大数据基础知识》,《云中数据湖》,以及使用Snowflake或Databricks的新兴数据云平台等趋势(。AI和ML:理解和应用AI和ML是至关重要的,如果你想成为能力更广的技术专家,虽然不一定非得是这个领域的数据科学家,但你需要了解以下关于AI和ML的知识:通过《机器学习介绍》了解机器学习算法等如分类、回归和聚类。7.可观察性、监控和分析为了理解可观察性、监控和分析之间的细微差别,我向您推荐以下学习路径:应用监控:对应用状态和系统性能的监控应该区别对待。可观察性:将监控的边界扩展到日志、指标、数据跟踪、用户体验等可观察元素。分析:了解按需使用行为、性能、市场和客户分析工具。8.商业价值和以客户为中心为了理解商业价值和以客户为中心的相关性,我向您推荐以下学习路径:商业价值:了解应用程序的基本商业价值、价值流分析和映射概念。以客户为中心:通过《数字化转型之旅》了解客户价值,以客户为中心,以及相关的设计思想。总而言之,工程技能不仅仅是技术。作为一名合格的软件架构师,需要充分了解和掌握与工程项目相关的方方面面。希望以上总结和列举的八项技能,能对大家的日常工作有所帮助。原标题:EssentialEngineeringSkillsForEverySoftwareArchitect,作者:AnkurKumar
