有关——架构师【转】

架构师是一门建立在科学,工程基础之上的艺术,一个充满魅力,极其有趣的工作;给人带来了一种不被束缚,不按别人的思路走,自由描绘无限风景的期盼。那么程序员应如何成为一名合格的架构师?如何加强自己的技能修养?架构师在公司主要负责什么?

架构师相关的设计工作:
以公司战略在技术方面的分解为指导思想:

为团队设定技术规范、代码规范、文档规范
为开发团队、以及相关产品团队、测试团队、运维团队,规定流程和标准
为开发团队抽象、提炼、储备和推广通用代码类库、常用业务代码类库
根据实际操作情况,对以上内容不断优化和调整

程序员要成为一名架构师发展,需要进一步加强技能的修养:
几个必要的要素:

思考问题的角度尽量站的高一点、再高一点,从分解公司战略层面开始入手做架构设计
对业务的深刻理解,才能做好业务架构
理论学习&技术实践,什么时候都不能丢掉,这是技术架构的基础,重要性不赘述
同行业交流
时时对新技术保持敏感

从程序员到高级程序员再到设计师的过程:
技术方面:

从最基础的开发做起
逐步提高解决高难度技术的能力
不断重构代码、不断优化代码,每次重构都是一次思考
业务方面:

从理解现有业务做起
从成为小领域业务专家,扩展到更多领域的业务专家
在每次重构底层代码时,更在不断思考业务架构重构与优化
做到以上,大约是个高级程序员或准架构师水平。

架构师的核心竞争力:

有独立思考、价值判定,建立在对行业、对公司战略和目标的深刻理解之上
很强的语言翻译能力,能跟产品经理讲明白技术,能把产品理念翻译成架构和可执行代码
影响力

自身的学习:
阅读成熟项目的代码会使人受益匪浅,其次就是来自于所从事领域的经验,要了解分布式系统的特点,在做项目时,要能够关注性能、扩展性、可靠性、可用性等指标。

最重要的技能是对网络和分布式系统的理解

不仅有丰富的编码经验,而且还要熟悉硬件性能优化、内核调试、网络故障排查、系统安全、分布式系统设,还有了解国内外技术的新趋势和特点,最重要的是,还要善于与人沟通,敢于排除不同意见,敢于承担责任,了解团队内工程师的特点,善于将他们组成一个整体。

架构师更多的是以一个技术负责人的身份和工程师一起做好产品,这里面包括,项目开展前的方案设计,方案完成后的评审,方案确定后的开发,以及之后的调试、优化,故障排查。

良好的驾驭管理开发团队的能力,良好的人格修养,能够让架构师在开发项目中游刃有余,不会出现意料之外的干扰,更能从内散发出人格魅力。

不断更新自己,适应不断前进的技术演变


架构师不是通过理论学习可以搞出来的,不过不学习相关知识那肯定是不行的。参考软件企业架构师需求、结合目前架构师所需知识,总结架构师自我培养过程大致如下仅供参考:

1、架构师胚胎(程序员)学习的知识是语言基础、设计基础、通信基础等,应该在大学完成,内容包括java、c、c++、uml、RUP、XML、socket通信(通信协议)——学习搭建应用系统所必须的原材料。

2、架构师萌芽(高级程序员)学习分布式系统、组建等内容,可以在大学或第一年工作时间接触,包括分布式系统原理、ejb、corba、com/com+、webservice(研究生可以研究网络计算机、高性能并发处理等内容)

3、架构师幼苗(设计师)应该在掌握上述基础之上,结合实际项目经验,透彻领会应用设计模式,内容包括设计模式(c++版本、java版本)、ejb设计模式、J2EE架构、UDDI、软件设计模式等。在此期间,最好能够了解软件工程在实际项目中的应用以及小组开发、团队管理。

4、软件架构师的正式成型在于机遇、个人努力和天赋,软件架构师其实是一种职位,但一个程序员在充分掌握软架构师所需的基本技能后,如何得到这样的机会、如何利用所掌握的技能进行应用的合理架构、如何不断的抽象和归纳自己的架构模式、如何深入行业成为能够胜任分析、架构为一体的精英人才这可不是每个人都能够遇上的馅饼……

然而学海无涯,精力有限,个人如何能够很快将这些所谓的架构师知识掌握?这是秘密,每个人都有自己的独门家传秘笈就不敢一一暴露了。不过有一点就是广泛学习的基础之上一定要根据个人兴趣、从事领域确定一条自己的主线来努力。

猜你喜欢

转载自gi-gi.iteye.com/blog/1895661
今日推荐