个人做Android开发差不多两年时间,最近开始转到服务端,说一下转岗等入门新手,需要掌握的服务端技术储备。服务端的方向有以下几个方面:
服务: 面向业务开发,目的在于快速响应客户端请求.涉及到Spring,高并发等知识点.
数据库: 关系型(MySQL等)和非关系型数据库(Redis,MemCache等).
分布式: 基础架构,提供对数据库和事务等服务的基础能力.初学者了解理论知识即可.
算法: 滴滴,头条等重算法公司会着重此方面.
大数据: 目前的应用场景比较少,主要在AI方向及大公司公司偏多.
一 服务端入门
1 Java
语法和使用经验
推荐书籍
Java编程思想 豆瓣 9.1
工具书,对于语法的设计探讨的很深入.
深入理解Java虚拟机(第2版) 豆瓣 8.9
国人写的,对JVM虚拟机的架构,内存管理,GC回收等做了深入浅出的分析.
2 Spring
服务端主流的解耦设计框架,主要理解ioc依赖注入和aop面向切面编程。由于我是android开发,会使用依赖注入框架,所以理解不难。
推荐书籍
Spring in action(spring实战)豆瓣8.4
spring的api使用说明,对于新手非常友好,易读易快速了解spring开发框架。
Spring揭秘 豆瓣 9.0
国人写的书,风趣幽默,会探讨spring各组件的设计原由和架构,可以给初中级开发者对spring框架有比较清楚的认识。
3 jsp和servlet
现在主流的spring MVC框架必然会涉及到servlet服务,重点是servlet服务的session管理及生命周期。servlet服务承载了普通restful风格的请求(Http等)及web网页的交互。
jsp作为view展现层技术,可以与servlet对象互相转化,所以可以了解下jsp语言,不强求。
推荐书籍
jsp&servlet学习笔记 豆瓣8.8
4 Tomcat容器
Spring服务是寄生在Tomcat这个HTTP及Servlet容器中的,有必要了解Tomcat服务的启动及请求转发的流程.
推荐阅读
我没有看书籍,主要是看网上的Tomcat源码解析系列.
5 网络
了解目前流行的TCP,HTTP(S)协议,代理,缓存,安全等知识,是Web开发必备知识.
推荐书籍
图解HTTP 豆瓣8.1
相当友好的HTTP协议讲解书籍,很薄,讲解有趣,适合入门.
HTTP权威指南 豆瓣8.6
对于了解HTTP协议及网络通信过程中的硬件,有很大帮助.
6 并发
在应对高并发的网络场景,需要了解并发,锁,网络编程模型等工具.
推荐书籍
Java并发编程的艺术 豆瓣7.2
通俗易懂.
Java并发编程实战 豆瓣9.0
对并发的原理做了细致的剖析,裂墙推荐.
Netty实战 豆瓣7.7
Netty是目前非常流行的NIO框架,通过这本工具书了解这个框架的网络编程模型和思想也是不错的,当然最好还是上手撸源码.
7 数据库
基础最好从关系型数据库入手,我是重点了解了MySQL.语法直接查询官方文档即可.NoSQL数据库选择了高性能的Redis做了解.
推荐书籍
MySQL必知必会 豆瓣8.4
超薄,通俗易懂.
高性能MySQL 豆瓣8.8
进阶书籍,需要多翻,对基础有要求.主要讲述MySQL的优化策略.
Redis设计与实现 豆瓣8.5
本身NoSQL是key-value存储结构,使用简单.但是要了解内部实现,多翻翻书才是好的.
二 服务端流行框架
1 微服务架构
国内的选型大多是两派:
1 Spring Boot + 淘宝系Dubbo的RPC框架
2 Spring Boot + Spring Cloud全套框架
我选择了Dubbo去了解,这种微服务框架,重点看源码哦.
2 分布式
为了了解单机到分布式的变迁,国内的几本Java大型网站研究经典书籍最好都读一读.
推荐书籍
大型网站系统与Java中间件开发实践 豆瓣7.9
对中间件的理解帮助非常大.
大型网站技术架构 豆瓣7.9
对大型网站的技术架构变迁有比较细致的阐述.
从Paxos到Zookeeper 豆瓣7.8
对分布式的协议,以及流行的Zookeeper注册中心有清晰的讲解.
以上,记得边读边思考,才能好好消化~