最近读了一下kafka的源码,真的是很蛋疼,原本准备写一篇长的关于消息队列的文章,结果看到某团的技术团队有一篇文章了,并且消息队列的东西基本上写全了,就不凑热闹了。golang
做为一个以前作底层的服务器后端人员,对造轮子这事仍是比较有吸引力的,虽说如今几乎全部的东西都有成熟的开源实现,可是造轮子总有一种魅力,勾引着咱们去创造本身的轮子,这个系列就叫轮子系列吧。算法
首先,看看这个,想必你们对下面这种简历看得比较多了吧?sql
精通JAVA,Python,熟练掌握C++ 精通Redis,Memcached,Mysql 精通Nginx配置,模块开发 精通Kafka,ActiveMQ 等消息队列 精通多线程,多进程,IO复用编程数据库
这里面每一个都是轮子,若是都是精通,那能精通这些轮子得多强大,至少我hold不住这么多东西。可是,这并不妨碍爱学习的咱们来了解和制造这些轮子。编程
咱们这里造轮子并非真的是为了造轮子,如今的轮子很是多也很是好用,不到万不得已,彻底没有必要去造本身的轮子,咱们造轮子,只是为了了解轮子的构造,知道为何这东西会成为轮子,还有就是这个轮子是怎么造出来的,在造轮子的过程当中,用到的知识基本上会涵盖整个后端须要涉及到的知识,因此本身造轮子或者了解轮子仍是颇有必要的。后端
提及后端的轮子们,你们均可以说出一大串来,咱们大体来数一数啊。缓存
恩,感受上差很少也就这些了吧?和上面的简历出现的东西差很少能对上了吧?后端的轮子们,排得上号的也就是这些个方面了吧,能够作一个技能树
出来,精通
了上面这些轮子和轮子的使用,基本上后端的工做就游刃有余了,剩下的就是一些业务逻辑了,哦,固然,放心,你精通
不了所有的,但了解
甚至熟悉
仍是能作到的,好了,接下来的一段时间,让咱们一块儿来点亮这棵技能树吧。服务器
这里没有写数据库这个东西,一是我认为他不是轮子了,他比轮子复杂多了,属于像操做系统同样的基础结构了,二是这系列文章都是会对应代码的,
数据库我写不出来
,这才是关键缘由。微信
接下来的文章更新不会很频繁了,我会按照上面这个技能树,一个技能一个技能的点亮这个技能树,有些我了解得多的就说详细点,有些了解不深的就少说点,反正都会点出来,每一个技能树都会配上最最最
基础的代码实现这个轮子,固然这些代码是不能用在生产环境拉。 最后,我会使用实现的轮子们,打造一个简单的推荐引擎
,也算物有所用了。网络
恩。。。代码尚未写一行,因此这个系列文章更新会比较慢。望耐心:) 另外,不要对代码抱有很大的但愿,都只会是最最基础的测试代码,不能用在生产环境,好比http服务器的话,不会实现整个http服务,可能只会实现后面会用到的GET方法,
请把关注点聚焦到每篇文章上
既然要造轮子,那首先仍是要有点基础技术才行,也就是先要知道哪些东西是轮子的轮毂,哪些东西是轮子的胎了,代码说到底就是数据结构和算法了,因此不管什么轮子也逃不开这两个东西,除了这个还须要一些操做系统和网络相关的知识,要实现上面的那些个轮子,须要用到哪些知识呢?咱们捡最基础的和最经常使用的说说,后面的文章会一一说到这些东西。
好了,大约上面这一些知识就差不太多了,毕竟只是一个最简的实现,别看每一个也就一句话,要真正了解这些也不是一件简单的事情,更别说精通了,因此看到那种全屏精通
的简历,确定是扯淡的,找准一个你了解的领域,一顿虐吧。
除了轮子的轮毂,那是支撑整个轮子的,还有一些外围的基础技术,构成了轮子的轮胎,这部分东西就是一些编程上的技术了,都包括:
这里也就简单的三行,要都了解而且精通也很不容易,因此这些东西我也不可能讲得很好,确定有不正确的地方,欢迎你们指正出来,共同进步哈:)
造轮子的材料选golang
,有时候可能会直接使用C
,由于啊,Java不怎么会,其余语言来造轮子也不太常见。
本篇就是开了个头,后面咱们一个一个来讲。
若是你以为不错,欢迎转发给更多人看到,也欢迎关注个人公众号,主要聊聊搜索,推荐,广告技术,还有瞎扯。。文章会在这里首先发出来:)扫描或者搜索微信号XJJ267或者搜索中文西加加语言就行