共计 2447 个字符,预计需要花费 7 分钟才能阅读完成。
此版本对外围性能进行了欠缺,也对大家提的一些倡议及 bug 进行了修复;也诚请各位小伙伴们关注 GoFrame
我的项目倒退,为生态添砖加瓦,加油助力!
更新性能:
- 文章回复功能完善:退出了点赞,踩,删除,回复,驳回;
- 编辑材料退出了我的音讯模块:此版本次要退出了回复音讯对立展现;
- 退出了简略的管理员性能,能够对垃圾文章和垃圾回复进行清理;
- 退出 Docker Compose 一键部署,极大不便 linux 环境部署;
- 对网友的一些倡议及上一版本 bug 进行了修复;
零、对于 Focus
Focus 聚焦社区
是GoFrame
社区我的项目,采纳了简洁弱小的 GoFrame
作为后端 WEB
框架,因为前台零碎须要 SEO
因而应用了 GF
自带 template
模板引擎,数据库用 MySQL
,前端应用jQuery
/bootstrap
框架。
一、源码地址
github
:https://github.com/gogf/focusgitee
:https://gitee.com/johng/focus
二、演示地址
请不要歹意发送垃圾数据哦~ 地址:https://focus.goframe.org/
三、装置部署
装置
1、下载我的项目源码:git clone https://github.com/gogf/focus
2、创立 focus
数据库:
CREATE DATABASE `focus` CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_bin';
3、运行 document
下focus.sql
初始化数据库SQL
。
4、复制 config
下config.example.toml
为 config.toml
配置文件,其余配置依据须要自行调整。
# 数据库配置
[database]
link = "mysql:root:123456@tcp(127.0.0.1:3306)/focus"
debug = true
5、运行:go run main.go
6、拜访 http://127.0.0.1:8199 即可看到登录页面,默认账号 / 明码:goframe
/ 123456
一键部署
一键部署仅反对 linux,并且须要先实现 docker-compose 装置;
git clone https://github.com/gogf/focus && \\
cd focus && chmod 755 focus.sh && ./focus.sh build
更多命令,请执行./focus help
传统部署
1、装置 gf-cli
工具链,详情查看:开发工具
2、打包命令:执行 gf build
即可,具体配置请参考:build 穿插编译
3、打包后果:默认 linux/macos/windows
三个版本。
bin
├── darwin_amd64
│ └── focus
├── linux_amd64
│ └── focus
└── windows_amd64
└── focus.exe
4、将 config.toml
和focus
放到同一级目录,启动 focus
即可。
公布阐明:
默认配置文件配置中,会将 public,template
目录进行二进制打包,随着可执行文件一起公布。因而,公布时仅须要将 config.toml
和focus
拷贝到指标服务器运行即可。此外,您也能够思考将特定的配置文件用打包公布,那么公布时仅须要公布 focus
可执行文件即可。
如果您想同时打包配置文件到可执行文件中,那么您能够同时参考一下对于默认配置文件读取的批改形式:配置管理里 #默认文件批改
四、我的项目构造
├── app
│ ├── dao
│ ├── model
│ ├── shared
│ └── system
│ ├── admin
│ │ └── internal
│ └── index
│ └── internal
│ ├── api
│ ├── define
│ └── service
├── config
├── document
├── library
├── packed
├── public
├── template
├── upload
├── Dockerfile
├── go.mod
└── main.go
五、目录阐明
目录 / 文件名称 | 阐明 | 形容 |
---|---|---|
app |
业务逻辑层 | 所有的业务逻辑寄存目录。 |
– dao |
数据拜访 | 数据库的拜访操作,仅蕴含最根底的数据库 CURD 办法。 |
– model |
数据模型 | 存放数据相干的实体构造定义。 |
– system |
零碎模块 | 外部可能蕴含多个子系统,不同子系统之间资源互相隔离。 |
– index |
前端页面 | 子系统,前端页面。 |
– internal |
外部模块 | 零碎外部模块,仅供以后外部零碎调用,无奈在零碎间共享。 |
– api |
业务接口 | 零碎外部接管 / 解析用户输出参数的入口 / 接口层 |
– define |
构造定义 | 零碎外部的输出、输入数据结构定义。 |
– service |
逻辑封装 | 零碎外部业务逻辑封装,实现特定的业务需要。 |
config |
配置管理 | 所有的配置文件寄存目录。 |
docker |
镜像文件 | Docker 镜像相干依赖文件,脚本文件等等。 |
document |
我的项目文档 | Documentation 我的项目文档,如: 设计文档、帮忙文档等等。 |
library |
公共库包 | 公共的性能封装包,往往不蕴含业务需要实现。 |
packed |
打包目录 | 将资源文件打包的 Go 文件寄存在这里,boot 包初始化时会主动调用。 |
public |
动态目录 | 仅有该目录下的文件能力对外提供动态服务拜访。 |
template |
模板文件 | MVC 模板文件寄存的目录。 |
Dockerfile |
镜像形容 | 云原生时代用于编译生成 Docker 镜像的形容文件。 |
go.mod |
依赖治理 | 应用 Go Module 包治理的依赖形容文件。 |
main.go |
入口文件 | 程序入口文件。 |
六、框架设计
因为采纳了弱小易用的 GoFrame
开发框架,能够参考框架的一些设计介绍。
- 代码分层设计
- 对象封装设计
- Context: 业务流程共享变量
- 单利用多零碎设计
- 更多:框架设计
七、我的项目截图
图 1. 社区首页
图 2. 登录页面
图 3. 注册页面
图 4. 公布 / 编辑页面
图 5. 内容详情
图 6. 搜寻页面
图 7. 个人主页
图 8. 编辑材料
八、数据库表设计
九、功能模块进度
十、Focus 文档
更多材料请移步:Focus 聚焦社区文档