Java语言之所以经久不衰,长期霸占编程语言排行榜前两名,除了简单、跨平台、安全和性能不错之外,更重要的是它在开源的基础上逐渐形成了无与伦比的技术生态。Java生态里的开源技术数不胜数,而程序员的学习精力是有限的,而且也完全没必要什么都学,所以非常有必要搞清楚自己应该学习什么,由此本人特地探索了一套Java生态学习模式。
这套生态学习模式是基于当前微服务架构大行其道的实践,之所以称为生态模式,是因为开发大型系统需要多种核心技术的支撑,每种核心技术有其值得骄傲的应用场景。本人的技术生态里有那些核心技术呢?主要有如下几点考量:
-
该技术被广泛使用且基本是同领域首选或二选
-
该技术自成生态且该类技术在大型系统里必用
-
该技术学习资料丰富且易于学习
-
该技术用Java语言或其他主流语言开发
-
该技术不会很快过时
满足如上几点,本人认为是学习性价比高的技术,是必学技术。基于此,如下几门技术是本人的生态研究主角:
-
Spring Boot 解放生产力的利器
-
Dubbo / 《企业IT架构转型之道:阿里巴巴中台战略思想与架构实战》 分布式RPC,微服务架构
-
《Redis设计与实现》 缓存,NoSQL数据库,分布式锁,位图
-
《RocketMQ实战与原理解析》 / 《Kafka权威指南》 削峰填谷,异步解耦,顺序消息,分布式事务消息,大数据分析,分布式模缓存同步
-
Elasticsearch 搜索、分析和存储您的数据
即(Spring Boot + Redis + Dubbo + RocketMQ + Elasticsearch)
Java最好的实践还是写代码,生态研究对应的GitHub项目地址是https://github.com/javahongxi/whatsmars
Releases: https://github.com/javahongxi/whatsmars/releases
除了以上5个核心技术,还有一些Java生态里常用的技术也在这个项目里有研究demo,它们是配角,但也很重要,同5大主角一起构成了完整的Java生态研究计划。生态研究计划列表如下:
whatsmars-common | Utils公共模块 |
whatsmars-dubbo | 高性能分布式RPC框架 |
whatsmars-elasticjob | 分布式调度框架 |
whatsmars-elasticsearch | Elasticsearch |
whatsmars-mq | 消息中间件RocketMQ,Kafka等 |
whatsmars-redis | Redis客户端简单封装 |
whatsmars-rpc | Transport & Protocol & Serialization |
whatsmars-shardingsphere | 分布式数据库中间件 |
whatsmars-spring | Spring Framework |
whatsmars-spring-boot | Spring Boot 实战 |
whatsmars-spring-boot-samples | Spring Boot Samples |
whatsmars-spring-cloud | Spring Cloud 微服务生态 |
whatsmars-zk | zookeeper remoting 封装 |
当然,生态研究还要辅以理论学习,可以参考如下技术博客或文档:
-
阿里巴巴Java开发手册
-
技术博客 blog.hongxi.org
-
深入一点 deep.hongxi.org
最后,给几点温馨提示:
-
类→抽象类→接口
-
带着问题去看源代码,没必要把源代码看完
-
看源代码最大的技巧是看英文注释,另一个技巧是日志+DEBUG
-
如果没有时间去深入研究一款软件,那么从宏观层面理解它的设计思想是重要的
-
读书很重要,包括非技术书
PS: 快速访问本人的技术站点 -> hongxi.org