`
jiagyao
  • 浏览: 96001 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

架构师的行为准则(三)(转)

阅读更多
让开发人员自己做主

架构师虽然需要为系统的设计负责,但无须包揽所有的设计工作,应该给予团队成员足够的自主权,让他们发挥自己的创意和能力,你的工作是确保大家的工作能很好的组合在一起,帮助他人解决棘手困难。当你发现同事遇到麻烦时,可以主动给出建议,但更可取的做法是创造良好的氛围,让大家主动向你征求意见。

控制项目规模

架构师要试图避免做那种“超大型”系统,因为这种系统往往难以控制,控制项目规模的办法通常有:

抓住真正需求
分而治之
设置优先级
尽快交付原则
架构师不是演员,而是管家

有些架构师误解了证明自己价值的含义,以为是炫耀技术才华,甚至是刁难开发团队,把自己放在高高在上的位子,试图让别人来崇拜你。其实架构师的职责和管家类似,承担着管理技术资产的责任,要深入了解系统里各个细节,要精打细算,而不是浮在表面做无实文章。

关注性能

高性能往往和代码优美性常常没法兼容,有些架构师往往不在乎性能上的点滴损耗,为了代码更重用或更优美,不惜多查一次数据库,多与外系统交互一次,这种做法会让后期的性能提升很被动,性能压力会逼迫你打破原有的设计,为提升性能把代码搞得支离破碎。架构师需要珍惜任何一点的性能损耗。

对复杂性要有前瞻意识


在实际的运行环境中,往往简单的系统都有可能变得非常复杂,简单的远程接口可能调不通、稳固的数据库可能down掉、消息顺序可能会错乱、服务器可能会无缘无故地down机,不要假设这些情况不会发生,架构师应该对复杂的情况有前瞻意识,要在假设类似于前面的状态存在的情况下设计软件。

关注边界和接口

任何系统或模块的边界和接口都是与外交互的门面,有交互就暗藏着误解和不恰当的划分,保持接口的顺畅交互是架构师的重要职责。往往bug发生在模块与模块之间、系统与系统之间,项目的失败也往往因为系统间交互问题,因此架构师需要给予足够的关注

助力开发人员

架构师的完美设计需要开发人员是实现,因此有业务想办法提升开发团队的战斗力,常有以下方式:

寻找或开发工作需要的工具,并附上使用技巧
做定期的分享或提高团队学习气氛,保持团队技术上的先进性
参与开发团队的招聘工作
给予开发人员更多的决策空间,帮助其成长
保护好开发人员,让他们尽可能地免于杂事之中
直接参与开发,分担压力
记录决策的理由

架构师常常需要权衡和决策,但决策过后却没有把决策的过程和理由记录下来,其实这是在浪费很大的一笔财富。

质疑假设

架构师往往需要假设一种情境,然后在这种情境下给出方案和做出决策,很多人包括自己从来都是纠结于这个方案的优劣,并不断改进,但却忽视了这种假设的情境是否成立,而这个可能是万恶之源。

关注系统的支持和维护

架构师通常是由开发人员成长而来,因此天然地把注意力放在功能开发上,常常忽视系统的支持和维护方面,给支持人员和维护人员造成不便。架构师需要清晰知道一个系统生命周期80%在于维护上面,而系统的价值需要支持人员去不断传递给客户,他们的需求需要得到重视。有以下几点需要注意:

清晰性
可测性
正确性
可跟踪性
不要急于求解

很多架构师都有解决难题的欲望,一遇到问题,就立马陷入解决问题的泥潭中。而更可取的是审视问题本身,看是否可以改变问题,或是干脆绕开问题,很多时候技术上的难题在通过业务上的优化是可以避免的。我们不要立足点设为解决特定问题,而是应该立足于客户需求

优秀软件是培育出来的

很多架构师需要在软件的第一版本就一鸣惊人,拿出完美的作品,其实真正受欢迎的系统是在不断发布中演化而来,对于互联网软件更是如此。架构师需要做的是打好系统的基础,使其容易修改和扩展,倾听用户的反馈,不断地在无数次改进中培育我们的软件



本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/cutesource/archive/2010/07/25/5765374.aspx
分享到:
评论

相关推荐

    高级软件架构师复习提纲

    如何能抽象出一个统一的状态模型,可以使状态在留转过程中被保存和传递//最好能够用一套处理机制,能够满足WinForm程序和Web应用的需要 //用户的在一个操作流程中可能会嵌套子流程,或者会转到别的流程 //记录流程的...

    信息架构:超越Web设计(第4版)(全彩).[美]Louis Rosenfeld(带详细书签) PDF 下载 高清 完整版

    √ 领域畅销经典重装再现,北极熊书长期被信息架构师、设计师及网站开发者奉为圣经 √ 新版内容全面更新,关注焦点彻底突破网站,面向更热门更前沿的电子产品与设备 √ 深度剖析IA 要素,包括组织、标签、导航、搜索...

    Java虚拟机规范中文版

    周志明(www.icyfenix.com & weibo.com/icyfenix):远光软件平台开发部部门经理,平台架构师,不愿意脱离编码的一线码农。著有《深入理解Java虚拟机:JVM高级特性与最佳实践》。关注各种Java应用,略懂OSGi、Java...

    java图形图象处理系统设计与实现源码

    该系统适用于美术设计、摄影类职业人员、美工、架构师、开发人员和工程师等人群,使用场景包括:图像编辑处理、特效设计、图形绘制等多种场景。该系统的目标是为上述人群提供一个方便、快捷、高效的图像处理解决方案...

    CloudComparer:比较市场上主要公共云提供商所提供的各种托管云服务

    该项目是开源的,可让其他云架构师,IT专业人员,开发人员随时编辑和更新比较。 贡献 请阅读了解我们的行为准则以及向我们提交拉取请求的过程的详细信息。 s Ilyas_IT83 -最初的工作- 另请参阅参与此项目的列表。...

    jarchitecturecontrol:自动从code.google.compjarchitecturecontrol导出

    框架访问有关架构师提供的规范的代码(命名,属性,关系船),标记代码元素,报告违反规则的行为。 您可以在[ ]中找到导致该项目的需求解决方案分析。 已取得以下进展:||代码分析||确定(仅适用于Maven)|| ||...

    asp.net知识库

    深入剖析ASP.NET组件设计]一书第三章关于ASP.NET运行原理讲述的补白 asp.net 运行机制初探(httpModule加载) 利用反射来查看对象中的私有变量 关于反射中创建类型实例的两种方法 ASP.Net应用程序的多进程模型 NET委托...

    成都市安全服务目录(包括限价)

    安全管理体系落实到四个方面:安全策略、人员与组织、第三方服务、运行维护; 业务系统风险评估 识别业务工作流程,评估业务安全风险,明确业务安全保护需求,将信息资产与业务系统关联后进行综合的评估。按照数据...

    定义领域:高等教育的网络空间之战-研究论文

    鉴于高等教育的独特目的和与市场的历史分离,互联网的早期架构师认为高校拥有自己的在线空间很重要,这体现在域名扩展上,可以同时传达真实性和合法性。 那个空间就是.EDU。 多年来,封闭的 .EDU 扩展名一直是高等...

    产品经理学习视频

    03.第三阶段:产品进阶课程 1数据分析 1-数据分析思路.mp4 2-定性定量数据分析.mp4 3-数据分析步骤.mp4 4-数据来源.mp4 5-关键数据-转化率.mp4 6-关键数据-任务完成率.mp4 7-关键数据-用户数据与产品阶段....

    《Wicket开发指南一书》PDF版本下载

    (不要忘了,Delphi的创建者Anders Hejlsberg就是.net框架的架构师,所以C#和Asp.net怎么看都带着Delphi的影子。 Wicket目前最新的版本是1.2.2版,已经支持了AJAX,但感觉这个框架的发展时间毕竟还是短了一点,...

    TCP.IP路由技术[第二卷](CCIE职业发展系列).pdf

    但是随着ARPANET的不断发展,与当今许多负责管理日益增长的互联网络的网管员一样,ARPANET的架构师们也预见到了相同的问题:现在运行的路由协议没有很好的扩展性。 目录: 第一部分 外部网关协议(EGP) 第1...

    抚摸人类-研究论文

    行为数据可以而且应该为私人和公共选择架构的设计提供信息。 选择建筑师应该引导人们朝着使他们更好的结果(根据他们自己的兴趣,而不是选择建筑师的利益),但让人们自己选择。 自由主义家长制可以而且应该对选择...

    完整版《HTML5高级程序设计》2

    在加盟Kaazing前,Peter在Oracle担任了近十年的资深信息架构师,获得过两项软件专利。  Brian Albers Kaazing研发中心副总裁。他有数十年的Web开发经验,曾在Oracle担任高级开发经理。Brian是一位讲演常客,经常在...

    完整版《HTML5高级程序设计》4

    在加盟Kaazing前,Peter在Oracle担任了近十年的资深信息架构师,获得过两项软件专利。  Brian Albers Kaazing研发中心副总裁。他有数十年的Web开发经验,曾在Oracle担任高级开发经理。Brian是一位讲演常客,经常在...

    完整版《HTML5高级程序设计》5

    在加盟Kaazing前,Peter在Oracle担任了近十年的资深信息架构师,获得过两项软件专利。  Brian Albers Kaazing研发中心副总裁。他有数十年的Web开发经验,曾在Oracle担任高级开发经理。Brian是一位讲演常客,经常在...

    完整版《HTML5高级程序设计》3

    在加盟Kaazing前,Peter在Oracle担任了近十年的资深信息架构师,获得过两项软件专利。  Brian Albers Kaazing研发中心副总裁。他有数十年的Web开发经验,曾在Oracle担任高级开发经理。Brian是一位讲演常客,经常在...

    HTML5高级程序设计.part5

    在加盟Kaazing前,Peter在Oracle担任了近十年的资深信息架构师,获得过两项软件专利。  Brian Albers Kaazing研发中心副总裁。他有数十年的Web开发经验,曾在Oracle担任高级开发经理。Brian是一位讲演常客,经常在...

    HTML5高级程序设计.part4

    在加盟Kaazing前,Peter在Oracle担任了近十年的资深信息架构师,获得过两项软件专利。  Brian Albers Kaazing研发中心副总裁。他有数十年的Web开发经验,曾在Oracle担任高级开发经理。Brian是一位讲演常客,经常在...

Global site tag (gtag.js) - Google Analytics