不知道大家有没有在招聘 信息中看过软件架构师这个职位。架构师是目前很多软件企业最急需的人才,也是一个软件企业中薪水最高的技术人才。通俗的说就是设计师、画图员、结构设计者,这些定义用建筑学来类比最容易理解。比如用木材做一个小小的房屋模型,1、在纸上画图 2、选择合适的木材 3、搭建房屋模型。其中那个在纸上画图的人就是架构师了。俗话说“不想当架构师的程序员不是好的程序员”,那么如何成为一名架构师呢?
架构师不是通过理论学习就可以的,不过不学习相关知识那肯定是不行的。成为一名软件架构师所需具备的能力:
1、经验
首先必须具有丰富的开发经验,是个技术主管。因为他必须清楚什么是可以实现的,可以通过什么方式去实现,对应的难易度,实现出来的系统面对需求变化的适应性等一系列指标。
你最好是在设计的时候应当先建立一个技术原型,或者称为“端到端”原型。以证明你的设计是能够工作的。你应该在开发工作的早期做这些事情,因为,如果软件的设计方案是不可行的,在编码实现阶段无论采取什么措施都于事无补。技术原型将证明你的设计的可行性,从而,你的设计将更容易获得支持。
这些都需要长期的开发实践才能真正的体会到,单从书本上很难领会到,就算当时理解了也不一定能融会到实践中去。
2、技术
广阔的知识领域是广度的要求,因为没有广度就成了井底之蛙。然而有了广度还要有深度。人的精力有限,但至少要精通1~2门技术。
3、熟悉分布式WEB服务
大一点的项目都会遇到,你需要用WS,WCF,Remoting去实现它,这些原理是你应该知道。
4、NoSQL
你可以选用不同的开源项目,redis、memcached需要会二者之一
5、缓存:cache
每个项目都会有自己的缓存机制,作为架构师的你,必须为你的企业开发一个统一的,易扩展的组件
6、负载均衡:Nginx
对于访问量大的WEB服务器,做负载是必要的,没有一台服务器可以满足无穷大的访问量,所以要多架几台WEB服务器
7、文件存储:FastDFS
无论是京东,淘宝,稍微有规模的企业都会有自己的文件存储机制,对于文件上传,下载,管理是很有必要的。
8、面向服务的体系结构(service-oriented architecture,SOA)组件
统一,公用,规范,如果你的项目有这些东西时,你应该去理解一个SOA了,它会将系统公用的模块,组件统一起来,为外部提供一个统一的接口,在各个领域中,统一去调用。
9、面向切面(方面)的编程Aspect Oriented Programming
面向切面编程, 它是对面向对象OOP的补充,它让程序开发变得更加完美,将一个系统在横向上进行切割,把可以提出现的东西提出来,并使用动态插拔(动态代理)机制实现组件在各个领域系统中的插拔,微软的orchard是个不错的例子。
除此之外,你还应该尽量阅读博客、观看/参加Twitter或G+、听播客、读杂志、参加用户小组会议和技术会议,并且在这些会议上踊跃发言。这不仅能培养你的沟通能力还能够让你获得无穷的乐趣。
想要成为软件架构师不容易,但是如果你对软件架构师的招聘 很感兴趣,那就以此为目标,从今天开始努力提高自己!
本文由乔布简历 整理成文