【51CTO独家特稿】架构师,听起来是如此神秘的一个称号。尤其是在开发领域刚入门不久的菜鸟级程序员眼中,架构师都是高手,都是牛人,都是如此高高在上的存在。

不过,在搞了四、五年编程之后,程序员们往往早已失去了当年对这些“高级”职位的神秘感,甚至会对自己所在项目的架构师抱怨不已,背后里称他们是一群水王。所以有江南白衣曾撰文述说:“国内的架构师到了三十岁以后很多就往理论上跑,而国外的架构师在往上发展的同时保持下面的编程体验,所以国内多水王,而国外则多大师。”

这就是我们今天这篇文章的论题:一个优秀的软件架构师,首先一定是一个出色的程序员。

这句话按照Fred George先生的话来说,那就是“不编程的架构师的职业生涯是短暂的”。他说这句话的背景主要是针对有些架构师的设计与实现有断层的问题而言的,因为如果架构师不去实践,只是想当然的认为“没问题,这个想法能实现”,那么对于项目的落实而言是个很大的隐患。支付宝架构师冯大辉也表示过,架构师是一个比较“虚”的岗位,主要的问题都在“落地”的过程中。

而一个架构师确认一个想法究竟能不能落地的最直接的方法,就是自己编写代码,尝试“实现一个系统最难实现的一部分”(Fred George)。看看Fred,他自己就是最好的示范:年纪一大把了,仍然每天都在编写代码。事实上,我们可以列举出一个长长的顶级架构师的列表,你会发现他们没有一个不是顶级的程序员。

我们可以列举出一个长长的顶级架构师的列表,你会发现他们没有一个不是顶级的程序员

不过这在逻辑上或许没有多少说服力,因为似乎这并不能证明一位资深架构师凭自己的经验感觉不能够知道一个想法能不能落实。如果你觉得上面这些只是某些西方老头儿对编程的古怪癖好,那么不妨看看eBay的架构师Randy Shoup先生是如何总结架构师在项目中的职责的:

1. 产品团队要做一个新产品,架构师开工了。架构师要帮助产品团队把可行性、技术需求以及权衡取舍等因素一一剖析清楚。

2. 技术需求出来了,架构师的主要工作开始了:设计整体的技术实现步骤。Randy在后面补充说“大多数成功的架构师都喜欢与其他团队成员一同完成架构和设计这一块的工作”,而认为自己应独自完成这个步骤则是新手架构师常见的误区。

3. 与开发团队一起,完成设计与实施的细节

4. 与开发团队和运维团队一起,完成部署的过程

5. 与运维团队一起,进行部署之后的维护和故障排除

只要稍微思考一下,就会明白此举的重要性。如果一个架构师靠命令管理开发团队,告诉他们“要实现这个模块”,“要实现那个功能”,而团队也尝试照办。可是或许是架构师的要求太高了,或许是团队的开发实力不够,团队成员便会向架构师求助:您看这个我们不知道如何实现,您能否指导一下?架构师可能知道怎么处理,也可能没有仔细思考过这个问题,但又觉得自己做大事者不拘泥于小节也,于是一皱眉头扔下一句:这是你们的事,你们自己解决!

然后就是矛盾的开始了。架构师只觉得团队技术不够,而团队则对架构师愈发不满。项目黄了不说,开发团队中也会传出各种说法,比如说“此君其实是个一行代码也不会写的大忽悠!”

综上所述,便映证了Fred的那句断言:“不编程的架构师的职业生涯是短暂的”。一个架构师不仅要会写代码,还必须要能够写出自己设计的系统中最难实现的那段代码。这样他才能够放心的把“落地”的这个重担交给开发团队来做。

让我用Fred的这句话做为本篇的总结:“一个架构师的价值在于,他不仅能看到系统的美,而且能够在建造系统的时候能够把这些美创造出来。”

是的,每个好架构师都是一位出色的程序员。

本文为《架构师害怕程序员知道的十项技能》中的优秀程序员篇。

posted on 2009-12-29 07:12 大鸟 阅读(143) 评论(0)  编辑  收藏 所属分类: Architecture

bi工程师和java哪个好_每个好架构师都是一位出色的程序员相关推荐

  1. Java .net 心得_我做英文站的心得-如何做好英文站 - 程序员日记 - 做人做技术【关注.NET和JAVA】...

    我做英文站的心得-基础篇 首先:选择自己目前熟悉或者最熟悉的行业产品 关键词 我比较熟悉厨卫的水龙头,水槽,橱柜等,我这样首先确定英文词分别为faucets, sinks, cabinets. 然后按 ...

  2. 一个女bi工程师的java报表工具报表软件升级选型记

    该文章非本人编写,转发自:一个女bi工程师的java报表升级选型记 来源:CSDN  原文:https://blog.csdn.net/weixin_39766068/article/details/ ...

  3. 为什么只有java才有架构师_为什么架构师都是java出身?怎样成为优秀的java架构师?...

    java架构师作为程序员的发展方向,很多程序员都想做架构师,但是同时也不是很明白为什么架构师都是java出身?那么接下来,我们就来给大家讲解一下这方面的内容. 所谓架构师,只是功底深厚的程序员.并且j ...

  4. java工程师应届生工资一般多少,附架构师必备技术详解

    前言 Spring 框架自诞生以来一直备受开发者青睐,有人亲切的称之为:Spring 全家桶. 毋庸置疑,Spring 早已成为 Java 后端开发的行业标准,无数的公司选择 Spring 作为基础的 ...

  5. python架构师是做什么的_什么是架构师?架构师应该具备什么样的能力?

    前段时间网上最流行的三个问题:" 我是谁?"." 我从哪里来?"." 要到哪里去?".这三个问题不只是网上流行的问题也是哲学家们最常思考的问 ...

  6. python 架构师课程_想做架构师应该怎么学习?

    阅读本文大概需要 5分钟. 昨天写的一篇,关于架构师是做什么的文章,之后就有读者在后台问起,说要想成为架构师要具备那些方面的知识,那今天就让我们一起来扒一扒. 曾经有这么个段子:甲:我已经应聘到一家中 ...

  7. java 反射获取属性名和值_阿里P8架构师核心知识点整理:Java基础+spring原理+微服务+算法...

    Java基础 5.1.1. JAVA 异常分类及处理 5.1.1.1. 概念 如果某个方法不能按照正常的途径完成任务,就可以通过另一种路径退出方法.在这种情况下 会抛出一个封装了错误信息的对象.此时, ...

  8. Java并发编程实战_一线大厂架构师整理:java并发编程实践教程

    并发编程是Java语言的重要特性之一, 在Java平台上提供了许多基本的并发功能来辅助开发多线程应用程序.然而,这些相对底层的并发功能与上层应用程序的并发语义之间并不存在一种简单而直观的映射关系.因此 ...

  9. c java开发对比_编程语言:Java和C语言的比较,你更偏向于哪个?老程序员:选C...

    现在在编程语言排行中,Java毫无争议的排在第一位,Python以及C语言紧随其后.现在很多人拿Java以及C语言作比较:有人认为Java作为当前最热门的编程语言,学习Java的出路最大或者说作为一个 ...

最新文章

  1. WEB前端性能优化小结
  2. LAMP:用yum安装
  3. 函数-生成器之斐波拉契数列
  4. 曙光中学2021年高考成绩查询,上海市部分高中2020高考录取喜报,成绩喜人!
  5. 牛客网(剑指offer) 第十六题 合并两个排序的链表
  6. Android 集成高德地图——当前定位,添加图标,画路线,设置显示中心位置,比例,地图刷新位置监听,判断GPS开启,去打开GPS
  7. CSS-posiziton
  8. linux 4.4内核特性,Linux Kernel 4.4.19 LTS长期支持版发布
  9. 第二次提交文件 merge上次版本
  10. nginx 下开启pathinfo模式
  11. linux修改登录密码门,Linux更改用户密码
  12. Glide 4.x之请求网络图片数据流程解析
  13. c语言编程烧烤器,c语言下载
  14. 如何通过抖音来进行广告宣传
  15. idea修改批量替换快捷键,idea快捷键替换处理对象 idea替换快捷键,批量处理对象的操作...
  16. 特别放松:海盗分金问题
  17. Network Password Recovery工具查看windows凭据密码
  18. 分组和聚合函数的组合使用实操
  19. 【JAVA】Java学习方法
  20. Ubuntu Desktop gedit

热门文章

  1. 将敏捷应用于工业机械开发
  2. 行业研究分析-全球与中国Type-C数据线市场现状及未来发展趋势
  3. linux-note:Linux Basics
  4. 基本的规范和约束(一)
  5. python3 pyQt5之listWidget控件的高级运用--将多种控件组合插入其中一行
  6. V4L2视频采集与H264编码2—v4l2采集YUV数据
  7. xshow-1. 项目简介
  8. 遇到的问题要记录下来 javascript值班表
  9. cad与连接mySQL数据库_C++连接mysql数据库的两种方法
  10. HCIE一闪一闪亮晶晶