大多数敏捷开发团队没有明确定义软件架构师的角色,而是使用非常民主的模型来工作。整个团队将讨论每个重要的技术决策,并以最多的选票赢得解决方案。如果这种团队最终决定在一个人的T恤上贴上“软件架构师”的标记,那么最受尊敬的程序员将获得该标记。那么到底软件架构师是干什么的?软件架构师的需要具备哪些技能?
软件架构师是干什么的?
架构师首先必须要了解需求和业务,架构师必须接地气。不了解需求的架构师,就去设计架构,指挥大家干活,纯粹是耍流氓。架构虽然不是产品经理,但是产品最终都是服务客户的。如果架构师只懂技术,不考虑需求,做出的系统可能是高大上,但是用户不一定买账,那就是一个失败的产品了。
其次,架构师需要定义架构。搞清楚需求后,下一步就是思考,如何解决这些需求并定义它的架构。架构定义过程让你想清楚你打算怎么在兼顾需求和限制的情况下把问题解决好。架构定义是将结构,方针,原则和领导力引入软件项目的技术层面。
第三,架构师还需要进行技术选型,选择哪种技术来支持业务的实现。这里注意的是,不一定要选择那些潮流技术,选择什么技术,要看自己的场景。有时候,选择一些最原始的技术,没准更适合自己的业务场景。技术选型是很重要的,选择正确的技术,就能事半功倍。如果选择不好,那么就会欠技术债务,不仅影响产品的开发周期,还会影响产品的稳定性。
第四,架构师需要进行架构协作。这里的架构协作,不仅仅指技术方面了。一个好的产品,牵涉到很多人即“项目干系人”,要想让一个软件项目成功,需要所有的系统干系人紧密协作来保证架构和所在的环境很好的集成。
第五,架构师还可以参与一些设计,开发,测试的工作。还是那句话,架构师要接地气。真正去使用自己的产品,不仅能对产品进度很好地把握,还能在使用中发现产品架构存在的问题,及时修补和调整。另外,这样做的另外一个好处,就是架构师能够真正融入团队,并不是高高在上的。这不仅不会削弱你的权威,相反,能够让下属更尊重你,这也是领导力养成的一个重要途径。
软件架构师的需要具备哪些技能?
1. 熟悉分布式、高性能架构和开发技术,如分布式应用开发、数据分布式管理和同步等;
2. 精通J2EE系统架构,深刻理解J2EE架构的优缺点,具有大型基于J2EE体系结构的项目规划、系统架构设计、开发经验,精通j2ee设计模式;
3. 深刻理解软件系统架构,精通面向对象分析设计方法,逻辑能力佳,具有丰富的OOA、OOD、OOP、UML及SOA经验,精通RationalRose、PowerDesigner等设计工具;
4. 技术视野广阔,具有良好的前瞻性,思路清晰、逻辑性强,对移动支付和互联网支付的相关技术具有优秀的领悟力和前瞻性,有较强的业务分析能力;
5. 良好的沟通能力、团队合作精神和服务意识;认真负责、具有高度责任感和敬业精神;
6. 对于性能瓶颈可以给出最优的切片,集群和分布式服务器搭建解决方案;
7. 理解面向对象分析和设计的基本原则,熟悉常用的设计模式,熟悉UML;
8. 熟悉Java的多线程,线程与线程,进程与进程的通信机制;
9. 精通系统优化,对系统优化原理有深入的理解。对系统端到端性能优化有丰富的实践经验,熟悉各种远程本地Cache组件,对Cache服务器集群架构有丰富的经验。
上述就是关于软件架构师是干什么的,以及软件架构师的需要具备哪些技能的全部内容介绍,想了解更多关于软件架构师的信息,请继续关注。