网站架构师的工作内容(内容什么是软件架构?软件架构的层次对技能的要求)
优采云 发布时间: 2021-11-24 23:38网站架构师的工作内容(内容什么是软件架构?软件架构的层次对技能的要求)
内容
什么是软件架构?软件架构的层次
软件架构可以抽象为几个层次,不同层次对技能的要求也不同。有许多不同的级别划分。我最喜欢以下三个部门:
有时,架构师也被视为不同利益相关者之间的“粘合剂”。三个例子:
软件架构师的典型工作内容
要了解架构师所需的必要技能,我们首先需要了解架构师通常做什么。以下是我认为最重要的一些任务:
软件架构师的重要技能
为了支持上述工作,需要许多重要的能力。以我个人的经验,每个软件架构师都应该具备以下十项技能:
(1) 设计能力
什么是好的设计?这可能是最重要和最具挑战性的问题。有必要区分理论和实践。根据我的经验,两者都是最有价值的。让我们从理论开始:
(2) 决策能力
架构师需要能够做出决策并引导项目或整个组织朝着正确的方向发展。
概念完整性:即使您决定以一种方式做这件事,也要坚持下去,即使有时以其他方式做会更好。通常,这使概念整体更简单,简化了可理解性,并简化了可维护性。
一致性:例如,如果您定义并应用一个命名约定,它与大小写无关,而是以相同的方式应用于任何地方。
(3) 能把复杂变简单
请记住奥卡姆剃刀的解决问题原则,这意味着它更喜欢简单。我把这个原则解释为:如果你对这个问题有太多的假设需要解决,那么你的解决方案可能是错误的,或者导致不必要的复杂解决方案。为了得到一个好的解决方案,应该减少(简化)假设。
(4) 编码能力
即使作为企业级架构师,在最抽象的架构层面,你仍然应该知道开发人员每天都在做什么。如果您不了解这是如何完成的,您可能会面临两个主要问题:
开发人员不会接受你的嘴。
我不明白开发人员面临的实际需求和困难。
(5) 文档架构能力
架构文档有时更重要,有时不那么重要。重要文档,例如架构决策或代码指南。在开始编码之前通常需要初始文档,并且需要不断改进。其他文档可以自动生成,因为代码也可以是文档,比如UML类图。
(6) 沟通技巧
根据我的观察,这是最被低估的技能之一。如果你在设计上很聪明,但不能传达你的想法,你的想法可能影响很小甚至不成功。
(7) 评估能力
设计实践:架构遵循什么模式?它们使用正确吗?设计是否遵循红线或是否存在不受控制的增长?是否有清晰的结构和关注点分离?
发展实践:制定并遵守规范性指南?代码的版本是什么?部署实践?
质量保证:测试自动化的覆盖范围是多少?静态代码分析到位,效果好吗?同行评审到位?
安全:什么是安全概念?内置安全性?渗透测试或自动化安全分析工具是否到位并定期使用?
(8) 平衡能力
开发人员和业务部门需要了解长期愿景及其收益,以便调整他们的解决方案。
负责预算的经理需要参与以了解财务影响。没有必要将100%的长期愿景直接放在正确的地方,但开发成本一般在预算范围内。
(9) 指导和问答
在辅导和辅导方面,主动可能是最好的选择。如果有人问你,为时已晚。应尽可能避免架构重构。您需要以某种方式预测接下来的几周、几个月甚至几年,并为下一步做好准备。
(10) 营销推广
你的想法很好,你已经很好地沟通了,但仍然没有人愿意遵循?那么你可能缺乏营销技巧。
原型:展示您的想法的原型。有许多用于创建原型的工具。在喜欢 SAP 的公司背景下,可以查看 build.me,在那里可以快速轻松地创建美观且可点击的 UI5 应用程序。
视频:与“无聊的PPT”不同,你还可以播放视频来展示你的想法或者至少是方向。
但请不要过度营销:从长远来看,内容为王。如果你的话没有实现,从长远来看,它会损害你的声誉。
架构师的技术路线图
参考书
翻译成“软件架构师之路”。Github 目前是一个快速崛起的项目。其内容对立志成为软件架构师(不分前端后端)的同学应该会有很大帮助。对于习惯阅读中文文档的学生来说,翻译很方便。
如果觉得文章不错,文末点个赞???又回来了,记得点赞和看哦~