`
给一理由先
  • 浏览: 23085 次
  • 性别: Icon_minigender_1
  • 来自: 衡阳
文章分类
社区版块
存档分类
最新评论

【转】不是每一个程序员都能够成为一个架构师

阅读更多
网络工程师培训:不是每一个程序员都能够成为一个架构师

不是每一个程序员都能够成为一个架构师——这是开发界广为流传的一个论调。架构师群体往往对这个言论表示默许,这不得不令广大入门不久的程序员们怀疑架构师们是不是隐藏了什么武林秘籍。程序员要修炼什么武功才能晋升为一个架构师?

架构师最怕程序员知道的十件事

艺术气质
管控能力
权衡取舍
内力
沟通能力
多领域知识
问题解决大师
技术前瞻性
抽象思维
卓越的程序员

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

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

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

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

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

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

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

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

1. 产品团队要做一个新产品,架构师开工了。架构师要帮助产品团队把可行性、技术需求以及权衡取舍等因素一一剖析清楚。
2. 技术需求出来了,架构师的主要工作开始了:设计整体的技术实现步骤。Randy在后面补充说“大多数成功的架构师都喜欢与其他团队成员一同完成架构和设计这一块的工作”,而认为自己应独自完成这个步骤则是新手架构师常见的误区。
3. 与开发团队一起,完成设计与实施的细节
4. 与开发团队和运维团队一起,完成部署的过程
5. 与运维团队一起,进行部署之后的维护和故障排除

在这个过程中,一个架构师至少有一半以上的工作是需要与开发团队一起进行的。按照Randy的描述,这是“一个架构师不能将实施细节抛之脑后”的体现。而且与开发团队一起工作,命令式的领导方式并不被推崇,一个架构师必须通过自己的个人影响力来对开发团队进行指导工作。而什么是影响力?说的直白一些,就是通过自己写代码以及和其他成员一起写代码,来指导团队成员实现每个架构细节的思路。

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


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

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


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

女性架构师优先?驾驭概念的技能是最高潜力

在近日对数位架构师进行采访的时候,编辑观察到一个很有意思的现象,那就是他们在提起一个假想架构师的时候会下意识的使用“she”或者“她”来指代。然而我们这次采访到的的架构师们却全都是男士,这似乎是一个比较难以理解的现象。

对高级架构师王翔先生的访谈似乎能在一定程度上解答这个现象的由来。在访谈中,王翔先生说到自己在特定情况下会优先培养女性做为架构师,因为“架构师在创造性、知识汇总方面根据个人经验似乎女性更适合。


无论王翔先生的个人经历是否常态,既然说男人来自火星而女人来自金星,那么这至少表明是否适合架构师一职与人的思维模式有很大关系。在这一系列的访谈中,所有接受采访的架构师们都一致的表示逻辑思维和抽象思维能力是一个架构师最重要的素质。eBay的Randy Shoup先生称拥有条理清晰的逻辑思维能力的人“就像稀有动物那样难找”。Fred George则表示“驾驭概念的技能,在我看来是每一个人最高的潜力”,并表示自己不太介意这样一个苗子在其他方面的技能和经验的匮乏,因为在他看来除了思维之外的其他因素都是可以培养的。



转载自:
http://www.netdigedu.com/jiagoubaike/11268.html
分享到:
评论

相关推荐

    李运华老师的从0开始学架构

    每个程序员心中都有一个成为架构师的梦想,梦想是美好的,但道路是曲折的。 李运华老师大概在2006年开始參与架构设计,原本以为学习架构设计就像学习一门编程语言一样,先学习一下基本的语法,再研究一下细节和原理...

    程序员面试刷题的书哪个好-dzkj:《架构师入门-从被骗到坐牢》

    我是一个架构师,从程序员开始,一步步学习技术,终于成为集架构、后端、运维、AI一体的架构师,就在我以为终于达到小时候努力的终点,成为一名科学家,能在研究院开启美好的生活的时候,灾难却来临了。之后的一段...

    Axure手机框架原型.rp

    Axure Iphone8 简单原型案例,让个个都成为产品经理。...Axure RP的使用者主要包括商业分析师、信息架构师、产品经理、IT咨询师、用户体验设计师、交互设计师、UI设计师等,另外,架构师、程序员也在使用Axure。

    Google_MapReduce中文版-系统架构

    ·五年Skype架构师之路的感言 ·深入分析IBM的云计算解决方案 PuzzleGames.alot.com Google 提供的广告 Google 提供的广告 Google Google推广 Google代理 C# Mapreduce Google优化 Google 提供的广告 Google AD ...

    java开源包1

    Chronicle 是一个超低延迟、高吞吐、持久化的消息和事件驱动的内存数据库,延迟只有16纳秒以及支持每秒钟 500-2000 万消息/记录。 google-api-translate-java(Java 语言对Google翻译引擎的封装类库) 语音识别程序 ...

    java开源包11

    Chronicle 是一个超低延迟、高吞吐、持久化的消息和事件驱动的内存数据库,延迟只有16纳秒以及支持每秒钟 500-2000 万消息/记录。 google-api-translate-java(Java 语言对Google翻译引擎的封装类库) 语音识别程序 ...

    java开源包2

    Chronicle 是一个超低延迟、高吞吐、持久化的消息和事件驱动的内存数据库,延迟只有16纳秒以及支持每秒钟 500-2000 万消息/记录。 google-api-translate-java(Java 语言对Google翻译引擎的封装类库) 语音识别程序 ...

    java开源包3

    Chronicle 是一个超低延迟、高吞吐、持久化的消息和事件驱动的内存数据库,延迟只有16纳秒以及支持每秒钟 500-2000 万消息/记录。 google-api-translate-java(Java 语言对Google翻译引擎的封装类库) 语音识别程序 ...

    2010 SD2.0大会演讲实录.doc

    我想大家都读过这本书《异类》,为什么比尔盖茨成为比尔盖茨,是世界上最早花一万个小时做一个软件的,这个道理到了Facebook阶段就不成立了。为什么Facebook就成了创始人?而且这个技术可能比在座的各位,很多都还...

    java开源包6

    Chronicle 是一个超低延迟、高吞吐、持久化的消息和事件驱动的内存数据库,延迟只有16纳秒以及支持每秒钟 500-2000 万消息/记录。 google-api-translate-java(Java 语言对Google翻译引擎的封装类库) 语音识别程序 ...

    java开源包5

    Chronicle 是一个超低延迟、高吞吐、持久化的消息和事件驱动的内存数据库,延迟只有16纳秒以及支持每秒钟 500-2000 万消息/记录。 google-api-translate-java(Java 语言对Google翻译引擎的封装类库) 语音识别程序 ...

    java开源包10

    Chronicle 是一个超低延迟、高吞吐、持久化的消息和事件驱动的内存数据库,延迟只有16纳秒以及支持每秒钟 500-2000 万消息/记录。 google-api-translate-java(Java 语言对Google翻译引擎的封装类库) 语音识别程序 ...

    java开源包4

    Chronicle 是一个超低延迟、高吞吐、持久化的消息和事件驱动的内存数据库,延迟只有16纳秒以及支持每秒钟 500-2000 万消息/记录。 google-api-translate-java(Java 语言对Google翻译引擎的封装类库) 语音识别程序 ...

    java开源包8

    Chronicle 是一个超低延迟、高吞吐、持久化的消息和事件驱动的内存数据库,延迟只有16纳秒以及支持每秒钟 500-2000 万消息/记录。 google-api-translate-java(Java 语言对Google翻译引擎的封装类库) 语音识别程序 ...

    java开源包7

    Chronicle 是一个超低延迟、高吞吐、持久化的消息和事件驱动的内存数据库,延迟只有16纳秒以及支持每秒钟 500-2000 万消息/记录。 google-api-translate-java(Java 语言对Google翻译引擎的封装类库) 语音识别程序 ...

    java开源包9

    Chronicle 是一个超低延迟、高吞吐、持久化的消息和事件驱动的内存数据库,延迟只有16纳秒以及支持每秒钟 500-2000 万消息/记录。 google-api-translate-java(Java 语言对Google翻译引擎的封装类库) 语音识别程序 ...

    java开源包101

    Chronicle 是一个超低延迟、高吞吐、持久化的消息和事件驱动的内存数据库,延迟只有16纳秒以及支持每秒钟 500-2000 万消息/记录。 google-api-translate-java(Java 语言对Google翻译引擎的封装类库) 语音识别程序 ...

    Java资源包01

    Chronicle 是一个超低延迟、高吞吐、持久化的消息和事件驱动的内存数据库,延迟只有16纳秒以及支持每秒钟 500-2000 万消息/记录。 google-api-translate-java(Java 语言对Google翻译引擎的封装类库) 语音识别程序 ...

    JAVA上百实例源码以及开源项目源代码

    6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用...

    JAVA上百实例源码以及开源项目

    6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用...

Global site tag (gtag.js) - Google Analytics