一、什么是架构师? 1、从内心讲我真的不想回答架构具体需要做什么,架构师应该具体负责什么。因为从实际情况看,在不同的系统层级,不同的需求下架构师的职责也会不同;从不同的技术角度看,架构师又是个变色龙——一时是技术的大拿,一时是技术的规划者,一时是技术团队的指挥者。 2、那么,该如何回答“什么是架构,什么是架构师”这个问题呢?这或许需要先搞清楚另外一个问题——一名程序员是如何走上架构师之路的?我从许多朋友那里了解到了很多实际案例,程序员走上架构师之路,总结起来最多的原因是因为他早前代码写的好。 3、那么,代码写的好就是架构吗?显然不是。代码写的好只是表象,做所有事情都需要规划,尤其是一个复杂的软件系统,这更需要规划,否则可能连一行代码都写不出。复杂的软件系统一定会需要做很多抽象设计、对象规划、接口规划等准备动作。也就是“上一辈程序员”口中所说的:详细设计。做架构主要的事情也依旧如此,需要对整个系统进行系统的规划:模块、通讯、边界、扩展、技术下沉等工作。这样的规划完成之后项目方能正常跑起来。 4、当然,架构也不仅仅是规划,还要做的另一件大事就是技术识别。识别出系统中技术的难易区域,并分解复杂技术,使之成为一个个技术的黑盒子,在此之上再进行新的技术规划,使整个系统从技术角度来看是分层次的,从难到易,从大到小,但各层之间又是互相的黑盒。这也常说的让系统模块间达到“鸡犬相闻老死不相往来“的状态。 5、一个架构师需要足够的技术的宽度。从软件到硬件,从开发到测试,从运维到安全等