分类: iOS平台
2018-07-10 23:05:49
前言:
最近好多人私信问我,该怎样才能成为架构师,还有一个就对当前的状态感到迷茫。我在此做一个简单的说明,或者对迷茫中的你来说有些许帮助。
如果你是想成为iOS架构师,那么你首先要是一个iOS高级攻城狮。也就是说,基础底层知识必须牢固,对iOS的了解全面而且深入。
有很多人对现在的工作感到很没意思,因为当前的工作,完全是实现业务,技术上没有任何提高。在这种状态下就会感到迷茫,特别是一想到将来这种迷茫感就更强烈了。
作为一个开发者,有一个学习的氛围跟一个交流圈子特别重要,这是一个我的iOS交流群:638302184,不管你是小白还是大牛欢迎入驻 ,分享BAT,阿里面试题、面试经验,讨论技术, 大家一起交流学习成长!希望帮助开发者少走弯路。
与其说迷茫还不如说是担忧,随着时间的推移,自己的技术又没有长进,所以感觉忧心忡忡。
这里分为这二种人:
第一种:混日子,过一天算一天,不想学习。
这一种的我就不过多讨论了,没有意义。我也碰到过很多这样的同事,此类程序员已经废啦。
第二种:想提高自己的技术,往架构师方向努力。
给我发私信的人,大部分是这一种。首先,可以看出来,这些人都是有自己理想的人,也会付诸实践的。想往架构师方向走,但是却苦于没有人带,自己也不知道如何成为框架师。再不改变,此类程序员可能会也废。
所以今天,我在这里,用书写的方式,来教大家,要想成为一名高级架构师,都需要干些什么,才能够成为一名真正的高级架构师,虽然我说的不完全对或者准确,但我想我写的这些也是能够帮助大家的。
第一点:要认知架构师的定义
百度百科,架构师是一个既需要掌控整体又需要洞悉局部瓶颈并依据具体的业务场景给出解决方案的团队领导型人物。一个架构师得需
要足够的想像力,能把各种目标需求进行不同维度的扩展,为目标客户提供更为全面的需求清单。
如果你作为一名高级架构师,你连架构师的定义都不能理解,那我觉得,你的架构师生涯基本是可以结束了。
第二点:要认知架构师的工作职能
软件架构师在整个软件开发过程中都起着重要的作用,并随着开发进程的推进而其职责或关注点不断地变化,在需求阶段,软件架构师主要负责理解和管理非功能性系统需求,比如软件的可维护性、性能、复用性、可靠性、有效性和可测试性等等,此外,架构师还要经常审查客户及市场人员所提出的需求。
确认开发团队所提出的设计;在需求越来越明确后,架构师的关注点开始转移到组织开发团队成员和开发过程定义上;在软件设计阶段,架构师负责对整个软件体系结构、关键构件、接口和开发政策的设计;在编码阶段,架构师则成为详细设计者和代码编写者的顾问,并且经常性地要举行一些技术研讨会、技术培训班等;随着软件开始测试、集成和交付,集成和测试支持将成为软件架构师的工作重点;在软件维护开始时,软件架构师就开始为下一版本的产品是否应该增加新的功能模块进行决策。
第三点:要认知架构师所具备的那几个技能
知识广度:需要知道主流技术为什么诞生,能解决什么问题?如果同一种业务用不用的技术来实现,会有什么哪些优缺点?比如:流行的框架OpenGL,要有清晰的认识会能在技术造型时做出正确的决定。
抽象能力:对业务和技术进行抽象。业务抽象就是对需求进行分析后,能够建立完美的实体类以及他们之间的联系。技术抽象是对整体架构进行一个分层,各层之间的交互。这至关重要,如果技术抽象能力不足,这会导致整个系统的架构不灵活,难以维护和扩展。
知识的深度:至少是某个领域的专家,比如消息队列,KVO,KVC熟悉其源码,知道其实现。
优秀的学习能力:对新的技术和前沿性的技术进行学习,使用它来解决工作中的业务问题。
以上这三大点,是架构师必须掌握的知识,那么,问题来了,要把以上三大点给做好,那么你该如何去做呢?我觉得可以从以下几个步骤开始:
1: 扎实的iOS 基础,底层技术
2:熟练使用主流框架,
3:研究过至少一种以web框架的源码,
4:架构过或者参与过高并发系统设计,知道如何应对突发情况。
5:对自己所处的业务能够根据自己的知识维度,提出优化建议或者预测其风险点。
其实能否成为架构师跟机遇有很大关系,比如一个程序员,以上都做到了,但是公司并没有给他这个机会去做,一个真正架构的机会。因为之前的架构师不离职他就没有机会,这就是现实!
作为一个开发者,有一个学习的氛围跟一个交流圈子特别重要,这是一个我的iOS交流群:638302184,不管你是小白还是大牛欢迎入驻 ,分享BAT,阿里面试题、面试经验,讨论技术, 大家一起交流学习成长!希望帮助开发者少走弯路。
作者:一粒红尘
文章来源于网络,如有侵权,请联系小编删除。