让开发人员自己做主
架构师虽然需要为系统的设计负责,但无须包揽所有的设计工作,应该给予团队成员足够的自主权,让他们发挥自己的创意和能力,你的工作是确保大家的工作能很好的组合在一起,帮助他人解决棘手困难。当你发现同事遇到麻烦时,可以主动给出建议,但更可取的做法是创造良好的氛围,让大家主动向你征求意见。
控制项目规模
架构师要试图避免做那种“超大型”系统,因为这种系统往往难以控制,控制项目规模的办法通常有:
抓住真正需求
分而治之
设置优先级
尽快交付原则
架构师不是演员,而是管家
有些架构师误解了证明自己价值的含义,以为是炫耀技术才华,甚至是刁难开发团队,把自己放在高高在上的位子,试图让别人来崇拜你。其实架构师的职责和管家类似,承担着管理技术资产的责任,要深入了解系统里各个细节,要精打细算,而不是浮在表面做无实文章。
关注性能
高性能往往和代码优美性常常没法兼容,有些架构师往往不在乎性能上的点滴损耗,为了代码更重用或更优美,不惜多查一次数据库,多与外系统交互一次,这种做法会让后期的性能提升很被动,性能压力会逼迫你打破原有的设计,为提升性能把代码搞得支离破碎。架构师需要珍惜任何一点的性能损耗。
对复杂性要有前瞻意识
在实际的运行环境中,往往简单的系统都有可能变得非常复杂,简单的远程接口可能调不通、稳固的数据库可能down掉、消息顺序可能会错乱、服务器可能会无缘无故地down机,不要假设这些情况不会发生,架构师应该对复杂的情况有前瞻意识,要在假设类似于前面的状态存在的情况下设计软件。
关注边界和接口
任何系统或模块的边界和接口都是与外交互的门面,有交互就暗藏着误解和不恰当的划分,保持接口的顺畅交互是架构师的重要职责。往往bug发生在模块与模块之间、系统与系统之间,项目的失败也往往因为系统间交互问题,因此架构师需要给予足够的关注
助力开发人员
架构师的完美设计需要开发人员是实现,因此有业务想办法提升开发团队的战斗力,常有以下方式:
寻找或开发工作需要的工具,并附上使用技巧
做定期的分享或提高团队学习气氛,保持团队技术上的先进性
参与开发团队的招聘工作
给予开发人员更多的决策空间,帮助其成长
保护好开发人员,让他们尽可能地免于杂事之中
直接参与开发,分担压力
记录决策的理由
架构师常常需要权衡和决策,但决策过后却没有把决策的过程和理由记录下来,其实这是在浪费很大的一笔财富。
质疑假设
架构师往往需要假设一种情境,然后在这种情境下给出方案和做出决策,很多人包括自己从来都是纠结于这个方案的优劣,并不断改进,但却忽视了这种假设的情境是否成立,而这个可能是万恶之源。
关注系统的支持和维护
架构师通常是由开发人员成长而来,因此天然地把注意力放在功能开发上,常常忽视系统的支持和维护方面,给支持人员和维护人员造成不便。架构师需要清晰知道一个系统生命周期80%在于维护上面,而系统的价值需要支持人员去不断传递给客户,他们的需求需要得到重视。有以下几点需要注意:
清晰性
可测性
正确性
可跟踪性
不要急于求解
很多架构师都有解决难题的欲望,一遇到问题,就立马陷入解决问题的泥潭中。而更可取的是审视问题本身,看是否可以改变问题,或是干脆绕开问题,很多时候技术上的难题在通过业务上的优化是可以避免的。我们不要立足点设为解决特定问题,而是应该立足于客户需求
优秀软件是培育出来的
很多架构师需要在软件的第一版本就一鸣惊人,拿出完美的作品,其实真正受欢迎的系统是在不断发布中演化而来,对于互联网软件更是如此。架构师需要做的是打好系统的基础,使其容易修改和扩展,倾听用户的反馈,不断地在无数次改进中培育我们的软件
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/cutesource/archive/2010/07/25/5765374.aspx
分享到:
相关推荐
【软考架构师2009-2022年真题附答案】是一份集中的资源,涵盖了从2009年至2022年间的软件设计师资格考试(架构师级别)的实际试题及对应的答案。这个压缩包是备考者宝贵的复习资料,尤其对于那些希望在软件架构领域...
系统架构师(软考)-系统开发基础知识.pdf 系统架构师(软考)是指通过软考认证的系统架构师,负责设计和开发软件系统。系统开发基础知识是系统架构师必须具备的基本知识,包括软件工程概述、软件开发方法、软件...
### 软件系统架构师的关键知识领域与实践 #### 软件架构设计的核心概念与价值 软件系统架构师负责设计和构建软件系统的基本结构,确保系统满足业务需求、性能标准以及未来发展的灵活性。他们不仅需要具备深厚的...
架构师需要制定技术框架,规范开发过程中的技术互动,同时影响开发团队的组织结构。在项目中,系统架构师扮演总设计师的角色,负责构建新产品的技术体系,并确保系统的整合与企业目标一致。 系统架构的概念起源于...
系统架构师的角色是理解和管理非功能性需求,制定开发规范,进行总体设计,并解决关键技术细节。 系统架构师的技术素质要求对软件工程标准有深入理解,同时需要具备管理素质,如创建高效团队,设定明确目标,提供...
### 高级系统架构师培训知识点概述 #### 一、现代软件开发过程及架构策略 - **软件架构设计师的知识体系** - **软件架构的定义与问题**:介绍软件架构的基本概念及其在软件开发过程中扮演的角色,探讨软件架构...
【Java架构师面试总结】 Java语言作为一门广泛应用于企业级开发的编程语言,因其独特的特性和设计理念,成为了面试中常见的考察点。以下是针对Java架构师面试的一些关键知识点: 1. **Java语言特点** - **简单...
在IT行业中,系统架构师扮演着至关重要的角色。他们负责设计和规划复杂的软件系统,确保其高效、可扩展且易于维护。"系统架构师论文范文50篇"是一份宝贵的资源,提供了丰富的案例和指导,适合那些希望深入理解这一...
系统架构师在项目中的主要职责包括:理解业务需求,制定技术策略,选择合适的架构模式,设计系统组件,定义接口规范,以及确保系统的可扩展性、性能、安全性和可靠性。这些都需要扎实的技术基础和丰富的实践经验。 ...
Java 架构师在面试过程中会面临一系列深入且全面的问题,涵盖从基础知识到高级概念的广泛领域。以下是一些基于给定标题和描述的关键知识点详解: 1. **Java 语言特点**: - **简单易学**:Java 语法简洁,易于理解...
1. 系统架构设计师是设计和管理软件架构的关键人物,负责非功能性需求的确认和评估,并给出开发规范和核心技术细节。 2. 他们既要关注技术实现,也要处理组织协调,是技术和管理的桥梁。 3. 架构设计师需要与系统...
软件架构师作为软件开发项目的灵魂人物,在整个软件工程中扮演着至关重要的角色。一个优秀的架构师不仅...通过不断实践上述的架构师行为准则,软件架构师将能够有效地引导项目顺利进行,为客户提供高质量的软件产品。
系统架构师的概念强化涉及到多个关键知识点,包括架构风格、设计模式、软件集成方法和技术,以及系统分析和设计的视图模型。以下是对这些概念的详细解释: 1. 架构模式: - C/S(客户端/服务器)架构:在这种模式...
如何能抽象出一个统一的状态模型,可以使状态在留转过程中被保存和传递//最好能够用一套处理机制,能够满足WinForm程序和Web应用的需要 //用户的在一个操作流程中可能会嵌套子流程,或者会转到别的流程 //记录流程的...
建模语言是表达和沟通软件设计的关键工具,如统一建模语言(UML),它允许架构师以图形化的方式描绘系统组件、交互和行为,使团队成员和利益相关者能够清晰理解系统结构。而开发过程则涵盖了从需求分析、设计、编码...
10. **职业道德与专业责任**:强调在职业活动中应遵循的道德准则和职业行为规范。 通过系统架构分析师考试大纲的学习和实践,考生不仅可以提升自己的专业技能,还能在解决现实问题时,为企业提供高效、稳定且适应...
【标题】: "详细的wap架构师指南" 【描述】: "深入解析wap架构师的职责与技术要点" 【标签】: "wap架构师" 【内容摘要】: 本文主要介绍了ASPire WAP Solution的详细情况,包括WAP Portal的功能、WTBS的功能、关键...
该套Java软件架构师实战培训视频教程聚焦于高级Java开发技术,特别强调了在实际项目中的应用。课程覆盖了从第18讲到第24讲的内容,共计148讲,旨在帮助学习者深入理解并掌握软件架构设计的关键技能。 在阶段一中,...