日期:2022/04/16 08:14作者:佚名人气:
【51CTO独家专访】建筑师,听起来好神秘的称号。尤其是在开发领域刚刚起步的菜鸟级程序员眼中,架构师都是高手,都是大人物,都是那么高级的存在。
51CTO开发频道年终表彰:架构师最怕程序员知道的10件事
然而架构师,在为四、编程五年后,程序员往往早已失去了对这些“高级”职位的神秘感,甚至向自己项目的架构师抱怨,称自己是一群水王。 . 因此,江南百一曾写过一篇文章说:“国内很多建筑师到了30岁以后才去理论,而国外的建筑师在向上发展的同时保持着下面的编程经验,所以中国有很多水王,而国外的建筑师那么许多大师。”
这就是我们今天这篇文章的主题:一个好的软件架构师首先必须是一个好的程序员。
这句话,用弗雷德先生的话来说,就是“不编程的建筑师的职业生涯是短暂的”。他说的背景主要是针对一些架构师在设计和实现之间存在差距的问题,因为如果架构师没有实践,只是想当然地认为“没问题,这个想法可以实现”,那么对于项目实施来说是一个很大的风险。支付宝架构师冯大辉也表示,架构师是一个比较“虚拟”的职位,主要问题在“落地”的过程中。
架构师确认一个想法是否可以实现的最直接方法是自己编写代码并尝试“实现系统中最难的部分”(Fred)。看看 Fred,他就是一个很好的例子:年纪大了很多,仍然每天都在写代码。事实上,我们可以浏览一长串顶级架构师,你会发现他们都不是伟大的程序员。
我们可以浏览一长串 *** 架构师,你会发现他们都不是不是 *** 的程序员
不过,这在逻辑上可能并不令人信服,因为这似乎并不能证明高级架构师根据自己的经验不会觉得他不知道一个想法是否可行。如果你认为以上只是一些老西方人对编程的一些古怪爱好,那么看看 eBay 架构师 Randy Shoup 先生是如何总结架构师在项目中的职责的:
1. 产品团队即将做一个新产品,架构师已经开始了。架构师帮助产品团队清楚地分析可行性、技术要求和权衡等因素。
2. 技术需求出来了,架构师的主要工作开始了:设计整体的技术实现步骤。Randy 后来补充说,“大多数成功的架构师都喜欢与其他团队成员一起完成架构和设计”,而新手架构师普遍的误解是认为这一步应该单独完成。
3. 与开发团队合作完成设计和实现细节
4. 与开发和运营团队合作完成部署过程
5. 与运营团队合作进行部署后维护和故障排除
#T#在这个过程中,架构师至少有一半以上的工作需要与开发团队一起进行。正如 Randy 所描述的,它是“一个不能把实现细节抛在脑后的架构师”。和开发团队一起工作,命令式的领导是不被推崇的,架构师必须通过自己的个人影响来指导开发团队。什么是影响力?说得更直白一点,就是通过自己写代码,和其他成员一起写代码的方式,引导团队成员去实现每个架构细节的想法。
只需稍加思考即可了解这一举措的重要性。如果架构师按命令管理开发团队,告诉他们“实现这个模块”、“实现那个功能”,然后团队试图遵守。但是可能架构师的要求太高了,或者团队的开发实力不够,团队成员会向架构师求助:你看,我们不知道怎么实现,请指导一下好吗?架构师可能知道怎么处理,也可能没有仔细考虑过这个问题,但他觉得自己不拘泥于小细节,于是皱着眉头扔了一句:这是你的事,你解决你自己!
然后矛盾就开始了。架构师只觉得团队不够熟练,团队对架构师越来越不满。就算项目黄了,开发组里也会有各种各样的意见,比如“这位先生居然是一行代码都不会写的大傻瓜!”
总之,这证实了 Fred 的断言:“不编程的建筑师的职业生涯是短暂的。” 架构师不仅要能写代码,还要能写出他设计的系统中最难的部分代码。这样,他就可以放心地将“落地”的重担交给开发团队了。
让我用 Fred 的话来结束这篇文章:“架构师的价值在于他不仅能看到系统的美架构师,而且能够在构建系统的同时创造美。”
是的,每个优秀的架构师都是优秀的程序员。
本文是《架构师怕程序员知道的十大技能》中一篇优秀的程序员文章。