Web架构师究竟都要学些什么?具有哪些能力呢?先网上查查架构师的大概的定义,参见架构师修炼之道这篇文章,写的还不错,再查查公司招聘Web架构师的要求。 总结起来大概有下面几点技能要求:程序员
1、 架构师有优秀的编码能力,解决开发人员没法解决的难题。数据库
2、 架构师对系统的大数据容量高性能高并发高容错的网站有架构设计和开发经验。编程
3、 架构师对操做系统、数据库、服务器各类软件使用的配置比较了解,好比Linux、Web负载均衡、反向代理、数据库集群、容灾等比较了解。设计模式
4、 架构师对软件开发过程有清晰明确的认识,也就是对软件工程有有明确的认识,并能把需求进行分析、建模。性能优化
5、 架构师学习能力很强、接触知识面要很宽广、喜欢关注和接触各类新的技术。服务器
6、 架构师沟通能力很强。架构
7、 架构师对从事的行业的业务要有深入的了解。并发
换个角度看看这些要求把:负载均衡
第一条要求你是个优秀的程序员。运维
第2、第三条要求你要懂DBA,运维都须要懂的知识。
第四条要求你是个项目经理。
第五条要求你是个技术全才,不只学的要深,还要学的广。
第六条、第七条要求你熟悉公司业务人员、产品人员要懂的知识。
这个要求过高了,架构师就至关于战争中的司令员的位置,是整个团队的核心和灵魂,这种技术要求甚至技术总监和CEO都不具有,惟一要求少点的就是管理能力,若是再具有管理能力,那就甚至能超过技术总监和CTO了,而中国不乏管理人才,怪不得有人总结说,中国没有合格的架构师呢,也难怪,大概算一算,这种要求至关于一我的学6我的的知识,而且都能达到专业的水平,这就意味着你的领悟能力和学习能力,要高于常人几倍!因此说,成为架构师确实须要天分啊。
再具体到.NET架构师,我概括一下要学的知识:
成为优秀程序员,须要学好的知识:
一、 面向对象编程、UML画图、设计模式、代码重构
二、 经常使用ORM工具
三、 MVC,WCF,XMl, JQuery ,SQL以及性能优化
四、 FrameWork一些深刻的知识
五、 高性能代码,好比静态化,MemCached等手段。
六、 最好也了解一些其余语言,好比Java,PHP等。
成为DBA,须要学好的知识:
一、 经常使用数据库,MSSQL、MySQL、Oracle,性能调优熟练,备份、负载均衡、集群、容灾熟练
二、 大数据量处理熟练
三、 各类数据库监控软件
成为运维,须要学好的知识:
一、 各类Web负载均衡的硬件,好比F5,软件,好比Nginx等原理和配置
二、 反向代理加速,好比SquID等
三、 操做系统,Linux是必须懂的,各类好的工具都在Linux下。
四、 各类性能监控软件。
成为产品和业务以及项目经理,须要学好的知识:
一、 沟通和理解能力。
二、 该行业和本公司的业务逻辑。
三、 软件工程的知识。
四、 质量控制、进度控制、人员组织等。
看来想成为合格的Web架构师,须要学太多东西了,只有一条路可走--持续不断的修炼和学习。
另外学习中,采用先深后广的策略是明智的选择,一门学深了,其余知识可能都会融会贯通,那样比较的学起来会很快。不然可能陷入知识的海洋里,没准淹死了。
整体的看来,Web架构,分为服务器架构和程序架构两个方面的架构,通常的Web架构师仍是偏向程序架构,所以学好语言,程序架构是基础,学好了这些,作一个合格的架构师没大问题,毕竟DBA,运维的东西在公司都有专业的人在干。
因此深度仍是要深刻学习编程的知识、软件架构知识,有了这个基础后,Web架构师应该在大数据量、高并发、高负载、以及高容错方向再有所了解和涉及,再返过来促进咱们对软件架构的思考,这种深-广-深-广的模式是咱们学习的方法,只要坚持不懈努力几年,作真正合格的Web架构师是没大问题的。
另外因为学东西太多,在学习中也要和其余架构师多交流、共同进步,多参考其余架构师的杰做,是很明智的选择。