内容简介:Focus聚焦社区v0.1.0 beta版本发布啦~!新年第一发!第一次给你!~ 此版本为社区的第一个发布版本,还有很多待完善的功能等待大家发现。也诚请各位小伙伴们关注GoFrame项目发展,为生态添砖加瓦,加油助力! 零、...
Focus
聚焦社区v0.1.0 beta
版本发布啦~!新年第一发!第一次给你!~
此版本为社区的第一个发布版本,还有很多待完善的功能等待大家发现。也诚请各位小伙伴们关注GoFrame
项目发展,为生态添砖加瓦,加油助力!
零、关于Focus
Focus聚焦社区
是GoFrame
社区项目,采用了简洁强大的GoFrame
作为后端WEB
框架, 由于前台系统需要SEO
因此使用了GF
自带template
模板引擎,数据库用MySQL
,前端使用jQuery
/bootstrap
框架。
一、源码地址
二、演示地址
请不要恶意发送垃圾数据哦~ 地址: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
部署
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
入口文件
程序入口文件。
六、框架设计
├── 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
开发框架,可以参考框架的一些设计介绍。
七、项目截图
图1. 社区首页
图2. 登录页面
图3. 注册页面
图4. 发布/编辑页面
图5. 内容详情
图6. 搜索页面
图7. 个人主页
图8. 编辑资料
八、数据库表设计
九、功能模块进度
以上所述就是小编给大家介绍的《Focus 聚焦社区 v0.1.0 beta,GoFrame 开源社区项目》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- GitDigger 0.1.0 发布,开源的开源社区
- 开源,社区与朋友们
- [译] 开源:从社区到商业,如何构建开源商业模式
- 开源社区贡献者协议介绍
- 龙芯开源社区上线.NET主页
- 怎样成为一个优秀的开源社区成员
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
C++ API设计
[美] Martin Reddy / 刘晓娜、臧秀涛、林健 / 人民邮电出版社 / 2013-8 / 89.00
现代软件开发中的一大难题就是如何编写优质的API。API负责为某个组件提供逻辑接口并隐藏该模块的内部细节。多数程序员依靠的是经验和冒险,从而很难达到健壮、高效、稳定、可扩展性强的要求。Martin Reddy博士在自己多年经验基础之上,对于不同API风格与模式,总结出了API设计的种种最佳策略,着重针对大规模长期开发项目,辅以翔实的代码范例,从而有助于设计决策的成功实施,以及软件项目的健壮性及稳定......一起来看看 《C++ API设计》 这本书的介绍吧!