# 第01节:环境、配置、规范

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

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

接下来的章节,小傅哥会带着大家以DDD架构和设计模式落地实战的方式,进行讲解和实现分布式抽奖系统的代码开发,那么这里会涉及到很多DDD的设计思路和设计模式应用,以及互联网大厂开发中所应用到的技术,包括:SpringBoot、Mybatis、Dubbo、MQ、Redis、Mysql、ELK、分库分表、Otter 等。那么在开始项目之前,你可以仔细阅读如下介绍信息,方便你能更加快速的进入学习。

# 一、开发环境

  • JDK 1.8
  • SpringBoot 2.6.0
  • Dubbo 2.7.10
  • DB-ROUTER 自研分库分表路由组件,带着你一起写个SpringBoot Starter
  • vue 开发H5大转盘抽奖
  • 微信公众号 对接提供API,回复抽奖
  • Docker 本地和云服务都可以

其他所需环境如下(mysql\kafka\zk\redis\xxl-job):

  • 不只是 DDD 分布式项目开发,你还可以学习到关于 Docker 的实践使用

# 二、工程列表

📢 注意:db-router-spring-boot-starter 为自研数据库路由组件,你需要下载代码到本地,自行构建到本地仓库进行使用。章节中也会介绍这个路由组件的设计和开发

# 三、学习说明 - 这是重点

  1. 你必须在星球APP🔝置顶消息中,申请加入项目,才能看到项目代码以及项目小册。在置顶消息中有完整的申请说明
  2. 学习入口从小册页进入(审核后才能阅读,否则温馨提示404):https://gitcode.net/KnowledgePlanet/Lottery/-/wikis/home (opens new window)
  3. 课程的每一个章节都包括:视频、文章、代码(分支),这里重点说明代码分支:课程的每一个章节中都会对应上代码的分支,需要进行切换分支学习,同时分支中 doc/assets/sql 里是每个分支所需要的最新SQL语句,在所在的分支中查看并更新到自己库表即可。
  4. 【建议】:学习过程中最好按照章节来学习,这些内容都是承上启下的,并且每个章节都有视频带着你入门之后在结合文章和代码一起学习,这么样的一个过程会让你的学习效果更加好。当然你要只是把代码抄下来,这样是没有意义的,最好结合自己的思考把代码敲下来
  5. 建表语句doc/asserts/sql (opens new window) - 建议随非分支内sql版本走,因为需求不断迭代升级优化,直接使用最新的会遇到在各个分支下的代码运行问题
  6. 代码仓库2种使用方式
  7. 学习使用:下载代码库后,切换本地分支到wiki中章节对应的分支,这样代码与章节内容是对应的,否则你在master看到的是全量代码。
  8. issue:一些常见问题可以参考 issue 文档:https://gitcode.net/KnowledgePlanet/Lottery/-/issues (opens new window)

# 四、作业提交

小傅哥希望你下学习的过程中真实的留下学习足迹👣,我不骗你,你也不要骗我。中国人不骗中国,我们一起好好进步。

# 1. 工程作业

  • 作业空间:https://gitcode.net/CreativeAlliance (opens new window)
  • 使用说明:为星球用户提供工程代码提交空间,你可以把抽奖系统的学习代码提交到空间中,按照代码仓库名称标准,项目-星球用户编号-作者ID 例如:Lottery-1-xiaofuge
示意

# 2. 文字作业

  1. 今天的你学到了哪个章节?
  2. 遇到什么问题?
  3. 怎么解决的?
  4. 掌握到了什么知识?

基于大家的学习反馈,小傅哥会在后续的直播中统一解决相关学习问题。加油,这趟车人人有收获!

注意️:按照作业提交频次和质量,小傅哥会组织一波奖品。按照作业提交数量、质量、点赞、留言,综合评分,送技术图书等奖品。

# 五、开发规范

分支命名:日期_姓名首字母缩写_功能单词,如:210804_xfg_buildFramework

提交规范作者,type: desc 如:小傅哥,fix:修复查询用户信息逻辑问题 参考Commit message 规范

# 主要type
feat:     增加新功能
fix:      修复bug

# 特殊type
docs:     只改动了文档相关的内容
style:    不影响代码含义的改动,例如去掉空格、改变缩进、增删分号
build:    构造工具的或者外部依赖的改动,例如webpack,npm
refactor: 代码重构时使用
revert:   执行git revert打印的message

# 暂不使用type
test:     添加测试或者修改现有测试
perf:     提高性能的改动
ci:       与CI(持续集成服务)有关的改动
chore:    不修改src或者test的其余修改,例如构建过程或辅助工具的变动
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

# 六、加入-项目组

  1. 本星球项目组以讨论技术为主,遵守职业道德,遵守通行版《网络准则》
  2. 禁止推送广告、发不文明链接、非正常图片等内容
  3. 禁止刷屏、发送集赞、小游戏等相关营销推广类内容
  4. 禁止频繁发送过于负面情绪内容、不要聊一些三俗内容

加群交流

本群的宗旨是给大家提供一个良好的技术学习交流平台,所以杜绝一切广告!由于微信群人满 100 之后无法加入,请扫描下方二维码先添加作者 “小傅哥” 微信(fustack),备注:你的:星球编号