golang项目结构

简介: 一、概述  golang更新了环境变量,导致整个goproject的结构改变: 1 [root@node175 goproject]# tree -L 2 2 . 3 ├── bin 4 │   └── demo 5 ├── pkg 6 │   └── linux_amd64 7 ...

一、概述

  golang更新了环境变量,导致整个goproject的结构改变:

 1 [root@node175 goproject]# tree -L 2
 2 .
 3 ├── bin
 4 │   └── demo
 5 ├── pkg
 6 │   └── linux_amd64
 7 └── src
 8     ├── demo
 9 
10 5 directories, 1 file
11 
12 项目源码在src下,可以包含多个project: demo1, demo2 等等
13 此时bin, pkg均为空目录;
14 cd src && go install  demo
15 #此时, 生成了demo项目的lib文件在如下目录中
16 [root@node175 src]# ll ../pkg/linux_amd64/demo/
17 总用量 4
18 -rw-r--r-- 1 root root 914 9月  26 11:45 lib.a
19 
20 # 此时, 生成了可执行文件在../bin目录下:
21 [root@node175 src]# ll ../bin/
22 总用量 1620
23 -rwxr-xr-x 1 root root 1654812 9月  26 11:55 demo

  为什么生成goproject是如此布局呢?

  答案在/etc/profile文件中的go env相关配置中;

1 export GOROOT=/root/xxx/go  
2 export GOPATH=/root/xxx/goproject3 export GOBIN=/root/xxx/goproject/bin 
4 export GOLIB=/root/xxx/goproject/
5 export PATH=$PATH:$GOBIN:$GOPATH/bin 

 

相关文章
|
2月前
|
监控 Java 编译器
限流、控并发、减GC!一文搞懂Go项目资源优化的正确姿势
本章介绍Go语言项目在构建与部署阶段的性能调优和资源控制策略,涵盖编译优化、程序性能提升、并发与系统资源管理、容器化部署及自动化测试等内容,助力开发者打造高效稳定的生产级应用。
|
2月前
|
测试技术 Go 开发工具
Go语言项目工程化 — 常见开发工具与 CI/CD 支持
Go语言项目工程化实践中的开发工具与CI/CD支持,涵盖格式化、静态检查、依赖管理、构建打包、自动化测试及部署策略。内容包括常用工具如gofmt、go vet、golangci-lint、Docker、GitHub Actions等,并提供实战建议与总结,提升团队协作效率与项目质量。
|
2月前
|
NoSQL 中间件 Go
Go语言项目工程化 — 项目结构与模块划分
本章讲解Go语言项目工程化中的结构设计与模块划分,涵盖单体及分层架构方案,指导如何按功能组织代码,提升项目的可维护性、扩展性,适用于不同规模的开发场景。
|
2月前
|
JSON 安全 Go
Go语言项目工程化 —— 日志、配置、错误处理规范
本章详解Go语言项目工程化核心规范,涵盖日志、配置与错误处理三大关键领域。在日志方面,强调其在问题排查、性能优化和安全审计中的作用,推荐使用高性能结构化日志库zap,并介绍日志级别与结构化输出的最佳实践。配置管理部分讨论了配置分离的必要性,对比多种配置格式如JSON、YAML及环境变量,并提供viper库实现多环境配置的示例。错误处理部分阐述Go语言显式返回error的设计哲学,讲解标准处理方式、自定义错误类型、错误封装与堆栈追踪技巧,并提出按调用层级进行错误处理的建议。最后,总结各模块的工程化最佳实践,助力构建可维护、可观测且健壮的Go应用。
|
JSON 运维 Go
Go 项目配置文件的定义和读取
Go 项目配置文件的定义和读取
|
10月前
|
Go API 数据库
Go 语言中常用的 ORM 框架,如 GORM、XORM 和 BeeORM,分析了它们的特点、优势及不足,并从功能特性、性能表现、易用性和社区活跃度等方面进行了比较,旨在帮助开发者根据项目需求选择合适的 ORM 框架。
本文介绍了 Go 语言中常用的 ORM 框架,如 GORM、XORM 和 BeeORM,分析了它们的特点、优势及不足,并从功能特性、性能表现、易用性和社区活跃度等方面进行了比较,旨在帮助开发者根据项目需求选择合适的 ORM 框架。
830 4
|
10月前
|
存储 JSON Go
如何在 Go 项目中隐藏敏感信息,比如避免暴露用户密码?
在Go语言开发中,用户信息管理常涉及敏感数据如密码的处理。为防止这些数据暴露给客户端,本文介绍了三种方法:使用JSON标签忽略字段、自定义序列化逻辑、使用数据传输对象(DTO),以确保用户数据的安全性。通过这些方法,可以有效控制数据输出,避免敏感信息泄露。
178 1
|
10月前
|
中间件 Go API
Go语言中几种流行的Web框架,如Beego、Gin和Echo,分析了它们的特点、性能及适用场景,并讨论了如何根据项目需求、性能要求、团队经验和社区支持等因素选择最合适的框架
本文概述了Go语言中几种流行的Web框架,如Beego、Gin和Echo,分析了它们的特点、性能及适用场景,并讨论了如何根据项目需求、性能要求、团队经验和社区支持等因素选择最合适的框架。
954 1
|
11月前
|
SQL 关系型数据库 MySQL
Go语言项目高效对接SQL数据库:实践技巧与方法
在Go语言项目中,与SQL数据库进行对接是一项基础且重要的任务
220 11
|
11月前
|
Go
使用go语言将A助手加入项目中
使用go语言将A助手加入项目中
53 2

推荐镜像

更多