title: 黑马十次方项目第一天笔记
date: 2020-09-28 17:23:25
tags:

第1章 - 项目介绍和工程搭建 (第一天)

学习目标:

了解十次方项目需求;

了解前后端分离开发模式
理解RESTful
完成项目开发环境搭建
完成父工程、公共模块和文章微服务的搭建
掌握mybatis plus的使用,并开发完成文章微服务中文章的增删改查功能 掌握公共异常处理类的使用

1 十次方项目需求分析

1.1 项目介绍
十次方是程序员的专属社交平台,包括头条、问答、活动、交友、吐槽、招聘六 大频道。
十次方名称的由来:2的10次方为1024,程序员都懂的。如果你是一位技术大咖,那么赶快发布文章,增加知名度吧。
如果你是一名技术小白,那么赶快到问答频道寻求帮助的,这里高手如云哦!

2 系统设计**

2.1 开发模式

十次方项目采用前后端分离的开发模式

2.2 技术选型

后端:springboot + springcloud + mybatis plus + mysql5.7
前端:nodejs + NUXT + elementUI + vue

2.3 技术架构

采用前后端分离的系统架构

2.4 微服务模块划分

tensquare_common 公共模块
tensquare_common 公共模块
tensquare_article 文章微服务
tensquare_gathering 活动微服务
tensquare_recruit 招聘微服务
tensquare_spit 吐槽微服务
tensquare_web 前台微服务网关
tensquare_eureka 注册中心
tensquare_sms 短信微服务

3 RESTful**架构说明**

3.1 何为**RESTful**

RESTful架构是目前最流行的一种互联网软件架构是Roy Thomas Fielding在他2000年的博士论文中提出的是Representational State Transfer的缩写,翻译过来是”表现层状态转化” 是所有Web应用都应该遵守的架构设计指导原则
7个HTTP方法:GET、POST、PUT、DELETE、PATCH、HEAD、OPTIONS

3.2 接口规范

十次方项目使用GET、POST、PUT、DELETE四种方法 幂等性:不论你请求多少次,资源的状态是一样的。
3.2.1 GET
安全且幂等
获取表示
变更时获取表示(缓存)
==适合查询类的接口使用==

3.2.2 POST
不安全且不幂等
使用服务端管理的(自动产生)的实例号创建资源 创建子资源
部分更新资源
如果没有被修改,则不过更新资源(乐观锁) ==适合数据提交类的接口使用==

3.2.3 PUT
不安全但幂等
用客户端管理的实例号创建一个资源
通过替换的方式更新资源
如果未被修改,则更新资源(乐观锁)
==适合更新数据的接口使用==

3.2.4 DELETE
不安全但幂等
删除资源
==适合删除数据的接口使用==

4 项目开发准备

4.1 开发环境
虚拟系统环境 VMware Workstation(或者云服务器)
虚拟机系统 CentOS 7
容器 docker
JDK1.8
数据库 mysql 5.7
开发工具 idea
项目构建工具 maven
所有的第三方工具如mysql等都是运行在docker 容器中的

4.3 接口测试工具**postman**

5 项目工程搭建

5.1 父工程搭建

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.4.RELEASE</version>
</parent>

<properties>
<project.build.sourceEncoding>UTF-
8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-
8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <mybatisplus-spring-boot-
starter.version>1.0.5</mybatisplus-spring-boot-
starter.version>
<mybatisplus.version>2.2.0</mybatisplus.version>
<fastjson.version>1.2.39</fastjson.version>
<gson.version>2.8.0</gson.version>
</properties>

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>

<repositories>
<repository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/snapshot</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
<snapshots>


创建子模块继承父模块
分布式ID生成器
不能使用数据库本身的自增功能来产生主键值,原因是生产环境为分片部署的。
使用snowflake (雪花)算法(twitter出品)生成的主键值
41bit的时间戳可以支持该算法使用到2082年
10bit的工作机器id可以支持1024台机器
序列号支持1毫秒产生4096个自增序列id
整体上按照时间自增排序
整个分布式系统内不会产生ID碰撞
每秒能够产生26万ID左右
雪花分布式id

×

纯属好玩

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

文章目录
  1. 1. 第1章 - 项目介绍和工程搭建 (第一天)
    1. 1.0.1. 学习目标:
  2. 1.1. 了解十次方项目需求;
    1. 1.1.0.0.0.1. 了解前后端分离开发模式
    2. 1.1.0.0.0.2. 理解RESTful
    3. 1.1.0.0.0.3. 完成项目开发环境搭建
    4. 1.1.0.0.0.4. 完成父工程、公共模块和文章微服务的搭建
    5. 1.1.0.0.0.5. 掌握mybatis plus的使用,并开发完成文章微服务中文章的增删改查功能 掌握公共异常处理类的使用
  • 1.2. 2 系统设计**
    1. 1.2.1. 2.1 开发模式
    2. 1.2.2. 2.2 技术选型
      1. 1.2.2.1. 2.3 技术架构
      2. 1.2.2.2. 2.4 微服务模块划分
    3. 1.2.3. 3 RESTful**架构说明**
      1. 1.2.3.1. 3.1 何为**RESTful**
    4. 1.2.4. 3.2 接口规范
    5. 1.2.5. 5 项目工程搭建
  • ,