架构师之路:一个Java架构师需要掌握的知识技能,带思维导图

没有设计的思想,你就不能成为一名架构师。架构师是一个能撸的了一手好代码,画的了一个漂亮的UML/原型,写的了一篇技术文档,更加能解决好项目关键技术的综合人才。架构师=前端工程师+后端程序员+系统分析师+关键技术解决+各种技术搭配+设计模式+部署调优+其他,可见架构师是多面手,在项目当中起到连接管理与项目成员的重要角色。因此,在通往大神级的架构师的道路上,你需要懂需求、设计、代码、部署、架构、服务器、运维、调优等等。

简单系统架构图

一个能担负起企业级应用的架构师,脑海里常出现的词会是这些:负载均衡、集群、分布式、高并发、高可用、易管理等等,粗略说来,应具备以下知识技能:

(1)数据层:重点在于集群方案的选择,比如MySQL集群,集群方案很多,需要选择符合业务的方案,比如多主,主备,读写分离等等,是否还需要做高可用,是用lvs,还是zookeeper,是否需要例如mycat类中间件来管理数据库或者做数据分片等等。

(2)服务层:时髦一点,选择dubbo,微服务让团队开发耦合度没有那么高,各自关心各自的模块,都以服务方式发布出去。传统一点用springmvc+restful,在我看来,对于并发不高的系统,没有必要用dubbo。缓存的选择,涉及到文件缓存、数据库缓存,可以用memcached、ehcache、redis。

(3)应用层:框架太多,ssh,ssm,jfinal等等,选择适合项目团队的框架;UI界面,h5很美观,但对于浏览器的兼容就把开发人员搞哭了,可以选择成熟的ext或者easyui。

(4)网络层:多数开发人员都不用涉及,能了解下f5之类的就好。

(5)部署:是否需要用docker来部署,开源docker容器让部署轻量化,很容易就可以扩展一个节点,对于高并发、伸缩性要求高的场景可以使用。docker的出现,完全可以实现一键部署。是否需要负载均衡,可以选择硬负载(就是前面说的f5),也可以用软负载(nginx)。软负载的方案简单一点可以是apache+tomcat,需要考虑session复制,复杂一点选择lvs+haproxy。打包发布,熟练使用maven,能建立自己的maven私服,能指导项目成员使用maven打包发布。

(6)安全:大多数安全在网络层就解决了,但应用的安全不容忽视,比如需要考虑SQL注入,授权认证,这些目前框架都能解决,重点的安全问题来自框架本身,大多数应用选择框架都是开源的,如果团队没有能力修复漏洞只能等更新。

(7)其它方面:测试(自动化测试),版本管理(git or svn),大数据(奇热无比),人工智能(高大上)等等。

有人问,架构师为什么还要写代码?我认为,需要一如既往的写,但写的目标不一样,理论水平和动手能力需要同时提高。深度方面,注重的设计思想和模式;广度方面,对于前沿技术,要不懈的追求和钻研,这样才能在未来技术架构选型做出合理的决策。

那么重头戏来了,作为一个架构师,需要怎么去学习技术呢?

这里为大家分享一个学习路线:

依次是开源框架解析专题-架构师筑基专题-高性能架构专题-微服务架构专题-团队协作开发专题-B2C商城实战专题

图片如下

首先是开源框架和源码

阅读、分析源码是程序员最基本的码代码能力也是码农的根本所在,学习经典源码中所用到的经典设计思想及常用设计模式,能够帮你了解大牛是如何写代码的,从而吸收大牛的代码功力。在阿里面试中,MyBatis,Spring等框架的底层原理是经常会被问到的。

其次架构师基础

百丈高楼平地起,基础也是非常重要的,基础不牢,自然不用谈架构。

高性能架构

性能一直是让程序员比较头疼的问题。当系统架构变得复杂而庞大之后,性能方面就会下降,特别是阿里巴巴这样的一线互联网公司最为注重,因此想进入阿里,性能优化一定是要去深入学习与理解的一环

微服务

微服务是现在互联网架构技术中最火热的话题之一,也是我目前正在学习研究的方向。在面试过程中,面试官很少会问到关于微服务相关的问题。但作为一名开发者,一名有技术梦想的程序员微服务架构是现在必须要去了解的主流技术:

分布式

和微服务一样也是现在互联网架构技术中最火热的话题之一,掌握分布式和微服务的架构师,是有加分项的。

团队协作

互联网企业有很多大团队,这种大团队里有很多小团队,到小团队之后,做的业务都不相同,如果想立足成为一线互联网公司中的万能选手,最主流的分布式架构中有很多知识都是必须要去了解与学习的。并且在面试过程中,面试官会问到实际应用场景的问题:比如微服务化、用户量、并发量、业务复杂度以及可扩展程度等,这里不多赘述。

B2C商城实战

无需赘述,如果没有实战经验,如何成为一名架构师?

最后送波福利。现在加群即可获取详细版思维导图,还有Java工程化、高性能及分布式、高性能、高架构、zookeeper、性能调优、Spring、MyBatis、Netty源码分析和大数据等思维导图上多个知识点高级进阶干货的直播免费学习权限及相关视频资料,群号:835638062 点击链接加入群聊【Java高级架构学习交流】:https://jq.qq.com/?_wv=1027&k=5S3kL3v

你可能感兴趣的:(架构师之路:一个Java架构师需要掌握的知识技能,带思维导图)