架构师应该是我们大多数程序员的成长目标之一,往往遗憾的是我们大多数人都成为不了架构师,这是不是很魔幻?我从事编程的工作已有八年(年头久不是罪啊),在摸索和沉淀了这些年,我对架构师可能有了些自己的理解。
我理解的架构师是:首先应该能解决问题,从复杂的问题中,梳理出来解决问题的方法。不过具体起来,多数人的工作都在一个循环中实现:定义问题的描述,提出解决方案,后落实拿结果。
软件哲学里其实有很多问题都是互斥的,你实现了一,很可能要放弃实现二,这个平衡的取舍,就需要很具体的抓手,我们做前端的,重要的就是“用户体验”,但用户体验上,有很多问题需要处理,比如稳定性,秒开,启动耗时等等,这主要去衡量这些指标中在当前的阶段是否重要,架构师需要遵循这些路径,去提炼当前什么重要。
如果你的业务在这个阶段,重要的问题是如何保障稳定性,那么这就是你要定义的问题,并且沿着这个路径,去思考有哪些手段可以保障稳定性。
另外每一个人的认知其实是有局限的,如今知识大爆炸,有很多信息,需要经过有效的筛选,架构师在团队合作中,也起到了一个桥梁的作用,在推动事情向前发展上,举足轻重。
我想架构师应该还要具备很强的分析能力,我觉得这个分析能力往往和具体的业务有关系,之前我们有一个职位叫:业务架构师。这个上面,每个行业的积累很难通用,不过这种分析的能力,也有很重,当你能把这个事情分析清楚,梳理出来一二三四点,这个事情就很清晰了。