前段时间网上最流行的三个问题:" 我是谁?"、" 我从哪里来?"、" 要到哪里去?”。这三个问题不只是网上流行的问题也是哲学家们最常思考的问题,但不只是哲学家,我们每个人都有自己对这三个问题的认知。那么如果想要成为架构师,我们也需要面临了解什么是架构师?架构师应该具备什么样的能力?

同样的三个问题:

首先是找准自己定位:我是谁?在哪里?

其次是怎样做好架构师:我要做什么?

最后如何搭建架构师知识体系:我该怎么做?

以上三个问题可以总结为:目标(我要做什么),方法(计划), 执行/行动(我该怎么做)

架构师的成长之路:

一.什么是架构师?

什么是架构师,这是一个架构话题里永恒的问题。因为每个公司所处的阶段不同,公司对架构师的定位也有所不同,业务模式、应用场景也都不一样。所以对架构的要求也不一样。

在公司初创阶段:

业务场景和需求的边界很难把握,有时候根本不需要架构师,产品需要快速的更新迭代和变现,需求频繁更新,这个时候需要的就是如何快速实现。当然如果公司成长以后,这个阶段就是欠下的技术债,埋下的坑,如果人员流动很频繁,后期系统维护成本是非常巨大的。

在公司稳定成长阶段:

业务模式和应用场景边界都已经比较清晰,这个时候最需要架构师能对线上业务进行模块划分,系统拆分重构,并做好相关高可用的措施,以保证系统的稳定、安全、高效地运行。

不同的行业,对架构师的要求也不同,比如电商业务和AI领域,从架构到业务场景,完全是两个物种。

在百度百科里面这样定义:系统架构师是一个既需要掌控整体又需要洞悉局部瓶颈并依据具体的业务场景给出解决方案的团队领导型人物。一个架构师得需要足够的想像力,能把各种目标需求进行不同维度的扩展,为目标客户提供更为全面的需求清单。

具体来说是一个确认和评估系统需求,给出开发规范,搭建系统实现的核心构架,并澄清技术细节、扫清主要难点的技术人员。主要着眼于系统的“技术实现”。因此架构师应该是特定的开发平台、语言、工具的大师,对常见应用场景能马上给出最恰当的解决方案,同时要对所属的开发团队有足够的了解,能够评估自己的团队实现特定的功能需求需要的代价。系统架构师负责设计系统整体架构,从需求到设计的每个细节都要考虑到,把握整个项目,使设计的项目尽量效率高,开发容易,维护方便,升级简单等。

架构师实际上就是软件的总体设计师。打个通俗的比方比如某个工程总设计师,类似三峡工程的总设计师。

架构师的形成一定是在实践中积累起来的,而并非上了几次培训班,读了几本书就可以成功的,架构师是在工程实践中培养出来的!

二.架构师的作用是什么?

架构师在整个软件系统开发过程中都起着重要的作用,并随着开发进程的推进而其职责或关注点不断地变化。

1.按软件开发过程维度来说:

需求阶段:软件架构师主要负责理解和管理非功能性系统需求,比如软件的可维护性、性能、复用性、可靠性、有效性和可测试性等等。此外,架构师还要经常审查和客户及市场人员所提出的需求,确认开发团队所提出的设计;

架构设计阶段:架构师负责对整个系统架构设计,制定开发规范、开发计划,指导整个开发团队完成这个计划。

开发阶段:架构师则成为详细设计者和代码编写者的顾问,并且经常性地要举行一些技术研讨会、技术培训班等;

测试和交付阶段:协调做好相关测试和部署。

维护阶段:软件架构师就开始为下一版本的产品是否应该增加新的功能模块进行决策。

2.按职能维度:

1 确认需求

架构师要懂得用户需求,理解用户真正想要什么,这使得架构师必须要和分析人员不断沟通,反复确认需求规格说明书,以此来保证他精准清楚用户需求。

项目经理刘先生在受访时说:「架构师会与很多人沟通,例如开发人员,例如我们项目经理,有时甚至是用户本身。架构设计的目的很明确,目的是什么呢?挖掘用户需求。」

2 系统分解

在架构师认可需求规格说明书后,架构师已明确用户需求是什么,这时候就要看架构师的分解能力了。

系统分解包括纵向分解和横向分解:

横向分解是对系统分解成不同的逻辑层,确定层与层之间的关系。是指基于技术架构层次进行的人员角色分工和任务分解。常见的分层:

应用层:主要负责具体的业务逻辑处理

服务层:提供可复用的服务

数据层:负责数据的存储和访问

分层注意事项:①必须合理规划层次边界和接口;②禁止跨层次的调用及逆向调用。

纵向分解是将不同的功能和服务分割开来,包装成高内聚低耦合的模块单元,有助于软件开发和维护,还便于不同模块的分布式部署,提高网站的并发处理能力和功能扩展能力。

3 技术选型

在系统分解后,架构师会最终形成软件整体架构。接下来,架构师的职责是技术选型。

架构师在技术选型阶段会提供参考信息给项目经理,项目经理再从预算、进度、人力、资源等各方面情况来权衡,最终确认。

4 制定技术规格说明

架构师在项目开发过程中是「灵魂人物」,并且要具备协调组织能力和懂得人员分工。

在制定技术规格说明阶段,架构师要协调起所有的开发人员,架构师通常会用技术规格说明书与开发人员保持沟通,让开发人员能从各个视角去观测、理解他们负责的模块或者子系统,确保开发人员能够按照架构意图实现各项功能。

三.架构师分类

其实架构师就是个title,每个公司称呼都可能不一样,和架构概念一样。

软件架构师:

软件架构师是软件行业中的一种新兴职业,工作职责是在一个软件项目开发过程中,将客户的需求转换为规范的开发计划及文本,并制定这个项目的总体架构,指导整个开发团队完成这个计划。主导系统全局分析设计和实施、负责软件构架和关键技术决策的人员,比如这些架构师的title可能是JAVA架构师、Python架构师、LAPM架构师等等。

web架构师:

web架构师是网站系统、功能、模块、流程的设计师,架构师,好比是高楼大厦的设计人员,通常一座大厦在建之前,都先由设计师将蓝图描绘出来,包括其形状、结构、尺寸、材料等等,然后建筑工程师带领工人们按照蓝图将大厦一层一层地建起来。

架构师也要看在什么样的公司,中小公司很多架构师都是全能的。通常公司规模和体系越大,分工会越细。大体可以这么分类:

解决方案架构师、系统架构师、平台架构师、业务架构师、网络架构师、移动架构师、前端架构师、大数据架构师等等。

什么是架构师?架构师应该具备什么样的能力?

四.架构师具备素质能力

• 精通某项技术,能够从本质上类比,触类旁通其他技术

• 对等所有技术,只有合适和不合适,没有喜欢和不喜欢。

• 视野开阔,了解不同技术的优缺点。知道使用某项开源技术实现某项业务需求,能够辨别重复造轮子。

• 精通设计模式,但又不泛用。

• 把系统拆分成多个子系统或模块。模块之间尽量松耦合,使得原先串行的开发任务变得可以并行发展。

• 能清楚系统的瓶颈在什么地方, 不断定位技术难度,开发进度,性能,内存等个方面的瓶颈。不断调整骨干力量解决瓶颈,在风险爆发之前消除隐患。

• 能做好前瞻性设计,预判到需求可能产生的变化。

架构师团队内做的事情

•沟通能力:各个方面都要了解,人人想法及规划都要知道,了解产品思想,用了什么方法实现的

•组织能力:组织推动各种技术的改进及功能的完善

•谈判代表:左右两难的时候的调解人

•设计模块及业务:通过图形化设计发现开发后才会发现的业务问题

•成本规划:通过过往经验评估成本及步伐

•愿望收集:不断收集建议及愿望,一步步实现

•传播布道:不断参与行业交流,提高理论及技术知识科普分享团队

总结

以上就是架构应该具备的能力以及什么是架构师。架构师的形成并不是看几本书,或是看几节视频就可以的。这需要在工作中积累大量的工作经验,以及不断的学习,才可以的。所以想成为架构师的小伙伴们,努力加油吧。

python架构师是做什么的_什么是架构师?架构师应该具备什么样的能力?相关推荐

  1. python架构师是做什么的_架构师成长之路(1)--什么是架构师

    前言: 哲学家常思考的问题:" 我是谁?"" 我从哪里来?"" 要到哪里去?不只是哲学家,我想每个人都有自己对这三个问题的认知. 如果我们要成为架构师 ...

  2. 云架构师是做什么的_为什么以及如何成为云架构师

    云架构师是做什么的 这当然不是新闻. 我们之前已经讨论过学习OpenStack是如何启动IT事业的好方法 . 但是它到底有多有价值? 而且,如果您想从传统的IT基础架构管理过渡到成为云架构师,您将如何 ...

  3. 信息系统管理师能做什么工作_什么是管理工作?

    信息系统管理师能做什么工作 继续我关于管理的讨论,从广义上讲,我的论点是: 有要做的管理工作–与编码,测试和客户理解相同. 假装没有要做的工作,所有软件开发都可能简化为理性工程,这是幼稚的. 许多管理 ...

  4. python架构师是做什么的_【图片】架构师速成-一个10多年架构师的总结_架构师吧_百度贴吧...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 架构师速成5-小学 很高兴你很快的进入了小学,小学的东西会让你更加的耀眼. 阶段: 小学 学时:2-3个月 升学标准 能自己制定目标及计划,get thi ...

  5. python携程怎么做数据同步_利用python yielding创建协程将异步编程同步化

    转自:http://www.jackyshen.com/2015/05/21/async-operations-in-form-of-sync-programming-with-python-yiel ...

  6. python学好了可以做什么菜_你是怎么学好Python的?

    一. 首先,Excel在入门基础知识.上手解决实际工作问题.深化技能实战方面比Python更容易: 其次,在对Excel已经很熟悉的情况下,我们知道Excel的每种功能的背后都是一行行代码,这一行行代 ...

  7. python怎么找项目做小生意_三个投资小回报大的项目,让你没钱也能做买卖!

    原标题:三个投资小回报大的项目,让你没钱也能做买卖! 投资小的买卖有哪些?这是一个浮躁的年代,人人都在追求小投资大回报,甚至有些人还想空手套白狼,现实生活中这些现象是很常见的,那么小投资大回报的生意真 ...

  8. python怎么做软件程序_看 Python 超级程序员使用什么开发工具

    Python超级程序员使用的开发工具 我以个人的身份采访了几个顶尖的Python程序员,问了他们以下5个简单的问题: 当前你的主要开发任务是什么? 你在项目中使用的电脑是怎样的? 你使用什么IDE开发 ...

  9. 架构师一般做到多少岁_软件测试可以做到多大岁数?

    做这个行业也几年了,经常听到有人问,软件测试这个行业能干到多少岁,当然里边包含想要进入这个行业的和已经在这个行业里边发展的!基本上软件测试可以分为三条职业发展路线:技术路线.管理路线.产品路线!目前是 ...

最新文章

  1. 机器视觉边缘检测算法详解
  2. 跟我斗图,我用Python爬虫下载几个G的表情砸死你
  3. android studio github 项目导入问题
  4. 对频率论(Frequentist)方法和贝叶斯方法(Bayesian Methods)的一个总结
  5. 容器源码解析之LinkedHashSet(六)
  6. jzoj3845-简单题【dp】
  7. Reliable Multicast Programming(PGM)协议
  8. RTK、IMU、RT3000
  9. yii2 DAO实现增,删,改,查
  10. atitit。html css框架Bootstrap  Foundation的比较与不同 attilax大总结
  11. 二元分类(Binary Classfication)与logistic回归
  12. CKA-1.26 模拟试题
  13. Linux4步快速搭建DNS服务器
  14. kile编辑器有关使用说明
  15. 奶酪巫师的黑客乐园 - 第一个进行硬分叉的区块链游戏?
  16. 让View具有减速效果的动画——FlingAnimation
  17. oracle用户剩余空间,ORACLE 中删除了表肿么硬盘剩余空间没变?
  18. istio-cni详解
  19. 如何申请注册企业邮箱?公司企业邮箱功能有哪些好用?
  20. 林仕鼎谈数据中心计算(二):存储资源分层

热门文章

  1. 虚拟化和云计算之间,主要是什么关系?
  2. Fireworks 制作美式涂鸦文字
  3. linux服务器 usb 手机,在linux中配置usb连接(android手机调试)
  4. 中国移动首测6G,确保中国在移动通信技术上的领先优势
  5. 手机怎么编辑PDF签名?这个方法有掌握吗
  6. 跳跃的青蛙,C语言实现版本
  7. 数据结构 (入门必看)
  8. Enigma算法图解
  9. 尤雨溪跑去欧洲开演唱会了?
  10. [微信机器人_01]智能机器人-奇迹蛋