软件工程中级实训复盘(流水账)
breayhing / SIRI Lv2

执行命令以及中间的各种依赖如何更新方法:

前端:

注意前端使用的是yarn包来安装依赖,这里需要特别注意,如果使用的是npm会出现冲突(下次开会的时候说明一下就好)

1
2
3
4
5
//接下来的命令顺序执行
yarn create vite
cd bbs-frontend
yarn //安装对应依赖
yarn dev //开始项目

后端:

数据库部分:

1
2
3
4
5
6
7
#默认root密码修改为123456,我的是这样的
#修改文件的位置在zhongzhu-bbs\config\config.ini
#另一个默认填充的位置在zhongzhu-bbs\utils\setting.go

打开mysql命令行进行如下操作
CREATE DATABASE testbbs;#此处testbbs是所使用的数据库
show databases;#使用该句检测是否建立数据库成功

go代码部分:

1
2
目前main.go(乐天的耦合版本)中修改
dsn := "root:《自己的密码,两边的书名号不要打》@tcp(127.0.0.1:3306)/testbbs?charset=utf8mb4&parseTime=True&loc=Local"

开始整个项目:(前端部分现在还在尝试,暂时不太行)

1

GO本地导入包问题:

1
2
3
4
5
6
7
8
9
10
go moudle init
go mod tidy
//以上两个是如果你想要重新开始一个go项目时候应该如何去弄,尤其导入第三方库或者说驱动的时候

go.mod里面看一看,把moudle名称修改成自己这个工作文件夹的名称
比如这个文件夹的git位置是在go-bbs,那么moudle名称就是
moudle go-bbs
之后比如想要导入 go-bbs/net包的某个函数(自己写的)
那么其它模块引用的代码就是
import "go-bbs/net"

补知识部分:

git常见问题:

使用vscode啥的的时候经常会有分支有时候对不上(比如窝在gitee上面更新了一个fuckYou分支,但是在vscode本地上没办法看到),这里需要进行一些更新操作来保证更新进度一致

1
2
3
4
5
6
7
8
9
10
#首先执行
git remote -v #查看连接的远程仓库位置,我们的是
#origin https://gitee.com/new_-sse_-bbs/zhongzhu-bbs.git (fetch)
#origin https://gitee.com/new_-sse_-bbs/zhongzhu-bbs.git (push)

git remote update origin --prune#更新远程仓库

git branch -r#查看远程分支:
git branch #本地分支查看

需要學習的東西

  • JSON文件格式

  • 使用postman

    • 基本的操作
    • api document
    • 编写弄好的json测试文件进行测试
  • 用vue的vite搭建好前端项目进行项目对接部分

    • 学习vue的element ui组件并且搭建起来,把数据传输进去

    • 学习vue如何获取后端数据并且如何交互

记录(包括各种想法)

  • 可以使用mui组件库去设置(会方便很多)
  • 可以增加一个查看天气的部分的功能(花里胡哨但是表演效果好)
  • 能不能内置小游戏(之前的五子棋)
  • 能不能使用reveal.js去增加一下内容展示?

初始分析部分

  • 建立bbs

开发语言:

  • GO:Gin

  • js:Vue

    • 前端搭建:vite
  • 数据库:MySQL

暂时任务:

  • 学习go语言
  • js,vue学习
  • 搭建GO,js(Vue)相关开发工具以及环境配置
  • 数据库开发工具,环境配置
  • 分析:文档编写()

流程(根据gpt给出的答案得出)

  1. 创建一个空的 Go 模块和一个 main.go 文件。
  2. 在 main.go 文件中添加必要的包和路由,例如 gingormvue.js
  3. 创建一个数据库模型,例如 PostComment,然后使用 gorm 创建对应的数据库表。
  4. 创建一个 GET 路由,用于返回主页面的 HTML 和 JavaScript 代码。
  5. 创建一个 POST 路由,用于接收帖子的标题和内容,并将其存储到数据库中。
  6. 创建一个 GET 路由,用于返回特定帖子的 HTML 和 JavaScript 代码,并在该页面上显示相关评论。
  7. 创建一个 POST 路由,用于接收评论的内容,并将其存储到数据库中。
  8. 在前端中,使用 vue.js 创建一个主页面,其中包含一个表单用于发布新帖子,并显示所有帖子的列表。
  9. 在每个帖子页面上,使用 vue.js 创建一个表单用于回复评论,并显示所有评论的列表。
  10. 将前端代码和后端代码合并在一起,并使用 gin 提供静态文件服务。

具体流程解释:

工作日志部分(包括发癫部分)

4.20尝试进行前后端分离

暂时理解:前后端分离=前端+后端分为两个部分,两个部分都要运行起来整个程序才能跑?

GPT的解释:

1
2
3
4
5
6
7
前端部署:前端部分通常被打包成静态文件,并通过 Web 服务器(如 Nginx、Apache 等)提供给用户。前端部分可以使用 CDN(内容分发网络)来加速页面加载速度,并减轻 Web 服务器的负载压力。同时,前端可以使用缓存技术(如浏览器缓存、CDN 缓存等)来提高应用程序的性能和用户体验。

后端部署:后端部分通常运行在独立的服务器或云平台上,用于处理前端发送的请求并提供相应的数据和服务。后端部分可以使用负载均衡技术(如 Nginx、HAProxy 等)来分发请求,并使用容器技术(如 Docker、Kubernetes 等)进行部署和扩展。同时,后端可以使用缓存技术(如 Redis、Memcached 等)来提高应用程序的性能和可扩展性。

数据库部署:数据库通常被用来存储应用程序的数据,可以使用云数据库(如 AWS RDS、Azure SQL 等)或自建数据库(如 MySQL、PostgreSQL 等)来存储数据。数据库可以使用主从复制、读写分离等技术来提高数据的可用性和性能。

持续集成和持续部署:可以使用 CI/CD 工具(如 Jenkins、GitLab CI、Travis CI 等)来实现自动化构建、测试、部署和发布。通过持续集成和持续部署,可以实现快速迭代和部署,提高开发效率和应用程序的质量。
1
2

所以前后端的定义,不应该是以语言来定义,而是应该以它的运行环境,如果是在服务器端,就应该被称之为后端,代表着你看不见,摸不着。而如果运行在用户端,就应该被称之为前端,代表你是可以看得到的。
看一些博客的理解:
  • 前端后端的两种协作方式:B/S,C/S

ref:

(26 封私信 / 82 条消息) 如何正确理解前后端分离? - 知乎 (zhihu.com)

前者的html文件由服务器端生成

后者是html由浏览器生成,后端负责传递数据

在前后端分离的方式,浏览器和服务端传递的是数据,而在服务器端渲染的过程中,传递的是Html网页。

盒马生鲜提供两种方式,一种是前后端分离,一种是服务器端渲染。

前后端分离是哪种方式呢?就是外卖或者是直接买生鲜,自己回家去做。

服务器端渲染是哪种方式呢?就是直接在盒马鲜生自己加工,直接吃,或者是带回家吃。

想法:

使用前后端进行分离,可以将后端代码日后用java进行重构,前端保留之前的接口和文件?

4.22

重新使用go进行后端构建和前端,尝试做到前后端分离(感觉想法可以实现)

后端使用gin网络框架,通过axios进行通信

使用的技术栈:
  • 前端搭建:vite
  • 使用语言:typescript
开始记录:
  • 目前可以打开网页,考虑如何进行网页交互
  • 网页资源交互成功过一次,之后都不行了(好奇为什么,进一步研究一下)
4.23
  • 使用postman作为API测试工具(学习捏)
4.24
  • 尝试去学习postman(准备痛苦面具)
  • 基本确认zxy后端api写的很自由,除了跑不了都好
5.3
  • 可以增加一个查看天气的部分的功能(花里胡哨但是表演效果好)
  • 能不能内置小游戏(之前的五子棋)
  • 能不能使用reveal.js去增加一下内容展示?
5.4
  • 进行后端拆分尝试
  • 前端如何调用后端的api进行学习,并测试
  • go包的导入问题