未来三年要走的路

    技术2022-07-10  143

    我想后面的路该这么走?

    一个中间件开发者需要哪些素质?

    语言基础。从 Java 程序员的角度,基础通常就是:集合,并发,JVM,Netty,IO、NIO(mmap,sendfile)

    计算机基础,由于中间件开发人员经常和 OS 打交道,所以计算机基础也必不可少,例如文件系统(IO/磁盘),进程线程,内存管理。

    网络基础,搞后台的人员,肯定要对网络熟悉了,熟悉在 Linux 下排查网络问题,熟悉 Epoll 原理等。

    分布式相关知识,互联网海量数据背景下,分布式知识必不可少,CAP, Paxos,Raft,zab,2pc,3pc,base等等。最好能根据这些理论写出实现代码。

    熟悉开源实现,即使你是业务开发人员,你也 100% 会接触开源项目,例如 Spring,那么,通常你需要对这种常用的开源代码有深刻的理解,不仅知晓其原理,也领会其设计。从大的角度看,你得看清整个框架的背景,设计和取舍,从小的角度看,你得看清框架的内部实现细节,有哪些有趣的地方(通常这种框架都会进行性能优化)。

    如何成为中间件开发人员? 巩固 Java 基础,集合源码,并发源码,JVM 原理,Netty 原理源码,IO 相关(涉及到零拷贝文件存储),这些都是 Java 基础,通常是必须的。

    分布式原理,最起码知晓理论知识,最好能写一个,哪怕参照开源的也行。

    源码,Spring Mybatis Tomcat 等等,这些代码通常是你最先接触的,不妨从这里开始。RPC 中间件相关的,Dubbo,Motan,SOFA,挑一个吧,推荐 SOFA。

    再熟悉熟悉(熟悉指源码和设计)分布式的相关产品,假设你是 Java 开发,推荐 RocketMQ,Apollo 配置中心等等中间件,其实都可以,MQ 相对复杂。

    操作系统,通常,你在研究上面的内容时,会遇到操作系统的疑问,遇到不要绕过,尽量弄明白。

    自己的产品,有就最好了,例如公众号,博客,教学视频,GitHub 项目等等,总之,是拿得出手的东西。

    Processed: 0.013, SQL: 9