# 第 2 章 【重要】小册学习介绍&源码授权

作者:小傅哥
博客:https://bugstack.cn (opens new window)

沉淀、分享、成长,让自己和他人都能有所收获!

抛开 CRUD 而言,程序员为什么要学中间件开发?

工作三年、在职五年,经历过出入职场、感受过跳槽晋升,在这个阶段过程中你一定会感受到自己的技术成长或是不断突破也或是遇到瓶颈,而不同的境遇也都来自于自身在职场中的不同发展路径决定。

很少有人不是一腔热血踏征程,只不过被糟心的需求、屎山的代码、明天就上线的现实把斗志磨平。哪怕你兢兢业业、勤勤恳恳,也不一定能阻挡住市场的变化、公司的调整、部门的变动,那在这个过程中,我们做编程开发的程序员沉淀下了什么呢?

所以,当你有意识到自己对未来技术路线高度追求和走向,那么就该不只是关于业务代码的开发,也要不断的探索那些看似造飞机的深度技术探索,而中间件的设计学习可以算是是对框架源码、数据结构、算法理论最佳的实践。

# 一、小册章节内容结构

小册从 第 3 章第 18 章,每一章节都会对应有一个中间件的设计和实现,为了便于读者快速有效的学习小册中的技术内容,这里介绍下小册中章节的内容结构,涵盖以下5方面内容:

  1. 开篇引导,在技术、经验、成长等各方面汇总的内容,帮助大家扩宽知识面和增加成长经验。
  2. 需求背景,讲述此中间件会因为什么场景、什么需求下用于解决什么痛点而提出的。
  3. 方案设计,针对需求背景的痛点问题,做中间件架构方案设计,包括设计图稿和实现描述。
  4. 技术实现,主要是对方案设计的具体实现落地,这个过程会包括完整的实现源码以及所有核心代码的讲解。保证大家在学习的过程中也能完成中间件的设计和开发。
  5. 测试验证,每一个中间件的实现都有一个对应的测试工程,例如:whitelist-spring-boot-starterwhitelist-spring-boot-starter-test。通过测试工程对中间件实现预期的验证,可以让大家更加容易的理解一个需求的背景、设计、实现到交付验证的过程。
  6. 文末总结,是对每一篇文章的概要汇总,也是给读者在文末针对此篇文章的学习的一个帮助提醒,也希望你学到的信息要远比站在作者视角总结的内容还要完善。

# 二、开发环境

  1. JDK 1.8
  2. SpringBoot 2.3.5.RELEASE
  3. Maven 3.6.1
  4. Mysql 5.6
  5. Elasticsearch 7.10.2 Windows 下载 (opens new window)Mac 下载 (opens new window)
  6. kibana 7.10.2 Windows 下载 (opens new window)Mac 下载 (opens new window)
  7. zookeeper 3.6.0