1、项目目录设计

文章目录

  • 前言
  • 一、项目目录设计

前言

本项目我们将会完成一个Go项目开发框架,该项目不会包含具体的CRUD业务代码,而是从头搭建一个工作中实用的开发框架。让开发者能够熟悉整个项目的搭建流程,能够独立完成项目从0到1的搭建,而且后续业务项目都可以复用该框架快速进入需求开发。

一、项目目录设计

一个Web应用基本都会包含以下的基础模块:

  1. 项目配置,一般都是yaml文件,是全项目启动时就需要加载的相关信息
  2. Web模块(HTTP模块、RPC模块、Task定时任务模块)
  3. 数据库(MySQLRedis)
  4. 缓存模块(CacheRedis),Cache指本地缓存,通常用于定时加载一些元信息配置。
  5. 日志模块(请求日志,应用日志),请求日志为调用链路日志,一般是内嵌设置的,用户不用手动记录,而应用日志则指的是开发人员在业务开发中主动调用logs.CtxInfo,logs.CtxError等记录的日志。
  6. 应用指标(metrics、 PProf),用于打点和监控
  7. 其它(链路追踪,服务注册发现)

该项目会完成上述1-5部分,完成后,目录结构大体如下:
在这里插入图片描述

为了能够更清楚的看清层级,目录树如下

D:\GOCODE\WEB-TPL-MASTER
├─.idea
├─app   # 当前web应用
│  ├─core  # 项目基础核心,包含配置文件对应的结构体,MySQL,Redis,log等连接初始化与管理
│  │  ├─config
│  │  ├─db
│  │  ├─log
│  │  ├─redis
│  │  └─valid
│  ├─http   # http服务,包含路由,中间件,模型管理等
│  │  ├─controllers
│  │  │  ├─home
│  │  │  │  └─params
│  │  │  ├─qrcode
│  │  │  └─user
│  │  ├─middleware
│  │  │  └─logger
│  │  ├─models
│  │  └─routes
│  ├─svc  # service逻辑层,处理业务逻辑,下面一个前端页面对应一个文件夹
│  │  └─home
│  └─utils # 工具包 运行环境(IP,机房等)获取,请求与响应的封装
│      ├─env
│      ├─r
│      └─rsp
└─config # yaml配置文件管理└─env

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/45178.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【RHCE】实验(HTTP,DNS,SELinux,firewalld的运用)

一、题目 二、主服务器配置 1.下载HTTP服务,DNS服务 [rootlocalhost ~]# yum install -y httpd bind 2.开启防火墙,放行服务 # 开启防火墙 [rootlocalhost ~]# systemctl start firewalld # 放行服务 [rootlocalhost ~]# firewall-cmd --add-service…

上班摸鱼吗?一文详解代码生成神器-Velocity

引言 “我不是在教你学坏,而是教你如何提高生产效率。” ----------- 牛顿 人类社会能够一直进步发展出现在的文明世界,最大的一个原因就是这个世界上懒人居多,懒人为了偷懒就需要提高生产效率,效率提高节省下来的时间才能创造出艺术、娱乐以及更高效率的科学技术。程序员…

MySQL DDL

数据库 1 创建数据库 CREATE DATABASE 数据库名 CREATE DATABASE IF NOT EXISTS 数据库名;(判断是否存在) CREATE DATABASE 数据库名 CHARACTER SET 字符 2 查看数据库 SHOW DATABASES; 查看某个数据库的信息 SHOW CAEATE DATABASE 数据库名 3 修改数据库 …

信息学奥赛初赛天天练-44-CSP-J2020基础题-排列组合、乘法原理、捆绑法、隔板法、排除法示例及应用

PDF文档公众号回复关键字:20240711 2020 CSP-J 选择题 单项选择题(共15题,每题2分,共计30分:每题有且仅有一个正确选项) 10.有5 个小朋友并排站成一列,其中有两个小朋友是双胞胎,如果要求这…

dev小熊猫,clion设置模版教程

首先点击工具 然后进入设置 ,找到代码模版 然后点击c模版,进入之后直接输入模版之后,(还没有结束!!!),先点击应用,然后是确定!!&#…

【js面试题】深入理解浏览器对象模型(BOM)

面试题:请你说说对bom的理解,常见的bom对象你了解哪些 引言: 浏览器对象模型(BOM)是JavaScript中用于与浏览器窗口及其内容进行交互的一组对象和方法。 BOM的核心是window对象,它代表了浏览器窗口本身&…

【SQL】DML、DDL、ROLLBACK 、COMMIT详解

DML DML(Data Manipulation Language)数据操作语言,是用于对数据库中的数据进行基本操作的一种编程语言。DML是数据库管理系统(DBMS)中的一个重要部分,它允许用户或应用程序对数据库中的数据进行增、删、改…

探索GitHub上的两个革命性开源项目

在数字世界中,总有一些项目能够以其创新性和实用性脱颖而出,吸引全球开发者的目光。今天,我们将深入探索GitHub上的两个令人惊叹的开源项目:Comic Translate和GPTPDF,它们不仅改变了我们处理信息的方式,还极大地丰富了我们的数字生活体验。 01 漫画爱好者的福音:Comi…

PostgreSQl 物化视图

物化视图(Materialized View)是 PostgreSQL 提供的一个扩展功能,它是介于视图和表之间的一种对象。 物化视图和视图的最大区别是它不仅存储定义中的查询语句,而且可以像表一样存储数据。物化视图和表的最大区别是它不支持 INSERT…

Windows 电脑查看 WiFi 密码的方法都有哪些?

从设置面板中查看 当你使用的是笔记本电脑并且连接 WiFi 之后可以在设置面板中查看 WiFi 密码,首先打开设置界面,然后点击网络和 Internet,找到 WiFi 之后点击进入,然后点击管理已知网络。 然后点击已经连接好的无线网络。 进入之…

SpringBoot 3.3 【一】手把手讲解-使用Eclipse创建第一个SpringBoot应用程序

简单动作,深刻联结。在这技术海洋,我备好舟,等你扬帆。启航吧! 🌟点击【关注】,解锁定期的技术惊喜,让灵感与知识的源泉不断涌动。 👍一个【点赞】,如同心照不宣的默契&a…

AI工具,如何通过 GPT-4o 提高工作效率

文章目录 引言一、理解GPT-4o及其功能二、如何利用GPT-4o提高工作效率1. 代码生成与优化2. 自动化测试与调试3. 技术文档撰写与知识管理 三、实际案例与成功应用1. GitHub 协作与问题解决2. 敏捷开发与迭代优化 四、GPT-4o的挑战与应对策略五、未来展望与发展方向六、结论 &…

保护企业数据资产的策略与实践:数据安全治理技术之实战篇!

在上篇文章中,我们深入讨论了数据安全治理技术的前期准备工作,包括从建立数据安全运维体系、敏感数据识别、数据的分类与分级到身份认等方面的详细规划和设计。这些准备工作是实现数据安全治理的基础,它们为企业建立起一套系统化、标准化的数…

二进制补码计算

基本知识 原码(Sign and Magnitude):原码是一种最简单的表示法,使用符号位和数值位来表示整数。 符号位:最高位是符号位,0表示正数,1表示负数。 数值位:剩下的位表示数值的大小。反码&#xf…

windows11下vscode配置C/C++(过程记录)

一、概述 一直想在Windows11系统下使用vscode运行C/C程序,如果使用visual studio的话需要占用大量内存,且每次启动较慢。vscode则可以省去大多数烦恼。 二、具体配置过程 (一)参考博客 主要参考两篇博客,分别如下所示…

kubernetes集群如何更改所有节点IP

kubernetes集群如何更改所有节点IP 情景描述更换IP前的准备工作更换IP后的工作--master更换IP后的工作--node节点重新部署之前那些服务 情景描述 我有三台服务器,想要将其组成了一个kubernetes集群,在部署之前,我就对其进行了固定IP的操作&a…

ARM功耗管理之多核处理器启动

安全之安全(security)博客目录导读 思考:SecureBoot?多核处理器启动流程?PSCI启动方式? 一般嵌入式系统使用的都是对称多处理器(Symmetric Multi-Processor, SMP)系统,包含了多个cpu, 这几个cp…

MICCAI 2024Centerline Boundary Dice Loss for Vascular Segmentation

MICCAI 2024 Centerline Boundary Dice Loss for Vascular Segmentation MICCAI 2024Centerline Boundary Dice Loss for Vascular Segmentation中心线边界Dice损失用于血管分割**摘要**:1. 引言相关工作: 2. 方法预备知识Dice的变化 3 实验3.1 数据集3.2 设置3.3 结…

推荐一个比 Jenkins 使用更简单的项目构建和部署工具

最近发现了一个比 Jenkins 使用更简单的项目构建和部署工具,完全可以满足个人以及一些小企业的需求,分享一下。 项目介绍 Jpom 是一款 Java 开发的简单轻量的低侵入式在线构建、自动部署、日常运维、项目监控软件。 日常开发中,Jpom 可以解…

python--实验8 函数(2)

知识点 变量的作用域 定义:解释了局部变量和全局变量的概念。局部变量: 局部变量是在函数内部定义的变量。它们只在该函数内部可见,一旦函数执行完毕,这些变量就会被销毁。例子:在函数内部通过赋值创建的变量。全局…