在软件组织中,架构师的作用是举足轻重的,当企业把一个方向的生命线托付给你的时
候,责任也是重大的,因此架构师必须十分谨慎和细致,最后我给你提如下一些建议:
1,架构师的知识结构
1)首先必须是一个好的程序员,技术上要强
2)知识结构:对象的观点,UML,RUP,设计模式
关键不是懂得了原理,而是灵活融合的应用
3)系统的观念:分析能力,把握抽象的能力
4)沟通能力:与客户沟通能力,与项目其它成员的沟通能力
5)知识面要广,把握行业流行趋势,但不要赶时髦
6)灵活机动,不能教条
2,聚焦于人,而不是工艺技术
事实上,软件开发是一个交流游戏,你必须保证人们能彼此有效的沟通(开发人员、项
目涉众)。架构师要以最高效的可能方式与客户和开发人员一起工作和讨论,白板上书写讲
解、视频会议、电子邮件都是有效的交流手段。
3,保持简单
建议“最简单的解决方案就是最好的”,你不应该过度制作软件。在架构设计上,你不
应该描述用户并不真正需要的附加特性一个辅助的原则就是:“模型来自于目的”。
这个原则引发了两个核心的实践。
第一个就是描述模型的文档力求简单明了,切中要害。
第二个就是架构设计避免不必要的复杂性,以减少不必要的开发、测试和维护工作。
你的架构和文档只要足够好,并不需要完美无缺,事实上也做不到,因为建模的原则就
是“拥抱变化”。你的文档应该重点突出,这样可以增加受众理解它的机会,同样这个文档
会不断更新,因此如何管理好文档显得十分重要。
4,迭代和递增的工作
这种迭代和递增的工作,对项目管理和软件产品开发,事实上提出了更高的要求,你必
须时时检验你的项目进展,不要使它偏离了方向。
5,亲自动手
考察一下你遇见过的“架构师”,最棒的那一个一定是需要的时候立刻卷起袖子参加到
核心软件开发中的那个人。架构师首先必须是编程专家,这是没有错的。积极参与开发,和
开发人员一起工作,帮助他们理解架构,并在实践中试用它,会带来很多好处。
你会很快发现你的想法是否可行。
你增加了项目组理解架构的机会。
你从项目组使用的工具和技术,以及业务领域获得了经验,提高了你自己对正在进
行的架构事务的理解。
你获得了具体的反馈,用它来提高架构水平。
你获得客户和主要开发人员的尊重,这很重要。
你可以指导项目组的开发人员建模和小粒度架构。
6,在开口谈论之前先实践
不要作无谓的空谈和争论,你可以写一个满足你的技术主张的小版本,来保证你的方案
切实可行,这个小版本只研究最最关键的技术。这些主张只写够用的代码就行了,来验证你
的方案切实可行。这会减少你的技术风险,因为你让技术决策基于已知的事实,而不是美好
的猜想。
7,让架构吸引你的客户
架构师需要很好的与客户沟通,让客户理解你的工作的价值,他如果明白你的架构工作
会帮助他们的任务,那他们就会很乐意的和你一起工作。架构师的这种与客户沟通的技巧极
其重要,因为如果客户认为你在浪费他的时间,那他就会想方设法回避你。你的架构描述能
不能吸引客户,也成了建模是不是能顺利进行的关键。
8、架构师面对时代的考验
年轻人需要成长为合格的架构师,需要扎扎上实实的从基础做起,不断提升自己的能力,
并不是听过几个课程,就能够成为一个合格的架构师的。架构师必须善于学习,一个人最大
的投资莫过于对自己的投资,每周花三个小时时间用于学习是完全必要的。
架构师的知识在必要的时候要发生飞跃,但是,这种知识的飞跃必须是可靠的,是经过
深思熟虑和实验的,同时要反复思索,把自己的思维实践和这种知识的飞跃有机的结合起来。
架构师要更看重企业所要解决的问题。
架构师要学会在保证性能的前提下,寻找更简单的解决方案。
做一个好的架构师并不是一个容易的事情,这需要我们付出极其艰苦的努力。
我这个课程的主题就是“拥抱变化”,需求是在变化的,架构是在变化的,设计模式也
是在变化的,项目管理当然也是变化的。