java轮组怎么样

前言 首先,看看这个,想必大家对下面这种简历看得比较多了吧?精通JAVA,Python,熟练掌握C++ 精通Redis,Memcached,Mysql 精通Nginx配置,模块开发 精通Kafka,ActiveMQ 等消息队列 精通多线程,多进程,

前言

首先,看看这个,想必大家对下面这种简历看得比较多了吧?精通JAVA,Python,熟练掌握C++ 精通Redis,Memcached,Mysql 精通Nginx配置,模块开发 精通Kafka,ActiveMQ 等消息队列 精通多线程,多进程,IO复用编程

这里面每个都是轮子,如果都是精通,那能精通这些轮子得多强大,至少我hold不住这么多东西。但是,这并不妨碍爱学习的我们来了解和制造这些轮子。

我们这里造轮子并不是真的是为了造轮子,现在的轮子非常多也非常好用,不到万不得已,完全没有必要去造自己的轮子,我们造轮子,只是为了了解轮子的构造,知道为什么这东西会成为轮子,还有就是这个轮子是怎么造出来的,在造轮子的过程中,用到的知识基本上会涵盖整个后端需要涉及到的知识,所以自己造轮子或者了解轮子还是很有必要的。

后端的轮子们

说起后端的轮子们,大家都可以说出一大串来,我们大致来数一数啊。抗在最前面的:LVS,F5,HAProxy这类负载均衡

接下来有Nginx,Apache,Lighttpd这类Http服务

后面还有Redis,Memcached这一类KV存储器和缓存系统

如果是多机部署,肯定还有Kafka,ActiveMQ这种负责解耦的消息队列

当然也少不了Thrift这种RPC框架和Protobuf这种序列化技术

如果够高端,到了分布式领域了,zookeeper也是轮子了

恩,感觉上差不多也就这些了吧?和上面的简历出现的东西差不多能对上了吧?后端的轮子们,排得上号的也就是这些个方面了吧,可以做一个技能树出来,精通了上面这些轮子和轮子的使用,基本上后端的工作就游刃有余了,剩下的就是一些业务逻辑了,哦,当然,放心,你精通不了全部的,但了解甚至熟悉还是能做到的,好了,接下来的一段时间,让我们一起来点亮这棵技能树吧。这里没有写数据库这个东西,一是我认为他不是轮子了,他比轮子复杂多了,属于像操作系统一样的基础结构了,二是这系列文章都是会对应代码的,数据库我写不出来,这才是关键原因。

接下来的文章更新不会很频繁了,我会按照上面这个技能树,一个技能一个技能的点亮这个技能树,有些我了解得多的就说详细点,有些了解不深的就少说点,反正都会点出来,每个技能树都会配上最最最基础的代码实现这个轮子,当然这些代码是不能用在生产环境拉。 最后,我会使用实现的轮子们,打造一个简单的推荐引擎,也算物有所用了。恩。。。代码还没有写一行,所以这个系列文章更新会比较慢。望耐心:) 另外,不要对代码抱有很大的希望,都只会是最最基础的测试代码,不能用在生产环境,比如http服务器的话,不会实现整个http服务,可能只会实现后面会用到的GET方法,请把关注点聚焦到每篇文章上

轮子的轮毂

既然要造轮子,那首先还是要有点基础技术才行,也就是先要知道哪些东西是轮子的轮毂,哪些东西是轮子的胎了,代码说到底就是数据结构和算法了,所以无论什么轮子也逃不开这两个东西,除了这个还需要一些操作系统和网络相关的知识,要实现上面的那些个轮子,需要用到哪些知识呢?我们捡最基础的和最常用的说说,后面的文章会一一说到这些东西。哈希表,这个是很多轮子都要用到的东西,之前有一篇介绍哈希表的文章,后面还会继续这个算法和对应的数据结构。

树,栈,队列这些个最基础的数据结构也是会经常用到的,其中包括了各种各样的树的实现。

数据编码的基本知识。

计算机网络知识,包括一些网络协议,不仅仅是http协议,还有底层一点的tcp协议,因为有些轮子需要在tcp上实现自己的协议。

操作系统和计算机体系结构的一些知识也是必不可少的。

分布式的一些知识也是需要知道的,最后一个轮子是zookeeper,实际上是paxos协议了,我觉得我实现不了一个最简的paxos(因为这玩意就没有最简可言,必须要全实现出来),但是这部分知识还是会说到的。

好了,大约上面这一些知识就差不太多了,毕竟只是一个最简的实现,别看每个也就一句话,要真正了解这些也不是一件简单的事情,更别说精通了,所以看到那种全屏精通的简历,肯定是扯淡的,找准一个你了解的领域,一顿虐吧。

轮子的胎

除了轮子的轮毂,那是支撑整个轮子的,还有一些外围的基础技术,构成了轮子的轮胎,这部分东西就是一些编程上的技术了,都包括:多协程,多线程,多进程编程。

网络编程,多路复用技术,还有相应的事件轮询模型。

共享内存,内存映射,管道技术。

这里也就简单的三行,要都了解并且精通也很不容易,所以这些东西我也不可能讲得很好,肯定有不正确的地方,欢迎大家指正出来,共同进步哈:)

造轮子的材料

造轮子的材料选golang,有时候可能会直接使用C,因为啊,Java不怎么会,其他语言来造轮子也不太常见。

结尾

本篇就是开了个头,后面我们慢慢说。

想获取更多资料的童鞋私戳老十就好啦。

知秋君
上一篇 2024-09-12 09:02
下一篇 2024-09-12 08:36

相关推荐