//联系人:石虎 QQ:1224614774 昵称:嗡嘛呢叭咪哄
QQ群:807236138 群称:iOS 技术交流学习群
一、概念
定义:系统架构师是一个既需要掌控整体又需要洞悉局部瓶颈并依据具体的业务场景给出解决方案的团队领导型人物。一个架构师得需要足够的想像力,能把各种目标需求进行不同维度的扩展,为目标客户提供更为全面的需求清单。
设计架构方案更多的是在做一些抽象和权衡:把复杂的需求抽象成简单的模型,从功能、性能、可用性、研发成本等等方面规划如何构建一个系统,这些内容需要更多的实践练习。
二、架构师能力模型
图:1
三、架构师必须掌握的知识
1.要认知架构师的定义
2.要认知架构师的工作职能
软件架构师主要负责理解和管理非功能性系统需求,比如软件的可维护性、性能、复用性、可靠性、有效性和可测试性等等,此外,架构师还要经常审查客户及市场人员所提出的需求。
3.架构师所具备技能
知识广度:需要知道主流技术为什么诞生,能解决什么问题?如果同一种业务用不用的技术来实现,会有什么哪些优缺点?比如:流行的框架OpenGL,要有清晰的认识会能在技术造型时做出正确的决定。
抽象能力:对业务和技术进行抽象。业务抽象就是对需求进行分析后,能够建立完美的实体类以及他们之间的联系。技术抽象是对整体架构进行一个分层,各层之间的交互。这至关重要,如果技术抽象能力不足,这会导致整个系统的架构不灵活,难以维护和扩展。
知识的深度:至少是某个领域的专家,比如消息队列,KVO,KVC熟悉其源码,知道其实现。
优秀的学习能力:对新的技术和前沿性的技术进行学习,使用它来解决工作中的业务问题。
图:2
四、学习架构师步骤
1: 扎实的iOS 基础,底层技术
2:熟练使用主流框架,
3:研究过至少一种以web框架的源码,
4:架构过或者参与过高并发系统设计,知道如何应对突发情况。
5:对自己所处的业务能够根据自己的知识维度,提出优化建议或者预测其风险点。
图:3
五、沟通能力-能够横向沟通
架构师必须参与项目开发全过程,包括确认需求、系统分解、架构设计、技术选型、制定技术规格说明、系统实现、集成测试和部署各阶段,在这一系列过程中,架构师会与各部门沟通交流。
一个产品的研发会有多部门合作,架构师在其中的沟通极为重要,直接影响研发的进度与质量。架构师不仅要与开发人员沟通,也要和项目经理、产品经理甚至用户沟通,来梳理产品的各种可能性。
所以,对于架构师而言,不但要有扎实的技术,还需要能够横向沟通的能力。
图4:
网友评论