前言
现如今编程语言像雨后春笋般冒了出来; 就目前来看当下较为流行的有Java、PHP、C、C++、Python、Go等; 但在其中,稳坐榜首的仍然是Java编程语言,且在以面向对象思想占主导的应用开发中,Java往往成为其代名词
Java语言的背景强大,开发者众多,一直发展都不错;从普遍的企业的角度来看,存在的问题是:后台被认为是技术核心,客户端却被认为技术含量不高,甚至小企业会让后台人员顺便开发简单的客户端,或者让后台的架构师管理客户端几个人
事实上,客户端技术和后台技术的侧重点完全不同,连编程语言都不同;另外,后台的人跟用户相对离得太远,而客户端是直接面向用户的,与产品人员沟通更直接;所以,我认为企业产品真的是为了给用户使用,那么选客户端背景的人员去做架构师会更好

何为架构师?
架构师是一个既需要掌控整体又需要洞悉局部瓶颈并依据具体的业务场景给出解决方案的团队领导型人物;一个架构师得需要足够的想像力,能把各种目标需求进行不同维度的扩展,为目标客户提供更为全面的需求清单;架构师在软件开发的整个过程中起着很重要的作用
架构师的主要任务不是从事具体的软件程序的编写,而是从事更高层次的开发构架工作;他必须对开发技术非常了解,并且需要有良好的组织管理能力;可以这样说,一个架构师工作的好坏决定了整个软件开发项目的成败
架构师的职位要求
1、沟通能力
为了提高效率,架构师必须赢得团队成员、项目经理、客户或用户认同,这就需要架构师具有较强的沟通能力;沟通能力是人类最普遍性的素质要求,技术人员好像容易忽略,想成为架构师就不能忽略
“沟通”的确是一种能力;这一条我认为最为重要,所以排在首位。我甚至认为下面几条都可以忽略,唯一这一条得牢记,而且要常常提醒自己
2、领导能力
架构师能够推动整个团队的技术进展,能在压力下作出关键性的决策,并将其贯彻到底;那么架构师如何来保证这种执行力?这就需要架构师具有领导能力
架构师的领导能力的取得跟项目经理不太一样; 项目经理主要负责解决行政管理,这种能力与技术关系不大,他有人权和财权,再扯上一张“领导”的虎皮,采用“胡萝卜加大棒”的方式,基本上可以保证执行力;架构师在项目里面可能更多地使用非正式的领导力,也就是我们常说的影响力,里面包括个人魅力、技术能力、知识传递等等
3、抽象思维和分析能力
架构师必须具备抽象思维和分析的能力,这是你进行系统分析和系统分解的基本素质; 只有具备这样的能力,架构师才能看清系统的整体,掌控全局,这也是架构师大局观的形成基础;你如何具备这种能力呢?一是来自于经验,二是来自于学习
架构师不仅要具备在问题领域上的经验,也需要具备在软件工程领域内的经验; 也就是说,架构师必须能够准确得理解需求,然后用软件工程的思想,把需求转化和分解成可用计算机语言实现的程度;经验的积累是需要一个时间过程的,这个过程谁也帮不了你,是需要你去经历的;但是,如果你有意识地去培养,不断吸取前人的经验的话,还是可以大幅度缩短这个周期的
4、技术深度和广度
架构师最好精通1-2个技术,具备这种技术能力可以更加深入的理解有关架构的工作原理; 也可以拉近和开发人员的距离,并形成 团队中的影响力
架构师的技术知识广度也很重要,需要了解尽可能多的技术; 所谓见多识广,只有这样,才可能综合各种技术,选择更加适合项目的解决方案;有的人说,架构师技术广度的要求高于技术深度的要求;这是很有道理的
总而言之,一句话:架构师是项目团队中的技术权威

那我们该如何成为架构师?
在当下这个信息共享的时代,很多资源都可以在网络上找到,只取决于你愿不愿意找或是找的方法对不对了
这也造成很多朋友不是没有资料,但是资料的内容大多杂乱无章,不知道怎么看从哪看起,甚至是看后就忘;不少内容都是针对单个的技术问题,无法直接用到项目中去;并且可能因为很多内容都是几年前的,目前可能已经无法使用了,更不用说代码质量参差不齐,直接生搬硬套也无法适应项目需求迭代,非常不方便
归根结底还是因为没有一个系统的方向和学习方法,这里有一份由腾讯大佬所整理的一份进阶架构师的思维导图,在学习中还根据这套思维导图整理了一套学习笔记;有需要思维导图及学习笔记的朋友 可以私信发送 “进阶” 即可 免费获取;希望大家看完之后能给大家一些帮助
资料如下所示:
《架构师架构技术思维导图》

《架构师架构技术必知六大设计原则》
1.单一职责原则
2.开闭原则
3.里氏替换原则(LSP)
4.依赖倒置原则
5.接口隔离原则
6.迪米特法则(最少知识原则)

《架构师架构技术必知结构型模式与创建型模式》
1.结构型模式基本概念
1.1 代理模式
1.2 适配器模式(Adapter模式)
1.3 桥接模式(Bridge模式)
2.创建型模式

《架构师架构技术必知MVC,MVP,MVVM与架构》
1. 架构设计的目的
2. MVC设计架构
2.1 Android中的MVC
3.MVP设计架构
3,1MVP架构存在的问题与解决办法
4.MVC、MVP与MVVM的关系
4.1 MVC->MVP->MVVM演进过程
5. 基于AOP的框架设计
5.1 AOP在Android中的使用
6. 干货:AndroidApp架构的设计经验
6.1 整体架构

思维导图及学习笔记获取方式: 私信发送 “进阶” 即可 免费获取
架构师这个词,在我大学期间也觉得遥不可及;从来没有想到过自己有一天也会戴上这个头衔,其实,只要按照我上述的思路,按部就班,脚踏实地的不断的学习、进阶,并不难的;只看你有没有这个心罢了
并不要觉得自己离架构师的路有多少,千里之行始于足下;不要觉得自己的年纪已经成长不到架构师就要到35岁退休了,学习最好的时候,就是现在!
·
网友评论