精华内容
下载资源
问答
  • 架构师是做什么的
    千次阅读
    2020-10-16 11:32:26

    转载自: 微信公众号:程序员小灰

     

    架构师都做些什么?

     

    1.架构设计

    架构师,顾名思义,第一职责就是在软件设计阶段,做好软件“骨架”的设计。架构师需要把产品的需求翻译成软件工程的设计文档,确定各个系统与模块的边界,评估系统的量级。

     

    2.技术选型

    从前端到后端,从缓存到数据库,面对为数众多的第三方组件,架构师需要作出合理的选择。

     

    前端页面选择模板引擎还是动静分离?

    服务端选择Java还是Node.js?

    服务治理选择DubboX还是Spring Cloud?

    消息队列选择RocketMQ还是Kafka?

    分布式缓存选择Redis Cluster 还是 Codis?

    数据库选择Mysql还是Oracle?

    全文检索选择Solr还是ES?

    技术没有绝对的好坏之分,关键看是否适用于公司的业务场景。

     

     

    3.管理非功能性需求

    满足需求是项目开发和架构设计的根本,而管理非功能性需求则是项目的升华。

     

    在公司从0到1的创业阶段,开发者更关注的是功能性需求,往往一个简单粗暴的MVC项目就可以搞定一切。当业务量级逐渐增大,用户需求逐渐多样化,非功能性需求的重要性就逐渐显现。 

     

    非功能性需求都包含哪些内容呢?

     

    性能(响应时间) 

    可扩展性(适应需求的快速变化)

    可用性 (四个9,五个9,必要时的限流和降级)

    安全性(防范各种恶意攻击,实现风控)

    可监控(完善的监控和报警机制)

    灵活性(便于非开发人员进行配置) 

    可维护(持续集成,持续部署) 

    国际化(冲出国门)

     

     

    4.攻克技术难题

    架构师不只需要关注宏观的设计,也需要具有攻克技术细节的能力。在团队开发过程中遇到难以实现和优化的技术问题时,架构师需要发挥技术优势,解决系统的疑难杂症。

     

     

    5.技术人员的管理和指导

    架构师不只是一个技术大牛,也应该是一个好的管理者,在工作中需要把较大的项目和需求拆分一个个Story,依照每个人的情况分配给研发团队的成员,并且在必要的时候进行技术上的培训指导。

     

    每天努力一点,每天都在进步

    更多相关内容
  • 一个对话让你明白架构师做什么的?

    万次阅读 多人点赞 2019-03-11 10:56:31
    很多人都想知道架构师做什么?我们看看下面的一段对话。 菜鸟—— 刚入门的程序员 老鸟—— 资深架构师 老鸟:菜鸟,你的目标是什么? 菜鸟:我要成为一个软件架构师。 老鸟:对一个年轻的工程师来说,...

    阅读本文大概需要 6 分钟。

    很多人都想知道架构师是做什么?我们看看下面的一段对话。

     

    菜鸟 —— 刚入门的程序员

    老鸟 —— 资深架构师

     

    老鸟:菜鸟,你的目标是什么?

    菜鸟:我要成为一个软件架构师。

     

    老鸟:对一个年轻的工程师来说,这是一个很好的目标。那你为什么要成为架构师呢?

    菜鸟:我要领导一个团队,还要做所有关于数据库、框架和Web服务器的重要决定。

     

    老鸟:好吧,如果是这样,你就没必要成为一个软件架构师了。

    菜鸟:当然有必要了!我要成为一个能够做所有重要决定的人。

     

    老鸟:这样很好,只是你没有列出哪些才是重要的决定。你刚才说的那些跟重要的决定没有什么关系。

    菜鸟:你说什么?难道数据库不重要?你知道我们在数据库上面花了多少钱吗?

     

    老鸟:可能很多。不过数据库仍然不是最重要的。

    菜鸟:你怎么能这么说呢?数据库可是整个系统的心脏啊!所有的数据都保存在这里,它们在这里被排序,被索引,被访问。如果没有数据库,整个系统就无法运作!

     

    老鸟:数据库只不过是一个IO设备,它提供了一些有用的工具对数据进行排序、查询,并生成报表,但这些工具都只是整个系统的附属品。

    菜鸟:附属品?真是不可思议。

     

    老鸟:是的,附属品。你的系统业务逻辑或许会用到这些工具,但这些工具并非业务逻辑固有的组成部分。如果有必要,你可以随时替换掉这些工具,但业务逻辑还是那些业务逻辑。

    菜鸟:好吧,不过如果把这些工具替换掉,我们就要重新实现业务逻辑了。

     

    老鸟:那是你的问题。

    菜鸟:为什么这么说?

     

    老鸟:你认为业务逻辑依赖数据库,但实际上不是这样的。如果你的架构足够好,最起码业务逻辑不应该依赖数据库。

    菜鸟:这太疯狂了。我怎么可能创建出不使用这些工具的业务逻辑?

     

    老鸟:我并没有说业务逻辑不要使用数据库工具,我的意思是它们不应该依赖这些工具。业务逻辑不应该知道使用的是哪一种数据库。

    菜鸟:如果业务逻辑对数据库一无所知,它怎么使用这些工具呢?

     

    老鸟:依赖反转。你要让数据库依赖业务逻辑,而不是让业务逻辑依赖数据库。

    菜鸟:你的话让人费解。

     

    老鸟:费解吗?我讲的可是软件架构。这个就是依赖反转原则,让下层策略来依赖上层策略。

    菜鸟:那就更加费解了!既然上层策略(假设你指的是业务逻辑)要调用下层策略(假设你指的是数据库),那么就应该是上层策略依赖依赖下层策略,就像调用者依赖被调用者一样。这是众所周知的!

     

    老鸟:在运行时确实是这样的,但在编译时我们要把依赖反转过来。上层策略的代码里不要引用任何下层策略的代码。

    菜鸟:拜托!不引用代码就无法调用它们。

     

    老鸟:当然可以调用了。面向对象就可以做到。

    菜鸟:面向对象对真实世界进行建模,把数据和函数组合到对象里,把代码组织成直观的结构。

     

    老鸟:这是他们告诉你的吗?

    菜鸟:所有人都知道的,这不是很明显的事情吗?

     

    老鸟:确实如此。不过,面向对象是可以做到不引用也能调用的。

    菜鸟:好吧,那它是怎么做到的?

     

    老鸟:你应该知道,在面向对象系统里对象会给其它对象发送消息的,对吧?

    菜鸟:是的,当然。

     

    老鸟:那么你就该知道,消息发送者是不知道消息接收者是什么类型的。

    菜鸟:这要看使用的是哪一种语言了。在Java里,发送者最起码要知道接收者的基本类型。在Ruby里,发送者知道接收者一定会处理它所发送的消息。

     

    老鸟:是的。不过不管是哪一种情况,发送者都不知道接收者具体的类型。

    菜鸟:嗯,是的。

     

    老鸟:所以发送者可以给接收者传递一个函数,让接收者执行这个函数,这样发送者就不需要知道接收者是什么类型了。

    菜鸟:没错。我了解你的意思。不过发送者仍然依赖接收者。

     

    老鸟:在运行时确实是的,但在编译时不是这样的。发送者的代码里并没有引用接收者的代码。实际上,是接收者的代码依赖了发送者的代码。

    菜鸟:啊!但发送者仍然会依赖接收者的类。

     

    老鸟:看来需要用代码来说明了,我用Java来写些代码。首先是发送者代码:

    老鸟:下面是接收者代码:

    老鸟:可以看到,接收者代码依赖了发送者代码,也就是说SpecificReceiver依赖了Sender。同时可以看到,发送者代码对接收者代码一无所知。

    菜鸟:哈,你作弊了。你把接收者的接口放到了发送者的类里了。

     

    老鸟:你开始明白了。

    菜鸟:明白什么?

     

    老鸟:当然是架构原则啊。发送者持有接收者必须实现的接口。

    菜鸟:如果这意味着我要使用内部类,那么……

     

    老鸟:使用内部类只是方法之一,还有其它的方法。

    菜鸟:请等一下。最开始我们讨论的是数据库,那这些跟数据库又有什么关系呢?

     

    老鸟:让我们来看一下其它代码吧。首先是一个简单的业务逻辑

    菜鸟:这个业务逻辑没有做什么事情啊。

     

    老鸟:这只是个例子。在实际实现业务逻辑的时候,不会有很多类似这样的类的。

    菜鸟:好吧。那么Gateway是用来做什么的呢?

     

    老鸟:它为业务逻辑提供了所有访问数据的方法。下面是它的代码:

    老鸟:要注意,这个接口是在businessRules包里面的。

    菜鸟:好吧。那Something这个类又是用来做什么的呢?

     

    老鸟:它代表一个简单的业务对象。我把它放在另一个叫entities的包里。

    老鸟:最后需要实现BusinessRuleGateway接口,这个实现类会知道相关的数据库细节:

    老鸟:可以看到,业务逻辑是在运行时对数据库进行调用的。而在编译时,是database包引用了businessRules包。

    菜鸟:好吧,我想我明白了。你用多态性隐藏了数据库实现。不过在业务逻辑里,仍然引用了数据库的工具接口。

     

    老鸟:不,不是这样的。我们并没有打算为业务逻辑提供所有的数据库工具接口,而是业务逻辑创建了它们所需要的接口。在实现这些接口的时候,可以调用相应的工具。

    菜鸟:嗯,这样的话,如果业务逻辑需要所有的工具,那么你必须把所有工具都放到Gateway接口里。

     

    老鸟:哈,我觉得你还是没有明白。

    菜鸟:不明白什么?我觉得已经很清楚了。

     

    老鸟:每个业务逻辑只定义它所需要的接口。

    菜鸟:等等,什么意思?

     

    老鸟:这个叫作接口分离原则。每个业务逻辑只使用一部分数据库工具,所以每个业务逻辑只定义能够满足需要的接口。

    菜鸟:这样的话,你就会有很多接口,而且有很多实现类。

     

    老鸟:哈,是的。你开始明白了。

    菜鸟:这样子很浪费时间!我为什么要这样做呢?

     

    老鸟:这样做是为了让代码更干净,并且节省时间。

    菜鸟:算了吧,这样只会增加更多的代码。

     

    老鸟:相反,这其实是很重要的架构决定,这跟你之前所说的那些所谓的重要决定是不一样的。

    菜鸟:什么意思?

     

    老鸟:还记得你刚开始说你要成为一个软件架构师吗?你还想要做所有重要的决定?

    菜鸟:是啊,我是这么想过。

     

    老鸟:你想做所有关于数据库、Web服务和框架的决定。

    菜鸟:是啊,而你却说它们都不重要,还说它们其实跟重要的决定不相干。

     

    老鸟:没错,它们确实跟重要的决定不相干。一个软件架构师真正要做的重要决定都在数据库、Web服务器和框架之外。

    菜鸟:但首先要先决定用什么数据库、Web服务器或框架啊!

     

    老鸟:实际上应该在开发后期才开始做这些事情——在你掌握了更多信息之后。

     

    老鸟当架构师草率地决定要使用一个数据库,后来却发现使用文件系统效率更高

     

    老鸟当架构师草率的决定使用一个Web服务器,后来却发现团队需要的不过是一个socket接口

     

    老鸟当架构师草率地决定使用一个框架,后来却发现框架提供的功能是团队不需要的,反而给团队带来了诸多约束

     

    老鸟当架构师在掌握了足够多的信息后才决定该用什么数据库、Web服务器或框架

     

    老鸟当架构师为团队鉴别出运行缓慢、耗费资源的IO设备和框架,这样他们就可以构建飞速运行的轻量级测试环境

     

    老鸟:当架构师把注意力放在那些真正重要的事情上,并把那些不重要的事情放在一边。

    菜鸟:我完全不知道你在说什么了。

     

    老鸟:好吧,如果在若干年后你还没有转做管理,或许会明白这一切的……

     

    对话来源网络,若有侵权,请联系删除

    通过上面的对话,让我们对架构师有了个简单的了解,那么架构师在一家公司有多重要呢?架构师对一家公司、一个项目有多重要?

    我们来看一看调查的数据

    架构师在公司中担当着「IT架构灵魂人物」的角色,因为他们不仅做着架构师的本职工作,还同时做程序开发,写核心代码。另外,架构师依旧是技术高手,编程能力依然是一流的。

    从图表结果来看,架构师必须具备出色的设计能力、编程能力和沟通能力,在完成本职的架构工作外,还要协调好项目中人员的关系,做出合理的分工,最终完成全部工作。

    最后,看下企业对Java架构师的职位描述与职位要求

    从招聘信息来看,架构师们必须是具有多年的从业经验,有过项目开发经历,精通多门编程语言且熟悉数据库的大咖。所以,想以架构师为目标的读者,就要加倍努力了!

     

    ·END·

    路虽远,行则必至

    本文原发于 同名微信公众号「程序员的成长之路」,回复「1024」你懂得,给个赞呗。

    微信ID:cxydczzl

     

    往期精彩回顾

    程序员接私活的7大平台利器

    教你一招用 IDE 编程提升效率的骚操作!

    作为程序员的你,一年看几本技术相关的书

    大学期间的副业赚钱之道

    5个相见恨晚的Linux命令

    缓存穿透,缓存击穿,缓存雪崩解决方案分析

    为啥程序员下班后只关显示器从不关电脑?

    送给程序员们的经典电子书大礼包

    面试时如何优雅地自我介绍?

    支撑百万并发的数据库架构如何设计?

    一千行MySQL详细学习笔记

    展开全文
  • 根据2017 Project and Portfolio Management Landscape总结,Planview调查的49%的公司在过去12个月内都遭遇过项目失败。...解决方案架构属于在任何技术解决方案开发以前执行的最重要实践之一。在本文中,...

    根据2017 Project and Portfolio Management Landscape总结,Planview调查的49%的公司在过去12个月内都遭遇过项目失败。

    在快速变化的技术环境中,组织需要转变其流程和系统,以满足新兴的业务需求。这种数字化转型需要特定的专业知识和一系列实践,以使技术解决方案与业务目标保持一致。

    解决方案架构属于在任何技术解决方案开发以前执行的最重要实践之一。在本文中,我们将讨论解决方案架构是什么,描述解决方案架构师的角色,并解释如何采用此实践帮助解决业务问题。

    解决方案架构是设计,描述和管理特定业务问题解决方案工程的实践。

    解决方案架构师是负责领导这种实践,并介绍特定解决方案整体技术愿景的人。

    虽然可以在内部进行管理,但也有公司提供解决方案架构咨询的服务。

    我们将在本文中讨论这些术语以及它们所包含的多个方面涵义。

    企业架构vs解决方案架构与技术架构

    企业架构

    企业架构主要专注于构建复杂的企业生态系统和解决高层战略问题。企业架构定义了业务架构的战略方向,从而使我们可以了解支持该架构所需的技术设施。

    解决方案架构

    解决方案架构(SA)是一个复杂的过程,具有许多子流程,弥补了业务问题和技术解决方案之间的差距。它包括:

    • 寻找可能解决现有业务问题的最佳技术解决方案。
    • 向项目利益相关者描述软件的结构,特征,行为及其他方面。
    • 定义功能,阶段和解决方案需求。
    • 提供定义,管理和交付解决方案的规范。

    技术架构

    技术架构主要负责工程问题和软件架构。

    有些组织还专门添加了基础架构。对于在内部维护复杂硬件基础架构以支持运营的组织而言,此角色非常重要。

    5301aa7acd1583ac4d55406ee72c4825.png

    Solution Architect

    解决方案架构描述了在特定解决方案中如何使用不同的业务组件,信息和技术架构。 由于解决方案架构更侧重于解决特定业务问题的细节和解决方案技术,因此它为企业架构和技术架构之间提供了一个通道,后者仅关注于技术问题。 对于公司来说,一个有效的方法是将企业架构活动与解决方案和技术架构活动相结合。

    解决方案架构的主要流程

    精心构建的解决方案架构可帮助团队按时,按预算开发产品,并确保解决其旨在解决的问题。解决方案架构实际执行了哪些任务?

    将解决方案与企业环境相匹配

    通常,公司已经拥有操作系统,信息环境和集成要求。解决方案架构要确保新系统适合现有的企业环境。为此,解决方案架构师必须了解业务模型的所有部分如何协同工作,包括流程,操作系统和应用程序架构。了解这些流程后,他们才能够设计出最适合该环境的特定解决方案。

    满足所有利益相关者的需求

    软件产品开发最重要的挑战之一是满足利益相关者的需求。通常,一个产品有许多利益相关者,既有技术专家又有非技术专家。解决方案架构的目标是确保将他们所有的需求都考虑在内。而且我们必须定期向利益相关者通报产品开发流程,成本和预算。这些任务通常由解决方案架构师来完成,他将技术项目细节转换为管理和其他非技术人员都可以理解的语言。

    考虑项目约束

    每个项目都有其局限性,通常称为项目约束。包括:

    • 技术
    • 风险
    • 范围
    • 成本
    • 质量
    • 时间
    • 资源

    例如,产品所采用的技术必须符合其特定模块的需求。 项目范围是定义软件特定目标,任务,特性和功能的文档的一部分。 所有的项目也都有预算分配。

    虽然这些方面本身就是约束,但每个方面都有其自身的局限性。 解决方案架构师必须了解所有这些约束,进行比较,然后做出一系列技术和管理决策,以便将这些限制与项目目标相协调。

    选择项目技术栈

    创建解决方案架构的一个重要部分是选择产品开发技术。技术架构策略将直接取决于所选的技术栈。许多不同的实践都与平台,编程语言和工具相关。这时解决方案架构的职责就是去找到一种最适合特定项目的实践,而不仅仅是普通的技术评估和比较。

    满足非功能性需求

    所有软件项目都必须满足一些体现其系统特性的非功能性需求,也称为质量属性。虽然非功能性需求的确切列表取决于每个产品的复杂性,但最常见的是产品的安全性,性能,可维护性,可扩展性,可用性和可靠性。解决方案架构师的职责之一是分析所有非功能性需求,并确保进一步的产品工程能够满足这些需求。

    由于我们已经讨论了解决方案架构采用的高级目标,现在我们将其细分为具体职责和基础技能组合。

    解决方案架构师职责

    解决方案架构师的工作重点是解决方案级决策,及其对整体业务目标和结果的影响分析。 解决方案架构师的职责直接源于以下实践中的过程:

    • 分析技术环境
    • 分析企业特性
    • 分析和记录需求
    • 设置协作框架
    • 创建解决方案原型
    • 参与技术选型
    • 控制解决方案开发
    • 支持项目管理

    虽然这些职责中的大部分都需要解决方案架构师的领导角色,但他们只是支持PM活动,以确保资源,风险识别和计划与解决方案的最终目标保持一致。

    解决方案架构师角色描述

    d61baeed3b3dffebae4cbcedf1247017.png

    Solution Architect Role

    如果您已经意识到解决方案架构在您的项目中的重要性,那么下一步就是为该角色寻找和雇用员工。 我们已经考虑了一个好的解决方案架构师必须具备的核心技能。

    技术背景和经验

    为了向管理和工程团队提供技术建议,解决方案架构师必须具备在一个或多个IT领域至少具有八年工作经验的技术背景,包括但不限于:

    • IT架构,基础架构和云开发
    • 工程和软件架构设计
    • 业务分析
    • DevOps
    • 项目和产品管理

    出色的沟通技巧

    解决方案架构师能力的一个重要部分是沟通。考虑到这一角色需要与利益相关方进行谈判,了解各方的需求,管理风险和产品交付,缺乏沟通技巧可能会造成真正的瓶颈。该职位需要与企业和软件架构师,业务分析师及项目团队密切合作。因此,经验丰富的解决方案架构师都应该具有倾听,建议,共情和解说的能力。

    深厚的分析能力

    设计解决方案需要了解业务的不同部分如何协同工作。架构师必须认识到公司战略,并实现所有那些定义了公司如何达到其战略目标的业务流程。架构师还必须了解技术细节。所以,解决方案架构师需要不断地处理分析工作,并且在不同的业务层之间来回跳转。

    项目和资源管理技能

    虽然解决方案架构师不直接参与项目管理,但是不可避免地也要考虑项目的截止日期和给定资源。解决方案架构师必须能够决断哪些解决方案有利,哪些解决方案在特定情况下毫无价值。他们必须关注业务成果,并了解如何在给定的时间和资源下实现这些成果。

    公司什么时候需要解决方案架构咨询

    如果集成新软件系统的过程不是系统化的,那么技术咨询组织可以将解决方案架构引入公司结构。最重要的一点是,没有必要为每个项目都配置一个解决方案架构师。如果您只是实现一个已经验证过在类似环境中可行的技术模块,那么您就不需要解决方案架构师。一旦软件工程项目变得更加复杂,并且具有相当多的流程和风险,最好考虑解决方案架构咨询服务。

    让我们来看看需要引进解决方案架构咨询的案例:

    您不知道哪种解决方案最适合企业生态系统。 您需要在现有企业架构和特定项目之间建立链接。解决方案架构师将确保该解决方案符合您公司环境的标准。例如,如果您将许多现有的后台流程迁移到云,解决方案架构师将负责分析多种方案,并结合技术,人力和财务资源给出最好的建议。

    您运行数字转型项目。 数字化转型要求企业重新考虑如何为客户提供价值或最终提供什么。如果不将技术和业务视角联系起来,就没有办法回答这些问题,而这正是解决方案架构师工作的核心。

    您面临很多风险。 这种情形下解决方案架构师是必要的,比如项目存在许多技术风险,可能出现不确定的需求,必须同时实施多个产品,基础技术尚未得到批准。

    您必须向投资者推销产品路线图。 如果您必须向投资者和利益相关者展示一个未来的产品,解决方案架构师将给您建议符合产品需求的技术,并以清晰平实的业务术语说明其推理论证过程。

    您需要在利益相关者和工程师之间建立沟通。 解决方案架构师将有助于填补技术和非技术专家之间的沟通差距。此外,通过与项目管理团队合作,解决方案架构师可以覆盖产品与利益相关方需求不一致的风险,并确保解决方案符合既定目标。

    许多团队都参与了这个项目。 您可能有一个大型项目,需要有人来管理设计师,技术或业务架构师团队,以创造高质量的技术项目成果。

    结语

    无论您是否真正采用这种实践,解决方案架构都是任何IT项目的基础。通过有意识地引入解决方案架构,您可以构建一种框架,使技术,资源和技能,与既定的业务目标保持一致。

    在考虑解决方案架构之前,我们建议您探索结合了解决方案和企业层面的企业架构框架。

    传统上,中小型企业既不考虑解决方案架构的实践,也不考虑各自的角色。解决方案架构问题的处理是在产品团队中的其他角色之间委派和共享的。对于具有可预测结果的小型项目来说,这是一个可行的选择。但是,如果您有一个复杂的企业架构,将多个软件产品引入一个正常运行的生态系统,您需要完全重建您的遗留软件,或制定一套战略性技术决策,那么,需要一个专业的专家,就是显而易见的了。

    展开全文
  • 架构师做什么的?

    万次阅读 2016-05-19 00:12:32
    今天我就抛砖引玉,简单描述一下软件架构师做什么的。 java知识平台已经开通原创保护功能,这跟小伙伴们的支持是分不开的,bert君在这里谢谢大家了。大家可以在文章底部留言,表达一下自己对架构师的看法。 ...

    这里写图片描述
    哈佛大学有一个非常著名的关于目标对人生影响的跟踪调查。调查的对象是一群智力、学历、环境等条件都差不多的大学毕业生。结果是这样的:
    第一类人:27%的人,没有目标;
    第二类人:60%的人,目标模糊;
    第三类人:10%的人,有清晰但比较短期的目标;
    第四类人:3%的人,有清晰而长远的目标。
    以后的25年,他们开始了自己的职业生涯。
    25年后,又对这些调查对象跟踪调查,他们的职业和生活状况发生了很大的变化:
    第四类人:3%的有清晰且长远人生规划的人,25年来几乎都不曾更改过自己的人生目标,并且为实现目标做着不懈的努力。25年后,他们几乎都成了社会各界顶尖的成功人士,他们中不乏白手创业者、行业领袖、社会精英。
    第三类人:10%的有清晰短期人生规划者,大都生活在社会的中上层。他们的共同特征是:那些短期人生规划不断得以实现,生活水平稳步上升,成为各行各业不可或缺的专业人士,如医生、律师、工程师、高级主管等。
    第二类人在另外的60%中人生规划模糊的人,几乎都生活在社会的中下层面,能安稳地工作与生活,但都没有什么特别的成绩。
    第一类人:是那些没有目标和规划的人,几乎都生活在社会的最底层,生活状况很不如意,经常处于失业状态。
    调查者因此得出结论:目标对人生有巨大的导向性作用。成功,在一开始仅仅是一种选择,你选择什么样的人生规划,就会有什么样的人生。

    作为软件开发人员,也应该明确自己的职业方向,先来看一张职业规划图:
    这里写图片描述

    对于大多数开发人员,理想的职位都是软件架构师,觉得这是一个很体面而又很酷的工作。但是大多数人对软件架构师的职责没有一个清晰的认识,包括我自己。今天我就抛砖引玉,简单描述一下软件架构师是做什么的。

    java知识平台已经开通原创保护功能,这跟小伙伴们的支持是分不开的,bert君在这里谢谢大家了。大家可以在文章底部留言,表达一下自己对架构师的看法。

    架构一词大概是源于建筑学,也常指建筑物在其尺度上是如何依靠内部的支撑物相互结合而稳固构造的方式。而架构师则是为满足某种架构设计目标而进行在较大尺度上进行整体构思的角色。

    在软件工程和企业信息系统领域,又有很多细分,如所谓的系统架构师、应用架构师、企业架构师等等。

    一般来说,应用架构师负责构建一个以解决特定问题为目标的软件应用的内部结合结构,一般以满足各种功能性需求以及维护性需求为设计考虑目标;系统架构师则提供运营支撑软件应用的信息系统的结构设计,一般以满足各种非功能性需求或运营性需求为设计目标(如安全性、可伸缩性、可互操作性等等);企业架构师,就不光只顾IT系统的架构了,他应以企业的持续经营目标为考虑要素来构建企业所需要的内在结构设计。

    这里写图片描述

    那么软件架构师是做什么的?bert君认为:

    架构师首先必须要了解需求和业务,架构师必须接地气。

    不了解需求的架构师,就去设计架构,指挥大家干活,纯粹是耍流氓。架构虽然不是产品经理,但是产品最终都是服务客户的。如果架构师只懂技术,不考虑需求,做出的系统可能是高大上,但是用户不一定买账,那就是一个失败的产品了。

    其次,架构师需要定义架构。

    搞清楚需求后,下一步就是思考,如何解决这些需求并定义它的架构。架构定义过程让你想清楚你打算怎么在兼顾需求和限制的情况下把问题解决好。架构定义是将结构,方针,原则和领导力引入软件项目的技术层面。

    第三,架构师还需要进行技术选型,选择哪种技术来支持业务的实现。

    这里注意的是,不一定要选择那些潮流技术,选择什么技术,要看自己的场景。有时候,选择一些最原始的技术,没准更适合自己的业务场景。技术选型是很重要的,选择正确的技术,就能事半功倍。如果选择不好,那么就会欠技术债务,不仅影响产品的开发周期,还会影响产品的稳定性。

    第四,架构师需要进行架构协作。

    这里的架构协作,不仅仅指技术方面了。一个好的产品,牵涉到很多人即“项目干系人”,要想让一个软件项目成功,需要所有的系统干系人紧密协作来保证架构和所在的环境很好的集成。

    第五,架构师还可以参与一些设计,开发,测试的工作。

    还是那句话,架构师要接地气。真正去使用自己的产品,不仅能对产品进度很好地把握,还能在使用中发现产品架构存在的问题,及时修补和调整。另外,这样做的另外一个好处,就是架构师能够真正融入团队,并不是高高在上的。这不仅不会削弱你的权威,相反,能够让下属更尊重你,这也是领导力养成的一个重要途径。

    最后,bert君在招聘网站摘录了一些对架构师的要求,供大家参考,希望有这个目标的小伙伴,不断努力,早日实现。

    1. 熟悉分布式、高性能架构和开发技术,如分布式应用开发、数据分布式管理和同步等;

    2. 精通J2EE系统架构,深刻理解J2EE架构的优缺点,具有大型基于J2EE体系结构的项目规划、系统架构设计、开发经验,精通j2ee设计模式;

    3. 深刻理解软件系统架构,精通面向对象分析设计方法,逻辑能力佳,具有丰富的OOA、OOD、OOP、UML及SOA经验,精通RationalRose、PowerDesigner等设计工具;

    4. 技术视野广阔,具有良好的前瞻性,思路清晰、逻辑性强,对移动支付和互联网支付的相关技术具有优秀的领悟力和前瞻性,有较强的业务分析能力;

    5. 良好的沟通能力、团队合作精神和服务意识;认真负责、具有高度责任感和敬业精神;

    6. 对于性能瓶颈可以给出最优的切片,集群和分布式服务器搭建解决方案

    7. 理解面向对象分析和设计的基本原则,熟悉常用的设计模式,熟悉UML;

    8. 熟悉Java的多线程,线程与线程,进程与进程的通信机制;

    9. 精通系统优化,对系统优化原理有深入的理解。对系统端到端性能优化有丰富的实践经验,熟悉各种远程本地Cache组件(尤其是Memcached,Redis),对Cache服务器集群架构有丰富的经验;

    展开全文
  • 大数据架构师做什么的?

    万次阅读 2018-04-03 15:41:11
    架构师按照专注领域不同,可分为企业架构师、基础结构架构师、特定...想要成为专职架构师,就要明确专职架构师的职责,以下是专职架构师常见职责:职责一:全局的技术规划全局技术规划是专职架构师必须要的工作...
  • 所谓架构师,通俗的说就是设计师或结构设计者,这些定义如果用在建筑学上,则是很容易理解的。在软件工程领域中,软件架构师实际上就是软件项目的总体设计师,是软件组织新产品的开发与集成、新技术体系的构建者。 ...
  • 架构师的主要职责是什么

    千次阅读 2020-05-07 10:15:38
    进阶成为架构师是大多数java程序员们的梦想,架构师从广义上可分为软件架构师、系统架构师,软件架构师是程序员最容易突破、最可能进阶的一条职业发展路径,我这次主要分享软件架构师的相关知识点。 一:架构...
  • 杭州或者北京的安全架构师,可以到p7及以上级别的工作内容包括如下: 1、负责奇点云平台数据安全相关核心功能研发,参与产品需求分析、业务讨论、设计工作,评估需求的技术可行性和技术难点; 2、负责产品的技术框架...
  • 业务架构师职责

    千次阅读 2021-06-13 09:32:03
    什么是业务架构师 通常来说业务想清楚了需要什么能力,就会提需求给产品开始设计整个产品能力,产品同时也会找到对应的技术owner 协助进行,如提供技术角度的支持与意见。 这里的技术owner就可以理解为我们的业务...
  • 架构师主要什么,你知道吗?

    千次阅读 2020-01-02 10:07:55
    这三个话题,今天我们来看看架构师是怎样开展工作的,他/她需要对接上下游哪些角色,以什么作为工作输入,最终要对外输出什么产物。这些内容既有助于我们跟架构岗同事更好的协作,也可以作为是否往架构转型的参考,...
  • 首先要搞清楚架构师主要什么1 确认需求架构师要懂得用户需求,理解用户真正想要什么,这使得架构师必须要和分析人员不断沟通,反复确认需求规格说明书,以此来保证他精准清楚用户需求。项目经理刘先生在受访时说...
  • 软件测试架构师究竟干哪些工作?

    千次阅读 2022-05-13 15:48:32
    开发架构师做的事情相对明确,但测试架构师做什么事情,却不是那么清楚,各个公司所设置这样岗位的差异性很大,1000家企业也许有1000种解释。据我了解,某家公司的测试架构师只是资深测试开发工程师的代名词,甚至有...
  • 什么架构师

    千次阅读 2022-02-13 19:26:27
    一、 什么架构师  曾经有这么个段子:  甲:我已经应聘到一家中型软件公司了,今天上班的时候,全公司的人都来欢迎我。  乙:羡慕ing,都什么人来了?  甲:CEO、COO、CTO、All of 程序员,还有会计、司机...
  • 架构师的主要职责

    千次阅读 2021-03-11 16:43:11
    进阶成为架构师是大多数java程序员们的梦想,架构师从广义上可分为软件架构师、系统架构师,软件架构师是程序员最容易突破、最可能进阶的一条职业发展路径,我这次主要分享软件架构师的相关知识点。01—架构师的定义...
  • 系统架构师论文81篇

    2018-08-31 16:57:09
    系统架构设计师是一个最终确认和评估系统需求...架构师是由国外引进的一个概念,国外软件开发的几个职位是技术官、架构师、设计师、开发、测试,对应我们的公司应该是技术总监、架构师、系统分析员、程序员、测试人员。
  • 解决方案架构师的职责

    千次阅读 2021-06-04 17:08:34
    了解解决方案架构师的职责 1.分析用户需求 2.定义非功能性需求 3.参与并与利益相关者合作 4.处理各种架构约束 5.进行技术选择 6.开发概念证明和原型 7.设计解决方案并坚持交付 8.确保发射后的可操作性和维护 9.作为...
  • 系统架构设计师是一个最终确认和评估系统需求...架构师是由国外引进的一个概念,国外软件开发的几个职位是技术官、架构师、设计师、开发、测试,对应我们的公司应该是技术总监、架构师、系统分析员、程序员、测试人员。
  • 《App架构师实践指南》---笔记

    千次阅读 2022-03-23 10:16:06
    系统架构师、企业架构师、应用架构师、业务架构师等 本书针对App应用架构师 一般需要一下特征: 具备客户要求的功能 能够在工期内完成 性能好 可靠 安全 成本可接收 符合法规标准 将超越前任极其竞争者 也就是:...
  • 一个架构师什么是架构以及怎么成为一个架构师

    万次阅读 多人点赞 2015-02-24 20:05:45
    所以今天我们先来点”番外篇“,讲讲什么架构师什么是架构这个永恒的话题吧。此篇源出自我在公司内部写的一个PPT,它是用于在公司内部向广大技术人员普及用的一个资料,而CSDN这边的编辑不支持图文混排的效果...
  • 有很多人像成为java架构师,因为拥有了这张证书,不仅证明着你的能力,还能拿高薪,那么java架构师证书怎么考?接下来,我们就来给大家讲解一下这方面的内容。据了解,要想成为java架构师,第一阶段, java关于baijava...
  • 反过来说你考了拿到这个架构师的证书,公司一般也不会只看这个就给你一个架构师的岗位。更多的还是看你工作中的个人表现,或者之前的工作经历。 这个证书在国企的单位作用更大一些。比如晋升、项目招标等这个证书...
  • JAVA互联网架构师完整不加密版

    热门讨论 2017-09-05 21:37:01
    JAVA互联网架构师完整不加密版,需要就拿去,32.12GB,517个视频。包含netty,zookeeper,dubbo,redis,JVM等等等,保证不亏。
  • 转载自 架构师的工作都干些什么?!想做架构师必看 之前有网友说想看架构师升级的文章,所以写了本文。先给本文中架构师做个定义:第一,能力上达到(似乎是废话),第二,公司肯承认,不仅能给架构师的头衔,更能...
  • 系统架构师有哪些工作职责

    千次阅读 2018-09-14 16:37:59
    最近软考各个省份都要准备报名或者已经开始报名了,很多考生想要报考系统...系统架构师的职责就是设计一个公司的基础架构,并提供关于怎样建立和维护系统的指 导方针。具体来讲,系统架构师的职责主要体现在以下...
  • 【职业】什么架构师

    千次阅读 2020-08-17 17:22:56
    什么架构师架构师英文architect,这个词源于建筑学。软件工程当中的架构师和建筑工程当中建筑师有许多相通之处,都是负责“产品”宏观的架构设计。 在一个团队里,架构师充当了技术Leader的角色,不仅要...
  • 备考淘来的,如假包换!备考淘来的,如假包换!备考淘来的,如假包换!
  • Java 架构师是怎样练成的

    千次阅读 2016-03-18 18:04:59
     第一家公司,从打杂也就是页面bug、布局等修修改改,到局部功能模块开发,花了一年时间摸透了这个香港环卫系统,便欣喜若狂,梦想着自己想做架构师,但是公司不给平台,于是想去一家小公司实现自己的人生价值........
  • 谈谈架构师是何种生物

    千次阅读 2022-03-20 21:49:03
    小团队一般 10 人左右,其中常常是技术最牛的人做架构师(或 TL)。所以,架构师在广大码农中的...什么架构师架构师做什么事情,为什么 Java 的领域里,会更注重架构师? 很早很早之前,我对于架构的概念一
  • 018最新JAVA架构师培训视频教程(附笔记、源码、视频教程 全网盘链接) 内含完整资料及代码: 一、互联网并发编程 二、互联网网络通信编程 三、JAVA虚拟机 四、Linux部分 五、数据库设计与优化 六、互联网...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 496,325
精华内容 198,530
关键字:

架构师是做什么的