通用软件项目结构分享

2019-05-31  本文已影响0人  正在修炼的西瓜君

还记得刚开始写程序的时候,那时候用的是PHP,没有使用任何框架,所有文件几乎堆在一两个文件夹中,杂乱不堪,一旦项目变大,光找找对应的文件都得花费一大堆时间,严重影响效率,而且可扩展性为零,更别说让别人看你的代码了,只怕你自己都会看晕掉。

所以,拥有一个结构清晰的文档结构对一个软件项目来说至关重要,清晰的文档结构使得我们的源码可扩展性高,容易理解和阅读,也能提高我们写代码的效率。

例如,我们使用的各种框架都拥有良好的文档结构,各个模块各司其职,将相应的代码文件放入对应模块的文件夹中,有条有理,当然,在框架的基础上还需要我们根据实际情况来扩展定制我们自己的文档结构。

程序设计的时候有一种叫“MVC”的模式,对应的文档结构也会遵循这种模式来进行设计,下面就介绍基于“MVC”的一种通用软件项目结构设计。

结构图如下:

入口文件

单一入口模式的入口文件,会对请求进行路由,转发到对应的控制器方法,go里面的一般是 main.go ,php中的就是 index.php 了。

conf

配置文件夹,存放系统配置相关参数,比如redis地址配置、数据库地址配置、日志结构配置、rpc配置等

controller

控制器,MVC中的C,参数输入输出的入口,入口文件将路由解析到具体的控制器方法进行处理,控制器再去调用相关服务获取结果,输出到前端

data

存放一些数据文件,比如产生的日志文件,上传文件缓存区等

helpers

可以将全局使用到的函数放在这里,即辅助函数

model

模型,MVC中的M,应用程序中用于处理应用程序数据逻辑的部分,通常模型对象负责在数据库中存取数据,但在细分出一层专门处理逻辑的service层之后,model一般只设置表数据结构,整合一些通用数据库操作函数

service

服务层,专门用来处理逻辑的一层,它的直接上级是controller,输入数据来自controller,输出数据返回给controller

public

公共层,或者叫 common,一般用来存放静态文件,比如js、css、图片等

views

视图,MVC中的V,存放html,xml等前端文件

test

测试用例,日常编写测试用例是一个好习惯

上一篇下一篇

猜你喜欢

热点阅读