当前位置: 首页 > news >正文

Lottery抽奖项目学习第二章第一节:环境、配置、规范

Lottery抽奖项目学习第二章第一节:环境、配置、规范

环境、配置、规范

下面以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 本地/服务器均可

其他所需环境如下
请添加图片描述

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

二、环境配置

  • 技术栈项:JDK1.8,Maven3.6.3,MySQL5.7,SpringBoot、MyBatis、Dubbo随POM版本
  • 初始打包:需要在Lottery工程的Maven根上,点击install才能完整打包,否则Lottery-Test等不能正常引入jar包
  • 建表语句:doc/asserts/sql-建议随非分支内sql版本走,因为需求不断迭代升级优化,直接使用最新的会遇到在各个分支下的代码运行问题。
  • 下载依赖db-router-spring-boot-starter本项目依赖自研分库分表组件,需要用IDEA像打开一个项目一样打开,之后点击Maven install就可以把jar打包到本地仓库,Lottery就可以引入jar了。
  • 服务部署:本机直接安装Docker进行配置;

三、工程列表

  • 分布式核心功能服务系统:Lottery:提供抽奖业务领域功能,以分布式部署的方式提供RPC。
  • 网关API服务:Lottery-API:网关服务,提供H5页面抽奖、公众号开发回复消息抽奖。
  • C端用户系统:Lottery-front:开发中,vue H5 转盘抽奖lucky-canvas
  • B端运营系统:Lottery-ERP:满足运营人员对于活动的查询、配置、修改、审核等操作。
  • 分库分表路由组件:db-router-spring-boot-starter:本项目依赖自研分库分表组件,需要下载后构建开发一个基于HashMap核心设计原理,使用哈希三列+扰动函数的方式,把数据散列到多个库表中的组件,并验证使用。
  • 测试验证系统:Lottery-Test:用于测试验证RPC服务、系统功能调用的测试系统。

六、开发规范

分支命名:日期+id+功能单词,如:

230820_LBHQC_buildFramework
# 主要type
feat:     增加新功能
fix:      修复bug# 特殊type
docs:     只改动了文档相关的内容
style:    不影响代码含义的改动,例如去掉空格、改变缩进、增删分号
build:    构造工具的或者外部依赖的改动,例如webpack,npm
refactor: 代码重构时使用
revert:   执行git revert打印的message# 暂不使用type
test:     添加测试或者修改现有测试
perf:     提高性能的改动
ci:       与CI(持续集成服务)有关的改动
chore:    不修改src或者test的其余修改,例如构建过程或辅助工具的变动

项目学习源自小傅哥的知识星球
处于版权考虑,后续章节内容将以仅个人可见的形式发布。

http://www.lryc.cn/news/141899.html

相关文章:

  • OpenCV之reshape函数
  • 【JavaEE】Spring事务-@Transactional参数介绍-事务的隔离级别以及传播机制
  • 微信小程序canvas type=2d生成海报保存到相册、文字换行溢出显示...、文字删除线、分享面板
  • C++卷积神经网络
  • go 读取yaml映射到struct
  • Redis 10 大数据类型
  • 优化生产流程:数字化工厂中的OPC UA分布式IO模块应用
  • Elasticsearch(十四)搜索---搜索匹配功能⑤--全文搜索
  • 已解决Gradle错误:“Unable to load class ‘org.gradle.api.plugins.MavenPlugin‘”
  • windows中安装sqlite
  • 前端面试:【系统设计与架构】前端架构模式的演进
  • 【CSS】em单位的理解
  • 无涯教程-Python机器学习 - Based on human supervision函数
  • 【滑动窗口】leetcode209:长度最小的子数组
  • C++ STL unordered_map
  • 全流程R语言Meta分析核心技术应用
  • Go并发可视化解释 - Select语句
  • 在线SM4(国密)加密解密工具
  • golang的类型断言语法
  • 提速换挡 | 至真科技用技术打破业务壁垒,助力出海破局增长
  • 第3篇:vscode搭建esp32 arduino开发环境
  • Apache Shiro是什么
  • Socket基本原理
  • Docker容器:本地私有仓库、harbor私有仓库部署与管理
  • Mobx在非react组件中修改数据,在ts/js中修改数据实现响应式更新
  • 什么是异步编程?什么是回调地狱(callback hell)以及如何避免它?
  • Java8 Stream流常见操作--持续更新中
  • 【Linux】多线程概念线程控制
  • Qt --- 自定义提示框 类似QMessagebox
  • Redis 分布式锁与 Redlock 算法实现