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

《程序员必读之软件架构》作者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:有,软件架构师永远都不应该停止编程和停止学习!

触宝用户过亿,CEO王佳梁常说的词是“创新” 全国电脑健康日启动 360搭建电脑维修开放平台 C语言实现归并排序 360石晓虹:针对移动Apps的DDoS攻击将成重大威胁 更社交化:谷歌将推出Google Play平台服务 C语言对磁盘文件进行快速排序 传Google已关闭短信搜索服务 PayPal首席安全官:靠密码验证身份即将寿终正寝 DRM你又赢了:其API纳入HTML5标准 豌豆荚王俊煜:洗白白其实是一个计划外的产物 抢Google等巨头生意,纽约大学小伙挖掘并出售自己数据 noBackend:前端优先的开发模式 C、CPP const 详解 三星5G技术获得突破性进展 未来传输速度可达10Gbps 5月14日:1984年美国社交网站Facebook创办人Mark Zuckerberg出生 Chartkick:一行代码即可绘制出漂亮的图表 用友UAP将打造开放平台 建应用商店销售企业级应用 共享软件营销:如何将你的产品推向海外 谷歌使用Debian Linux作为GCE的默认操作系统 大数据?别唬人了!我们真的需要盲目烧钱追求大数据吗? 日本社交手游公司GREE巨星陨落 中国区全员被裁 战歌:85后手游开发团队背后的故事 分秒钟做款App:细数国内外在线DIY应用网站 指点传媒CEO专访:紧握二三线市场用户命脉 专访Waygo创始人:白切鸡怎么翻译? 探究共享软件海外营销新策略(西安站) 讲师秀8:车音网沈康麒和他的智能驾车服务 数据可视化独领风骚:看这6家初创公司如何玩转大数据? 最新研究显示:IE10防恶意软件能力比Chrome等浏览器都要强 Windows Blue正式定名Windows 8.1 对Windows 8及RT用户免费 Testin云测试破1000万次 自动化测试成趋势 小问题 请问在哪里可以找到监控局域网的网络流量的工具,不够再加? 免费ASP空间申请 白羊座的进来领分,水园里白羊座好像很少。。。。 ie无法编译jsp? 300分!求《程序员增值合订本》上册中的"完全掌握TCppWebBrowser控件"内容! Google搜索从入门到精通(散分) 由于工作需要,将要转到Linux平台,请问那位知道有什么好的SQL Client在Linux下? 由于工作需要,将要转到Linux平台,请问那位知道有什么好的SQL Client在Linux下? 你是怎么过的?CSDN无高人?:( 找asp.net入门经典!一定是C#写的!!!在线等! 菜鸟的关于DataGrid的问题 资源管理器中选中的多个文件怎样传给我的程序 什么是“三层数据库”和“嵌入式软件系统”? 什么是“三层数据库”和“嵌入式软件系统”? 类似"hello world"的简单问题,求教 免费ASP空间申请,支持ACCESS 事件的终止? 数据追加求教:谢谢您!!!! 请问InputBox在framework 类库里面有没有代替的阿? 为什么我写到文件中的字符总长度比我实际应该要写的多? 如何使dbctrlgrid多选,并使鼠标右击相当于鼠标左击 关于静态IP地址,急!!! 如何将tomcat做为windows的一项服务启动? 请问各位大虾,哪有paradox(INPRISE 公司产品)数据库(*.DB)的资料? 非法操作的问题 请问各位大虾,哪有paradox(INPRISE 公司产品)数据库(*.DB)的资料? 各位大虾救命啊!请问怎么在一个DIALOG中使用RICHEDITVIEW,谢谢大家了 ACCESS的删除问题 我有“处女”情结,可.............. 菜问题,,马上给分sendto问题 while和for的区别 安装的问题 我喜欢上公司的JJ怎么办????? 谁能帮我反编译?急 1.7gmsdn如何改成3张碟刻出来 启动慢? 有什么方法实现点击"提交"按钮后,弹出一个框显示表单里的数据,"确定"后再提交,"取消"后不提交? 请教vb 字符串问题 急!明天要啊!(帮忙啊!)分在另一贴给! 请问如何创建一个组控件,然后又可以动态调用?请进!:) 用Jbuilder开发,怎样配置才能开发j2me? 关于HOOK和键盘屏蔽的问题??? 如何在自己的网页上嵌入google的页面翻译功能 有关2k的内存问题 阴谋家已被清除!大家尽兴的庆祝呀! 问一下 C++基础的弱智(20分钟内结贴) 高手请看:实形变量在不同的过程中调用问题?(大家都要遇到的问题,来着有分!) 还是没解决呀!!1 杜甫《登岳阳楼》的全诗 如何撰写反馈改善总结报告 找个化学专家!教我一下化学知识 一个用电器电阻大,电压也会大吗? 九上数学的反比例函数怎么学 铜能与浓硫酸反应而不能和稀硫酸反应 是什么原理 这一事实能说明反应物的性质影响化学反应速率吗 数学的反比例函数解析式已知一此函数Y=KX+B图像与反比例函数Y=8/X的图像在第一象限交B(4,n)求K,n的值 求一个英语单词或者句子 含 L J M最好是深情点的 什么是多元弱酸? 登岳阳楼杜甫是一首诗反映了作者的什么风格 求含j和x的英文单词 医院在Jiefang Road的英语 一道大学英语考试题I regret____a present to my friend when he got married last month.a.to have not madeb.not makingc.not having maded.having not made答案及原因.我也认为选C,可答案是A. 物理第二十一题 word中 如何做文字围绕圆内走?word中 不能用艺术字! 大学英语考试题1、Jimmy was so nervous,not a single word _____ down in the dictation.A、he wroteB、he was writtenC、did he writeD、was he written 2、Little ______ when I took the trip where it would lead me.A、have 物理第21,22题 0.1mol碳约含有____个碳原子 2mol氧气约含有____个氧分子,____个氧原子 1mol硫酸约含有___个硫酸分子,___个氢原子___个硫原子,__个氧原子 0.5mol氢气约含有___个氢原子.___MOL氢原子 0.2mol氢氧化钡含有_ 1、1._____ he said at the meeting shocked everybody.A、WhatB、ThatC、The factD、The matter 2、Mike didn’t understand ______ made his wife so upset this morning.A、whatB、whyC、howD、which 3、I wonder_____ 电镀掉镀层是怎么回事 word打出一段文字呈一个圆形就是在一个圆形的自选图形上打字,但要求充满整个圆而不是一个方形.(不要说用文本框一行行地调喔)不是说每个字有个圈,是一段文字呈一个圆形我的意思不是 数学 反比例函数题已知一次函数 y=kx+b 的图像与反比例函数 y=-x:8(也就是负x分之8)的图像交于A,B两点且点A的横坐标和点B的纵坐标都是 -2(1)求一次函数的解析式(2)求△AOB的面积拜托大 物理二十一至二十四题, word中怎样把文字均匀排放在360度的圆上 片碱有什么作用比如:片碱在造纸里面的作用是什么?那些行业使用?不要单纯的复制粘贴,我问了很多造纸的都用不到片碱!还有冶炼、印染什么的! 数学反比例函数题1以知反比例函数的图象Y=X分之K经过点(2,3),若点(A,-2)也在该函数的图象上,则A的值为?2正比例函数Y=-2X和反比例函数Y=X分之K的图象交点的纵坐标为-1,则反比例函数的解析式 21.题 偏弱酸什么意思呢?有什么问题吗? 1.一定量的铜粉和碳粉的混合物,在空气中充分燃烧后其固体与原混合物的质量不变,则原混合物中铜粉和碳粉的质量比为-------2.将一定量的一氧化碳和二氧化碳的混合气体通入足量的澄清石灰 h___ english class怎么填单词? 这个方程式的电子得失情况是? 有没有什么方法. 有没有同时包含“Z,H,T”的英文单词?三个字母大小不限,举个例子,是一个单词同时包含 请讲一下此方程式得失电子情况 正方形的边长增加1/8,周长就增加()/(),面积就增加()/() 工程上立模什么意思,求详细解释 电子的得失 电子的得失能否用向心的知识解释(得能量速度加快坐立新运动, 四边形ABCD中,角B=角C,AB=CD,判定四边形ABCD的形状,并证明你的结论 房屋建筑学中的施工说明是什么意思?施工说明是干什么用的?能举个例子说明一下吗?感激不尽 2013年贵阳高中数学都学哪几本书啊?必修有哪几本,选修都学么,顺序? 有没有英文单词里含有z,m的?要按顺序, 工程中,1.5*1.5砖 1*1砖 2*2.5砖各指什么含义, 请问贵阳初中课本(数学、物理、化学)分别是用什么版本的,一定要确定才能作答哦,不要蒙我,比较要害哦 含有G和M的英文词语 某化学实验兴趣小组想设计一个实验来验证工厂排出的废气中含有SO2和CO2,采用如图所示装置所用药品有:(I)氢氧化钠溶液(II)品红溶液(III)酸性高锰酸钾溶液(IV)澄清石灰水A,II-III-IV-IB,IV-II-III-IC, 这题再解释下,求的是磁通量,什么磁感应强度看不懂 一个四边形的四个角ABCD上各长着一棵树,现准备将其扩大成一个平行四边形,且面积为原来面积的两倍还不能破坏这四棵树,请设计出方案.注意,是一个凸四边形,最好附图,不然请说明作法 英语的比较级规律是什么?不规则的有哪些类? 物理交流发电机,与磁通量有关的一道题,求讲解M为圆柱形铁芯,铁芯上有一矩形线圈,可转动,这个发电机转动时,产生的交流电大小不变,方向一周改2次,为什么穿过线圈的磁通量始终为0,但磁通 其中(1)中的这个结论是一个有用的结论,请用这个结论,在图②的四边形中ABCD内引一条和一边平行的直线,求∠A+∠B+∠C+∠D的度数. 化工系统工程的有关问题1、系统合成的主要任务是什么?2、系统合成的主要工作步骤有哪些?3、系统合成方法有哪些?4、精馏序列的合成问题包括哪些?5、某工艺物流,其流率为200 kg/s,换热后升 关于化工的一道题换热器由若干根长为3m,直径为Ф25×2.5mm的钢管组成.要求将流率为1.25kg/s的苯从350K冷却到300K,290K的水在管程与壳程的苯呈逆流流动.已知水侧和苯侧的对流传热膜系数分别为0.8 品质改善报告怎么写才最合适我只是公司里一名很普通的车间组长,可是在我刚上任的第一个月,却把公司的产品弄出好多不良,导致了厂商对我们的客诉.老板要我写改善报告.我该怎么写呢?麻 工业制得的纯碱可能含有少量的氯化钠,现取含有少量的氯化钠杂质的纯碱药品5g与足量的稀盐酸完全反应,放出1.76g气体.请计算这种纯碱样品中碳酸钠的质量分数. 甲醇用沸石分子筛催化剂氧化脱氢制甲醛,原料甲醇每小时的进料量为2.5m^3.每小时生成含甲醛36.7%、甲醇浓度7.85%的水溶液3400L.该溶液的相对密度1.095.已知浓度为99.5%的甲醇相对密度为0.7932,求 次氯酸钙和硫酸锰反应·高分在线等·答对追50分要求写出酸碱性情况下的方程式·2L你的不对· 浓硫酸和铜的化学方程式 .如果我们__了,你__了,我也__了.那我们__吧!.如果我们__了,你__了,我也__了.那我们__吧! 关于品质与质量的改善报告怎么写? 求指教!我在看一个汽车清洗剂的配方 算来算去 因为摩尔质量 我算不出来。求指教 配方如下:组分 m/kg聚丙烯酰胺(粉状) 25-90十二烷基苯磺酸钠 2-5脂肪醇聚氧乙烯醚 1-5十二万基硫酸钠 20- 停摆还卖票3万人受困 台高铁再“出包民进党台北市长初选 五月天主唱阿信被田径队进行备战里约动员 刘翔红军装亮瞭望:把巩固党的执政基础作为政治责任儿子常在小区网吧过夜 其母向警方投诉广东400村官旁听贪贿案庭审 纪委书经济复苏强于预期 10月PMI创18柯文哲批民进党“乱邦” 苏贞昌:不必苗族大妈不识总书记:“怎么称呼您?”台湾花莲发生4.7级地震 民众再度心香港名医庄善春捐资120万修建华侨大16秒26 温州女生刘伊玮单手还原魔温州一对母女裸死出租房内 腿部有烧焦浙江大学教授演示神奇“隐身衣” 鱼缸上周末金华16个监测点 11个点空气婴儿注射疫苗险丧命 “疫苗后遗症”家浙江多举措扶持小微企业浙江商品房销售增幅下降上海总价地王刺激周边二手房 两月单价朴槿惠出席法国韩剧派对 当地民众热情江苏一农业类高校设电梯专业 学校回应北京4月新房价环比降7.8%阿特兹头号对手竟是新蒙迪欧昂克赛拉今晚上市 起价低于12万元越绽放越美丽高球场摸底何时摸到底入住两天就闹着退租 租客房东闹到派出既然彩钢棚拆了,就别往下扔垃圾了我还能去香港参加跳绳世锦赛吗境外组织潜入我基地偷盗转基因水稻材料谁“偷”了片儿警高万禄的公示照五矿打造钢铁业“天猫”习近平会晤普京 透露出哪些信息方大同团队回应版权纠纷或有误解腾格尔 演出不景气才有空唱摇滚今年经济改革重点发布将抓好简政放权先首届重庆火锅十大形象代言人 与你相今日影讯社会抚养费用途不能糊涂下去了全市上万对新人昨领证 登记处比赶场还网友吐槽天气多变: 穿外套,脱外套,汽车房车露营大会下周开幕
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘