网站架构师的工作内容(需要学习的技术储备,帮助有志于在架构领域成长!)
优采云 发布时间: 2022-04-07 09:11网站架构师的工作内容(需要学习的技术储备,帮助有志于在架构领域成长!)
成长为软件架构师并不容易。本文文章列出了架构师需要学习的技术储备,并给出了成为软件架构师的路线图。它帮助有兴趣在建筑领域成长的学生明确学习方向。原文:成为软件架构师的总体规划[1]
Danist Soh @Unsplash
软件架构师在软件开发团队中扮演高级角色,这个角色需要时间和经验,并且需要跨职能的技能和知识。除了技术上的挑战,建筑师还需要具备良好的社交能力。在我们开始考虑成为软件架构师的计划之前,让我们来看看典型的软件架构师类型:
我们可以进一步扩展此列表,每个公司可能对特定职位有不同的名称。上面给出的软件架构职位的角色和职责可能因公司而异,但本质是相同的。请查看下表,以更好地了解不同架构师角色与技术/业务技能和知识的关系。
业务与技术关系图
总体规划
有一件事现在应该很清楚了:软件架构师通常是超级资深的开发人员,除了那些真正来自商业背景的人。以下是软件架构师应该熟悉的不同主题领域:
数据结构和算法——基本的编程原则对软件架构师来说应该不是问题,包括数组、队列、堆栈、链表、不同类型的树、图等数据结构。软件架构师不仅应该熟悉,而且还能够识别何时应该使用哪种数据结构。一个好的软件架构师应该知道不同的算法,比如搜索、排序、递归、动态编程等。在日常生活中,没有架构师会从头开始编写“合并排序”算法,或者发明一种新的数据结构。
算法简介
Introduction to Algorithms 是对算法和数据结构的全面介绍。
技术栈——无论是后端还是前端,软件架构师都必须对当前使用的技术栈有很好的了解。学习特定编程语言的语法是最简单的方法,但需要时间来获得经验。不同的库和框架也是值得了解的宝贵资产。
干净的代码
清洁编码——让软件系统工作并不是软件架构师的最终目标。每次他/她审查代码时,他/她想到的第一个问题是:我可以让这段代码更有效率吗?我可以让代码占用更少的内存吗?是否正确应用了代码清洁度标准?我可以使用不同的 OOP 吗?技术的?干净的代码当然可以帮助我们提高重构技能。
OOP - 面向对象编程帮助我们构建更灵活、高效和可读的软件系统。有经验的软件架构师会经常使用这些技术(如果技术栈是正确的......)。
设计模式
软件设计模式——谈到面向对象,人们不应该忘记不同设计模式的重要性,这些设计模式最初是由 GoF [2] 采集和引入的。了解这些设计模式肯定会帮助我们更好地利用软件系统的面向对象设计。
干净的架构
以下原则可以从 RC Martins 的《The Way to Clean Architecture》一书中学到。
SOLID 原则 - 此组件原则是软件组件设计中要考虑的基本技术。掌握这些原则的经验丰富的软件架构师可以快速识别代码中的异常情况。
高内聚/低耦合原则——REP、CRP、ADP等原则对于软件架构师来说非常重要,尤其是在构建、集成/解耦插件时,这些技术可以处理更高级的设计。
软件架构实践
系统设计——软件架构模式有很多种,如:主从、客户端-服务器、微服务、MVC、单向架构等,需要根据不同的前后端项目进行选择。当然,任何人都不太可能掌握所有这些模式,但是根据项目的不同,软件架构师应该精通底层设计,而领域驱动设计可以是最基本的起点。
文档——这是软件架构师日常工作的重要组成部分。绘制不同的 UML 图,ARC42 文档是这个职位不可回避的工作。有很多工具可以做到这一点,例如:
认证——软件架构师的认证选择并不多,但国际软件架构资格委员会 (iSAQB®) 提供了全球认可的软件架构认证专家 (CPSA®) 认证计划。
正如您从上面的列表中看到的那样,成为一名软件架构师需要时间和精力,但这绝对是可行的并且值得 :)。