首页 > 其他分享 >Golang初学:项目目录结构,project-layout 项目

Golang初学:项目目录结构,project-layout 项目

时间:2024-05-24 22:29:53浏览次数:35  
标签:Golang golang layout 项目 project Go 目录

go version go1.22.1 windows/amd64

Windows 11 + amd64

x86_64 x86_64 GNU/Linux

---

 

序章

golang 项目 的代码要怎么组织?怎么放比较简洁易读?看下面这个 项目 就晓得了。

 

project-layout

https://github.com/golang-standards/project-layout

注,有时访问失败。特写文记录。

 

Standard Go Project Layout

This is a basic layout for Go application projects.

Note that it's basic in terms of content because it's focusing only on the general layout and not what you have inside.

It's also basic because it's very high level and it doesn't go into great details in terms of how you can structure your project even further.

For example, it doesn't try to cover the project structure you'd have with something like Clean Architecture.

简体中文的 README:

https://github.com/golang-standards/project-layout/blob/master/README_zh-CN.md

这是Go应用程序项目的基础布局。

这不是Go核心开发团队定义的官方标准;无论是在经典项目还是在新兴的项目中,这都是Go生态系统中一组常见的项目布局模式。

这其中有一些模式比另外的一些更受欢迎。

它通过几个支撑目录为任何足够大规模的实际应用程序提供一些增强功能。

 

住,README 里面有更多各个目录的介绍,大家可以下载项目后查看。

 

project-layout 页面截图

240524 留存:

 

更多项目目录结构,可以参考其它优秀的 golang项目,比如,etcd、kubernetes 等。

 

END.

 

声明,如有侵权,请通知作者处理。

 

本文链接:

https://www.cnblogs.com/luo630/p/18211696

 

ben发布于博客园

参考资料

1、

 

ben发布于博客园

ben发布于博客园

 

标签:Golang,golang,layout,项目,project,Go,目录
From: https://www.cnblogs.com/luo630/p/18211696

相关文章

  • Golang 实现Java的AES ECB 加密
    JavapublicstaticStringencryptAesEcb(Stringtarget,StringsKey)throwsException{byte[]raw=sKey.getBytes("UTF-8");//"AES"就是用AES/ECB/PKCS5PaddingSecretKeySpecskeySpec=newSecretKeySpec(raw,......
  • 【Golang】在Go语言中如何实现接口
    文章目录前言一、函数解释二、代码实现三、总结前言接口是Go语言中的一个核心概念,它为类型定义了行为。接口提供了一种方式,使得不同的类型可以被同样对待,只要它们实现了相同的接口。在这篇博客中,我们将讨论如何在Go语言中实现接口。一、函数解释在Go语言中,接口是......
  • golang 的学习曲线
     Go(Golang)语言的设计目标之一就是让其学习曲线尽可能平缓,这意味着对于大多数开发者来说,学习Go语言比许多其他现代编程语言可能更快上手。以下是通常Golang学习曲线的一个概述:1入门阶段: 基本语法:Go语言的语法相对简单,与C/C++和Java有一定的相似性,所以对于有这些背景的开发......
  • Golang初学:获取主机的磁盘空间信息,gopsutil
    goversiongo1.22.1windows/amd64Windows11+amd64x86_64x86_64GNU/Linux--- 序章怎么获取磁盘空间信息呢?总量、剩余等。包括,Windows、Linux主机等。使用标准库(os、fs、syscall等)可以吗?可以,网上可以找到获取Linux系统的相关信息,不过,要获取Windows的就比较麻烦......
  • golang微服务之go-zero零基础实战
    golang微服务之go-zero零基础实战1.环境准备mysql提供rpc服务接口后端交互存储etcd提供rpc服务注册与发现2.文件结构rpc服务接口:1.用户登录2.用户创建3.查询用户信息api服务接口:1.用户登录2.用户创建3.查询用户信息3.搭建步骤1.搭建rpc服务创建rpc......
  • Golang初学:vs code, launch.json, Run
    goversiongo1.22.1windows/amd64Windows11+amd64x86_64x86_64GNU/Linuxvscode1.89.1--- 序章在vscode开发go程序,之前总是在终端(terminal)输入命令(gorun.)来执行。不过,这不是最高效的方式。通过添加并配置launch.json可以更方便地程序仅运行(Ctrl+F5......
  • golang 类型断言和 var _ T = expression 写法
     类型断言(TypeAssertion)在Go语言中用于检查一个接口值的具体类型,并从中获取该类型的值。它允许你声明并访问接口变量内部存储的非接口类型的值。有两种主要的类型断言形式:value,ok:=i.(T):这种形式会检查接口i是否持有类型T的值。如果成功,value将是T类型的值,ok......
  • golang select 和外层的 for 搭配
     select语句通常与for循环搭配使用,但并不是必须的。在某些情况下,select可能会直接放在一个独立的goroutine中,没有外层的for循环。这通常发生在你知道只会有一次或有限次操作的情况下。例如,你可能有一个简单的goroutine,它等待一个特定的channel信号,然后执行一次操作:package......
  • GridLayout 等控件来完成多行按钮操作
     第一步,在布局文件中添加一个GridLayout控件,设置它的行列数和间距等属性,例如:<GridLayoutandroid:id="@+id/grid_layout"android:layout_width="match_parent"android:layout_height="wrap_content"android:columnCount="4"andr......
  • PROJECT_SOURCE_DIR 和 CMAKE_SOURCE_DIR
    PROJECT_SOURCE_DIR和CMAKE_SOURCE_DIR对比在CMake中,PROJECT_SOURCE_DIR和CMAKE_SOURCE_DIR是两个非常重要的变量,它们都指向项目的源代码目录,但在多项目(子项目或多个CMakeLists.txt文件)的情况下,它们的值有所不同。CMAKE_SOURCE_DIR定义:CMAKE_SOURCE_DIR 指向最顶层的C......