如何成为一个架构师?
在大学期间我曾多次听到“架构”这个词,认为这个一个非常高大上,非常高深的词。通过阅读《架构漫谈》,我跟着作者举的一个个例子逐渐理解了什么是架构。首先,架构不是凭空产生的,它产生的原因是:
1,必须由人执行的工作 2,每个人的能力有限 3,每个人的时间有限 4,人对目标系统有更高的要求 5,目标系统的复杂性使得单个人完成这个系统,满足条件 2,3
其次,架构是什么,或者说一个架构师需要做什么:
1,根据要解决的问题,对目标系统的边界进行界定。 2,并对目标系统按某个原则的进行切分。切分的原则,要便于不同的角色,对切分出来的部分,并行或串行开展工作,一般并行才能减少时间。 3,并对这些切分出来的部分,设立沟通机制。 4,根据 3,使得这些部分之间能够进行有机的联系,合并组装成为一个整体,完成目标系统的所有工作。
举个例子:我认为好的架构师就像一个导师,带领一队学生向同一个愿景前进;
(1)首先分析任务,确定要解决的核心问题是什么,其他的问题是什么,这些问题如果解决,什么人会受益,如果没解决,会影响到什么人;
(2)接着导师会根据每个学生的能力合理的切分任务并分配任务,确保每个学生都会去做最擅长的领域的工作;
(3)其次导师在学生之间建立一定的工作机制和沟通机制,根据每个学生所负责的工作分配成为一个个大的模块;确保每个学生遇到问题后知道最先去找谁,从而问题能及时解决;
(4)最后导师将这些模块相互有机的连接起来成为一个整体,让一个模块需要调用另一个模块的功能时能够方便快捷的沟通并达到目标效果。
好的架构师会借助于讲故事、影响力、引导冲突、构建信任等领导技能,将他们的架构愿景变成现实。
架构师需要的职业素养有哪些?
(1)架构师要有丰富的开发经验,掌握开发技术。每个公司的架构师都是从底层开发升迁上去的。就像一个好的将军,他首先要有丰富的实战经验,懂得每个职位的人需要什么,每个职位的人有什么共性。不然像赵括一样肚子里一大堆兵法,却从未有过在战场亲自参加战争的经历,最终下达的计划只是纸上谈兵。读史可以明鉴,同样一个架构师如果没有实际开发经验或开发技术,他就不可能去合理的分析完成业务需要的成本。
(2)架构师并不能只“居庙堂之高”而不知“江湖之远”;如果一个架构师习惯站在一个高高在上的位置去指导工作,那么他便不知道任务进行过程中会遇到什么意想不到的问题比如要解决某个问题需要什么技术最合适等;因此架构师应该多与开发人员待在一起,花一些时间在代码上。了解系统的构建方式及系统的约束将帮助架构师在当下环境做出正确的选择。
(3)架构师要会站在多个角度分析系统,就如之前提到的要能够满足不同利益相关者的需求。站在客户的角度,应该明确清楚真正的客户到底想要什么,在客户提出的N个需求中,他想要的核心功能是什么;除了这N个需求外,他还能用到什么便捷的功能。站在公司不同职位的角度,应该明确不同环节的工作人员他们会怎么看待自己分配的任务,平衡不同职位的工作,通过各种方式避免工作人员之间的冲突,歧视,构建相互信任等。
(4)架构师要能够真正的站在公司的高度去分析系统,架构师应该综合多个因素去分析要实现自己制定的计划的成本,同时要考虑如果客户的需求变更自己的计划能不能及时进行调整,如果出了什么问题需要承担什么样的后果以及如何进行挽救能让损失尽可能的小;架构师处于一个高层领导的地位,就应该充分地考虑可能出现的任何问题,稍有忽略便会造成极大的损失。把架构师领导团队想象成为一个将军领导一支军队;古话说“一只狮子领导一群羊会战胜一只羊领导一群狮子”,因此架构师的能力会决定系统完成所需要的时间成本和经济成本。
(5)架构师要有良好的沟通协调能力,架构师会和很多直接参与开发系统部门和非直接参与开发系统部门:财务,统计等的人打交道,去共同为完成某个系统而给力的合作。
当然上面这些是基本的职业素养,还有必须具备的便是什么“一个成功人士能够成功的秘诀”等网上一搜一大堆的基本素质;至于具体的专业技术素养需要哪些我目前也不是太了解。
来源:https://www.cnblogs.com/lq13035130506/p/12332292.html