# Video-go **Repository Path**: linux2014/Video-go ## Basic Information - **Project Name**: Video-go - **Description**: Golang实现视频网站 - **Primary Language**: Go - **License**: BSD-3-Clause - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 5 - **Created**: 2021-03-26 - **Last Updated**: 2021-03-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Video-go #### 介绍 Golang实现视频网站 #### #### 开发步骤 1. 一个简单例子`SimpleWebApp`实现测试相关 1. 创建一个简单的web页面测试 `go test -v` 2. t.SkipNow() 刚在测试函数的第一行跳过此测试并`pass` 3. 分组测试 `t.Run` 和 初始化测试 `TestMain` 4. 性能测试`Benchmark` 命令`go test -bench=.` 测试性能的时候注意,要保持稳定状态,不然永远不会终止 ```go func f1()int{ if n>0{ n-- } return n } func BenchmarkAll(b *testing.B) { for n := 0; n < b.N; n++ { f1() // 非稳定状态,永远不会跑完 } } ``` 2. REST设计风格的API json作为数据格式 1. 用户相关 1. 创建/注册用户(URL: `/user` 状态码:201,400,500) 2. 登录用户(URL:`/user/:username` 状态码:200,400,500) 3. 获取用户基本信息(URL:`/user/:username` 状态码:200,400,401,403,500) 4. 用户注销(URL:`/user/:username` 状态码:204,400,401,403,500) 2. 用户资源 1. 所有资源(URL:`/user/:username/videos` 状态码:200,400,500) 2. 获取一个资源(URL:`/user/:username/videos/vid-id` 状态码:200,400,500) 3. 删除一个资源(URL:`/user/:username/videos/vid-id` 状态码:204,400,401,403,500) 3. 评论相关 1. 显示评论(URL:`/videos/:vid-id/comments` 状态码:200,400,500) 2. 发送评论(URL:`/videos/:vid-id/comments` 状态码:201,400,500) 3. 删除评论(URL:`/videos/:vid-id/comment/comment-id` 状态码:204,400,401,403,500) 3. 数据库设计 1. 创建users、video_info、comments、comments、sessions四个表,尽量不用外键关联,详见SQL文件 2. 连接数据库`dbops/conn.go` 4. 用户表完成并测试 5. 视频表完成并测试 6. 评论表完成并测试 7. session与数据库交互和逻辑处理 8. 中间件实现用户创建的API完成 9. streamserver完成视频播放 10. streamserver完成视频上传 11. 调度器 scheduler 12. 前端服务完成