1.Java 方向额外需要注意以下:
1.1 概念方面:
1.1.1 架构设计:
架构设计是在规划整个后台系统的运行模式,数据流、时序关系、异常处理等等。
主要是需要关注服务-客户端 (Client-Server) 模型,分布式设计,
高可用 High Availability,容灾设计Fault tolerant,
监控 Monitoring,日志收集 Tracing and Logging,
数据链路等等。
编程理论:
Meta-programming,Aspect-oriented programming, Lambda Expression
Java 语言相关的 Garbage Collection, 虚拟机的原理,JIT,AOT原理
移动开发(安卓)相关的系统结构,应用层次,
Dalvik虚拟机,https://source.android.com/devices/tech/dalvik/dalvik-bytecode
Android 四层模型 https://developer.android.google.cn/guide/platform
多线程应用,并行化设计:线程、进程同步问题,异步编程的理论。
实践领域:
AOP 与语言层面:Meta-programming
Spring Framework - Spring Boot, Spring 全家桶
网络
传统:Tomcat
新型:NIO, Netty, 以及 Vert.x
构建系统:
Maven (古老流行),
Gradle(新兴)
数据管理理念/ORM
Mybatis,Hibernate,Spring JPA (文章、Github,实践为主)
推荐大家看一下这些内容:
https://university.pingcap.com/courses/PCTP
Stanford: Data Intensive Systems: http://web.stanford.edu/class/cs245/
分布式系统
Paxos(新的), Raft(新的), Quorum(旧的),ZAB (PPT,MOOC为主)
Zookeeper, Kafka (基于Zab协议)
Stanford CS244b, Distributed Systems: http://www.scs.stanford.edu/20sp-cs244b/
PPT: http://www.scs.stanford.edu/20sp-cs244b/sched/
系统架构方向:
放一张 Dubbo 官网的图,来简单看看这个领域包含的生态组件。
注册服务(核心概念,优缺点等):Nacos , ETCD,
断路器(核心概念,优缺点等):Hystrix, Sentinel
API 网关(核心概念,优缺点等):Dubbo, Zuul
跟踪(Tracing,了解优缺点,使用方式) : Jaeger / Opentracing, Zipkin
监控:(了解使用方式即可) Prometheus, Grafana, AlertManager
日志收集(使用方式即可):Elastic Search,
事务(核心概念):Seata
传输(使用方式,优缺点):Netty, Vert.x
序列化(使用方式,优缺点):Fastjson, Protobuf, Cbor, ...
大数据领域(技术有些在被淘汰的边缘)
Hadoop,Spark,MapReduce (文档,实践,文章结合)
存内数据库,计算
Redis,
Geode(Gemfire),(实践,文档为主)
Ignite, 存内计算
数据库
(高性能数据库)可以参见C++部分
传统:Hive, HBase,
新的:Kylin: OLAP,华人做的;Elastic Search, Lucene: OLAP;Impala DB: SQL优化器