说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

《程序员必读之软件架构》作者Simon Brown:架构师与程序员的区别

HTML文档下载 WORD文档下载 PDF文档下载
全球知名软件架构独立咨询师、讲师Simon Brown在接受图灵社区专访时,表示开发者和架构师之间最大的区别就是技术领导力。退后一步反观大局是架构师必掌握的核心技能,开发者需经过经验积累才能成长为合格的架构师。

【编者按】Simon Brown是全球知名软件架构独立咨询师、讲师,创办了专门讨论软件架构问题的网站“编码架构”(CodingTheArchitecture.com)。他自称是写代码的软件架构师和明白架构的软件开发者。自2008年以来的7年时间里,Simon在全球28个国家做过有关软件架构、技术领导力及其与敏捷的平衡等主题的百余场演讲,并于2012年8月在中国举办的ArchSummit全球架构师峰会上以“郁闷的架构师”和“如何设计安全的架构”为主题发表演讲,深受与会者好评。Simon已为全球20多个国家的软件团队提供咨询和培训,他的客户既有小型技术初创企业,也不乏全球家喻户晓的品牌公司。Simon著有《程序员必读之软件架构》一书,他在这本书中打破传统的认知,模糊软件开发和架构在流程中的界限,进而为软件架构正名。近日图灵社区围绕程序员与架构师的区别对Simon Brown进行了访谈,下面为访谈内容。


问:开发者和架构师之间最大的区别是什么?

Simon Brown:架构师和开发者一样,也经常写代码,简单的说,开发者和架构师之间最大的区别就是技术领导力。软件架构师的角色需要理解最重要的架构驱动力是什么,他提供的设计需要考虑这些因素。架构师还要控制技术风险,在需要的时候积极演化架构,并且负责技术质量保证。从根本上讲,架构师是一个技术领导者的角色,这就是最大的区别。

问:一位开发者如何才能成为一位架构师?他/她需要掌握哪些领域之外的能力?

Simon Brown:两个字:经验。我认识的大部分优秀软件架构师同时也是出色的软件开发者,他们都是经过时间逐渐发展成为架构师的。你需要有退后一步看代码的能力,从而理解特定软件系统背后的设计决策。退后一步才能看到“大局”,这是架构师必须掌握的核心技能。这就是为什么《程序员必读之软件架构》一书中加入了有关C4模型的内容,这是一种从多个不同抽象层面理解软件系统的方法。这个方法有助于你退后一步反观大局。

问:你对软件架构的理解是否因为你的经历和实践而改变过?

Simon Brown:是的。我对软件架构的理解是根据我在咨询公司工作时在各个项目中负责软件架构的经验形成的。咨询是一件好事,尤其从最近我开始从事独立咨询师这个工作之后,我可以看到很多不同的团队,不同的架构,不同的技术,以及人们不同的工作方式。世界各地的文化多样性又为工作的复杂度增加了一个维度。无论是寻找特定问题解决方案的过程,还是为各种想法去芜存菁的过程,这些经验和与我共事的人的反馈一起最终形成了我今天对软件架构的认识,这些思维也反应在了我的书中。

问:你书中的每一章内容都很有趣而且很精炼,有没有想过写几本详细论述《程序员必读之软件架构》中重要话题的书?

Simon Brown:我写作这本书的目的是要创造一本让读者可以从头读到尾的书,但是你也可以通过粗略浏览来找到具体问题的答案。对于这个问题来说,没错,有一些相关主题没有出现在这本书中,这些主题可以构成一本与《程序员必读之软件架构》相互补的书。比如,图表和建模的材料就可以扩充成一本完整的书,另外我和一个朋友也讨论过要写一本关于架构模式的技术性更强的书。

问:你在书中也谈到了敏捷方法,你是如何看待现在流行的"敏捷已死"的说法的?

Simon Brown:我听过很多人说“敏捷已死”,他们观点似乎来自两个主要视角。首先,敏捷这个品牌现在虽然已经成为主流,但是其背后的一些意义却在近些年消失殆尽。遵循敏捷实践的软件团队有很多(比如每日站立会议,测试驱动开发等等)但是他们却并不知道为什么要遵照这些规则。盲目仿效敏捷实践并不是敏捷的核心精神。

还有一些团队,他们尝试了敏捷,但是结果却一团糟。我从软件架构的视角特别能注意到这件事。大部分敏捷方法并不明确讨论预先设计,而很多人把这点误解为在敏捷项目中不需要做预先设计。当然,这不是事实,而现在人们开始寻找所谓的传统开发和敏捷开发之间的平衡点。

敏捷并没有死。采用敏捷方式意味着不断地反思和调整你使用的方法,从而达到解决问题、变得更有效率或者更频繁地交付优秀软件的目的。团队要如何完成这件事完全是由他们自己决定的。

问:作为技术领导者,如何协调一个大型项目中不同架构师的协同工作?

Simon Brown:这是一个复杂的问题,根据背景的不同,答案也有很多。在我的经验里,大多数大型项目都包含有一些小团队,可能是根据技术类型、子系统或组件区分的。在这种情况下,每个团队一般都会有自己的软件架构师,因为必须有人要为这些零散的部分负责。为了要管理整个项目,协调合作,有以下几种方式:

一个单独的架构师来管理整个项目,然后通过和基于团队的架构师的合作来确保工作顺利进行。

基于团队的架构师共同协作,分享和执行架构领导者的角色。

某一位基于团队的架构师额外花费一些时间来管理整个团队。

第一种方式是我最不喜欢的,因为多出来的这个人可能不会像其他基于团队的架构师那样投身到每天的工作中,而且他有可能缺少必要的背景信息,无法做出明智的决定。在第二种和第三种方式之间选择的时候,我们可以根据基于团队的架构师的领导力和兴趣来决定。比如,强制一个不感兴趣的人来管理整个项目可能不会成功。我个人比较倾向于第三种方式,但前提是其他基于项目的架构师也应该以某种程度参与进来,因为对整个项目的理解是必不可少的。

问:复杂是软件架构的敌人,很多人欣赏那些已经用了十几年的架构,但是这种情况下多场景预判会使得程序变得复杂。你是如何规划架构时间点上的规模和设计的呢?

Simon Brown:简单的答案就是一开始就使用简洁的设计,然后明确地思考模块化。软件系统随着时间很容易就会发展成“大泥球”,对于需求不断变化的软件系统来说,维护性和适应性的最大影响因素就是不同事物间的耦合程度。如果你从一开始就考虑了模块化,把软件系统分解成高内聚低耦合的小模块单元,在未来你就可以更轻易地对系统做出改变。更进一步说,这意味着你定义的软件架构应该反映在代码中。正如我在书中所说,事实并不永远如此。我去年在一次大会中的演讲(抱歉,演讲是英文的而且在YouTube上)中深度讲解了这个话题->https://www.youtube.com/watch?v=ehH3UGdSwPo

问:你认为从10万用户扩展到1亿用户的架构存在吗?如果存在的话,这些架构具有超强扩展性的原因是什么?

Simon Brown:我确定这样的架构确实存在,但是在构造这些架构之初时,架构师可能并没有设想到如此强的扩展能力。每个互联网级别的大型网站背后的故事都很有趣,它们大多数都已经经历过在开发、部署、运维的同时持续发展架构的阶段。做出架构决策的关键就在于理解利弊和确定优先级。你可以在CAP定理中看到类似的情况。一旦你明白了不能拥有一切,就会更容易做出架构决策了。

问:什么样的架构能够做到快速响应频繁变化的需求?

Simon Brown:和之前的答案一样,简洁的设计和模块化会让你可以快速响应快速变化的需求。如果你需要经常改变架构,但只想改变其中的一部分,为了防止为每个小变化重新部署整个系统,采用微服务架构是一个明智的选择。

问:有没有什么事是架构师永远都不应该做的?

Simon Brown:有,软件架构师永远都不应该停止编程和停止学习!

新环境下的新体验是互联网硬件火热的根本原因 信息安全救星 ——变形代码产品ShapeShifter AWS启动大规模降价,引领行业降价潮流 Windows 8.1 Update 1最新版的截图再遭曝光 2013年软件领域因缺陷导致的五大事件 专访AMD技术高管 详解Kaveri技术性能及新开发特性 网络的东西南北:从SDN到网络虚拟化 Bug让Chrome浏览器成了窃听器 联想23亿美元收购IBM X86服务器硬件及服务 Mozilla联手富士康推出Firefox OS平板 基于Web提供服务 GitHub中国游记最终回——开源与车库的碰撞 学以致用,光棍极客通过大数据搞定女朋友 1月24日:Mac步入了而立之年,生日快乐! 微软2014财年Q2财报:Surface营收翻倍 趣文:假如编程语言在一起聚餐 AOL收购个性化服务公司Gravit,耗资9070万美元 谷歌三月将办Pwnium 4黑客大赛 奖金高达271.828万美元 研发周报:精简代码,为网站减负的十大建议 教育自由日:让教育资源更开放 Win8.1下解决IE11浏览器不兼容的方法 移动周报:找你妹版权战、访俄民手游、GitHub游记终回 一周消息树:1月23日全国顶级域名根服务器疑遭黑客攻击 影响巨大 下一代互联网搭建技术:高空气球,无人机,又或是卫星? 红帽认证总监:10个架构师里有4个在中国 数据中心优化的5个途径:软件定义、云计算等 收购诺基亚,微软能否再度崛起? 一周热点:阿里专家深度解析分布式系统,美团数据挖掘工程师分析企业大数据 独立游戏节:学生展示优胜者奖项得主揭晓 专访Meetup Andres Glusman:解析UX、精益创业方法论背后的强大力量 开发者不容错过的12款开源JavaScript库 搭载FusionCube,HANA内存计算助力实时运营 调查:北京和上海的pb 的程序员能挣多少钱? 谁知道用odbc连接infromix online参数怎么设?(50分 ) ASP如何实现票据打印 请问MYSQL可以支持哪些数据库文件或表格的导入? 急死我了!求教高手有关焦点的问题! 谁有《COM技术内幕》的第13章的例子的源码,送100分,谢谢先! mysql的最大链接数在哪里修改? 图像区域选取,高分求解! Shell_NotifyIcon问题 在PL_SQL中怎样用一个表中的数据去更新另一个表 oracle 9初学者 sybase的JDBC驱动字符串是什么阿?? 如何播放Flash? 我的IE不能自动填写域名了!!!第一个答对者20分! 一個很簡單的問題,在線等候,謝謝!! /usr/bin/top的原码在哪个路径下啊?小弟找了好久还是找不到急啊! 尊敬的流芳先生: 程序员考试中的一道很简单的c试题,有个问题 Sun Blade 2000 要多少钱? 活动目录中,遇到这个问题。 我的机器用程序向局域网内的另外一台机器发送一条信息,类似于发送控制台信息 [请教]会用客户端ftp软件客户端代理功能的进来帮帮忙 急求VCD的Specification! 在线紧急求助!!! 在MDI中如何更改子窗口标题? 请问有哪位好心的大哥能给我一个Bounds Checker V601_D.exe 的序列号? 100分求助如何在iPlanet中配置cgi-bin? 高分求助:请问如何确定某个窗口是否存在? 怎么样在vb中把一个excel表的数据拷贝到另一个excel中(包括行高,列宽,字体等) In Pro*c, 为什么我不能用#define UNAME_LEN 20 去定义常量. 高分 高分求《.NET开发的最佳实践与案例分析--北京讲座》示例源码及相关资料!!! 请教高手 那们有 AlphaBlend 函数的帮助中英文都行。 麻烦大家帮我看一下,代码错在那里。 详细说说rs.open sql,conn,Cursor Type,LockType 紧急求救!在线等待: 哪里可下载INTEL IPL库? 关于 我的GNOME的主Panel消失了,我该怎么办???? 一个C程序的问题求助! 请大家推荐一个支持EJB2.0 的免费的应用服务器 运行时建立数据库表 麻烦各位一下,这个错在哪了? 关于access关于自动增量的字段! 关于快捷菜单的问题。 世界上最大规模的大学生群架[真实](转载) win2000日文版与98SE怎么连接? IE6下注销用户的问题。 在线等待! 高分求助! 谁知道哪里有VB7的电子书?? php如何在长字符串中加<br>换行符,以达到强制换行目的?? 如图所示电路中,电源电压恒定,断开S1,S3,闭合S2,两电表均有示数;在断开S2,闭合S1,S3,此时两电表的如图所示电路中,电源电压恒定,断开S1,S3,闭合S2,两电表均有示数;在断开S2,闭合S1,S3, 关于南岳游记的作文我要写一篇南岳游记,虽然我去过南岳,但看了些什么我都忘了.希望大家提供些关于南岳的景色、历史、文化、传说(如果南岳有传说的话)的素材,或者告诉我写游记的方 为什么UFO出现的这么频繁呢? 我想对凡卡说300字 想去衡山旅游,想知道衡山有哪些特产?想买点特产回来送老爸和岳父 为什么外星人频繁出现不论是杭州还是广州均有大量Ufo的出现,我们国有什么值得它们频繁造访 凡卡续写300字 看云识天气 "云就像是天气的招牌" 把招牌换成代表好不好为什么 9月1日20:00,小明用天文望远镜观察到正北方向有一颗恒星,不移动望远镜,9月16日何时才能观察到这颗恒星 有错别字的街道名称急用! 哀词和冰神读后感 一个电子像一个固定不动的质子运动时,则1.有可能发射电磁波2.不.3.电子和质子组成的系统能量一定守恒4.电子和质子组成的系统动量守恒为什么不选3呢? 《天上的街市》的习题读了《天上的街市》,我仿佛看到了:( ). 续写凡卡300个字啊不过记住,在当时沙皇统治下,是不能有什麽好结局的.只会有死路一条.不要太长啊 关于各种花的文章和各种花的话花语求牡丹,茉莉,梅,桃花,向日葵,玉兰,紫罗兰,满天星,海棠的相关文章,要是名作家写的哦!如果知道一个,就说一个,说过的就不要再说了,全知道的正好,还有花 仿照五年级上册的语文书中的一篇课文《冬阳•童年•骆驼队》第四段写关于小动物的一段话!写两三句话就行!不要太多!小动物的!最好是小狗小猫~我说是最好,不是也行! 《凡卡》的续写(300字以上) "他不是个做事情的人" 如何翻译成英文? 有努力才有真正的美丽 美文400字左右 有的发 凡卡的续写300字以上. 这不是正常人会做的事 怎么翻译成英语 记金华的双龙洞,按浏览顺序依次写了双龙洞的什么? 六年级课文有破折号的句子 哪有高一英语听力 课文手指的理解和感受课文[手指]中说说对它的理解和感受 说说自己的见解是怎样获得的 是如何加深的 错别字作文要400字 艾青 太阳的话 的写作背景就是她当时是在什么样的环境下写的这首诗? 手指 这篇课文最后一自然段有三对反义词 第一对是什么?找不到. 已知α+β=1,αβ=-1,S1=α+β,S2=α^2+β^2,S3=α^3+β^3…Sn=α^n+β^n(1)计算S1= ,S2= ,S3= ,S4= (2)试写出Sn-2,Sn-1.Sn三者之间的关系式(3)根据以上得出的结论α^7+β^7 东阳·童年·骆驼队有那4个片段 大街上的错别字 街头错别字作文400字 要有2个具体事例哦 谢 太阳的话.白桦的写作背景 (√1)^2+1=(√2)^2=2,S1=2分之√1 ,(√2)^2+1=(√3)^2=3.S2=2分之√2 ,(√3)^2+1=(√4)^=4,S3=2分之√3用含有n的等式表示上述变化规律;求(S1)^2+(S2)^2+(S3)^2+.+(S10)^2的值.三角形两条直角边与斜边的关系,用一 “人的一生有两件事不可避免:死亡与纳税” 英语翻译好像是一个外国名人说的,大家有知道原文是怎么样的吗?谢谢啦!对了,那个外国人叫啥呀?谢谢 阳光季节 seasons in the sun写作背景 这些话中的破折号有什么作用(人教版小学语文六年级上册19课一面《5+2》上的题目)填序号破折号的作用:1.表示解释说明;2.表示话题转换;3.表示事项的列举;4.表示声音的延续、拖长; 高一英语听力人教版求回复 《东阳·童年·骆驼队》可分为哪四个片段 求六年级现代文·文言文点击《天上的街市》答案,请尽快给予答复,thank. 中国人民从此走上了自力更生的道路 这句话有什么错别字?实在是找不到了……请热心的人们帮找找……三楼的同志,我打的字不可能会错吧……不过呢,印错倒是很有可能…… …… 三个太阳写作背景 求以美丽无须包装为题的作文开头与结尾! 怎样下载高一下学期英语听力 西域男孩创作"season in the sun"的背景故事?听说很让人感动.要主要的故事就好了. 六年级点击《天上的街市》答案!~~~急!~~~~~~~~~~ 去杭州旅游 景点 如西湖十景 美食~啥的5月底要去杭州玩玩 3天的时间 麻烦各位熟悉杭州 了解杭州景点游玩情况的朋友指导一下 具体就说说杭州有啥好玩儿的地儿 这三天怎么安排 游西湖的 记金华的双龙洞的游览顺序,明天要交的!叶圣陶写的!.题是这样的:游览的顺序依次是--------、---------、---------、--------------------,最后-------------. 六年级第一学期语文《点击》答案 杭州的新西湖十景的旧西湖十景有哪些不光要名字还要有简介 记金华的双龙洞是按什么游览顺序 诗歌第一节中的动词可以互换位置么?为什么?神话传说中的牛郎织女,最终被王母娘娘用“天河”隔开,只有在阴历七月七日这一天才能相见,是一个悲剧故事.而作者在诗中却写得那样畅快,“天 哪里可下载新标准高一英语听力 英语翻译 天上的街市点击答案急用,现在必须要! 英语翻译是不是:there are something that just short memories.语法对么?如果不对应该是什么呢? 文言文《大道之行也》怎么解释 找错别字,错别字什么的最讨厌了 游衡山记不要抄的 要自己写的。 为什么现在UFO 这么频繁啊?最近的 广州 8.30的视频2次出现 今年还有 智利的UFO 视频 说实话我就算亲眼看到 也会认为是假的 我的意思是说:如果是假的 那些拍的是什么东西啊 国家研制的秘
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘