美文网首页Golang
Golang web开发目录结构说明

Golang web开发目录结构说明

作者: 菩提老鹰 | 来源:发表于2020-12-25 15:07 被阅读0次

本篇文章介绍的是自己在实际go项目开发中使用的目录结构说明,如有更好的组织形式可以入群950828714或者关注微信公众号 ”行者说“ 交流

目录结构说明

Gin Web项目开发都是按照如下所示目录组织

goproj_org
├── todo.go    # main 入口
├── go.mod
├── go.sum
├── config    # 配置文件存放
│   └── config.yaml
├── controller  # api 接口逻辑,http handler
│   ├── DemoController.go
│   └── TodoController.go
├── model      # model定义
│   └── Todo.go
├── router    # 路由入口
│   ├── middleware  # gin框架 自定义中间件,中间件一般用于路由中,故放到这里
│   │   └── jwt.go
│   └── router.go
├── service 
│   ├── ConfigService.go
│   ├── DBService.go
│   └── TodoService.go
└── util      # 公共函数部分,比如加密,时间处理等
 └── encrypt.go</pre>

1、config 目录 是存放配置文件,一般是程序主配置文件和,日志配置文件
2、model 目录 是实体模型定义,一般是一个实体一个文件,比如 Todo.go
3、service 目录 是实体和数据库处理逻辑存放,比如新增一个实体;

另外也把数据库链接和配置文件处理等放到了service下;在有些情况下可以:
  独立`database目录` 存放数据库连接的逻辑
  独立`system 目录`存放配置文件加载和读取逻辑

4、controller目录,有时候也叫 handler目录,是实际HTTP请求的api接口处理,对应到Gin框架中就是handler函数
5、router 目录是定义路由的地方
6、middleware 目录存在router下,实现自定义的中间件逻辑,Gin框架中间件一般用于路由中
7、util 目录是定义公共函数、工具的地方
8、这里的第一层级的todo.go 有时候也会命名成main.go 就是整个程序的入口

Golang的 可见性规则

上一篇文章 基于Gin的golang web开发增删改查实战(TodoList) 中所有的逻辑都在单个文件中实现,因为Todo项目本身就很简单,所有单个文件存放还不至于太混乱。但是一旦把不同的逻辑拆分到不同的目录之后,需要注意Golang的 可见性规则

什么是Golang的 可见性规则?

Go语言中没有像其它语言一样有public、protected、private等访问控制修饰符。如果想要实现这样的访问控制是怎么做的呢,golang通过字母大小写来控制可见性的。

在定义常量、变量、类型、接口、结构、函数等的名称是大写字母开头表示能被其它包访问或调用(相当于public),非大写开头就只能在包内使用(相当于private,变量或常量也可以下划线开头)


附加:

本次demo实战详细代码请参考 https://gitee.com/colin5063/go-learn/tree/master/20201225-projorg

相关文章

  • Golang web开发目录结构说明

    通常开发项目开发时目录结构可以随意设计,但好的目录结构能让代码显得更加清晰。 Golang web 项目通用目录结...

  • Golang web开发目录结构说明

    本篇文章介绍的是自己在实际go项目开发中使用的目录结构说明,如有更好的组织形式可以入群950828714或者关注微...

  • golang开发目录结构

    在实际的项目中发现大家的目录结构都比较凌乱,基本每个人都有每个人的风格,一个项目在不断地变大,一些新的文件或目录又...

  • Servlet 学习

    Java web项目结构目录 前言 Java web 是指用Java开发的web项目。Java web开发至今已有...

  • 通过 Orange 框架快速搭建一个 Web 服务

    Orange 框架是一款国人开发的 Web 开发框架,结构清晰,功能多样。同时它基于 Golang 语言开发,保证...

  • JSP1.0

    Web应用程序--Tomcat目录结构 ​​ WEB-INF目录结构 ​​ MyEclipse Web项目目录结构...

  • Go 快速指南

    golang作为静态语言,在web端开发,高并发上具有优势,是google开发的现代语言。 代码结构及其简单运行 ...

  • Servlet基础学习(一)

    Servlet基础学习 一、JavaWEB开发的目录结构 --应用程序根目录/--WEB-INF目录:必须目录--...

  • Golang 专栏

    简介 整理 Golang 相关文章,方便大家阅读。 目录 golang 编程规范 - 项目目录结构[https:/...

  • 2021 年 11大强大的 Golang Web 开发框架

    2021 年 大强大的 Golang Web 开发框架 最佳 Golang 网络框架列表11 个用于 Web 应用...

网友评论

    本文标题:Golang web开发目录结构说明

    本文链接:https://www.haomeiwen.com/subject/tbtinktx.html