Golang应用开发资源与工具大全
Golang应用开发资源与工具大全 http://golangapps.com/
大家好,
我们设计了一个类似 Spring Initializr 的小工具,可以让你下载 Go 语言的样板代码。
目前它还处于初始阶段,我打算将其开源。
我不是专业的 Go 开发者,所以如果有什么低级错误,敬请谅解。欢迎大家在这里提出任何形式的反馈,或者在 GitHub 上提交问题。我们需要用户的反馈来改进它,所以即使是很小的评论对我来说也意义重大。这可能不是一个合适的平台,再次表示歉意。但请务必提供您的反馈。
这个工具能做什么 go mod 做不到的事情?
以及,您有计划通过 HTTPS 提供此服务吗?
不,不需要。我想我忘记移除未使用的模块了 😵 我是 Angular 新手,只用了一天时间设计这个,所以 UI 方面还有很多工作要做。
是的,我将在HTTPS上提供此服务。这对Go语言的初学者很有帮助。这对那些刚接触Go语言,并且不想陷入从零开始创建代码库的麻烦中的人来说很有帮助。
这将为您提供一个样板代码,并允许您从一系列开源包中选择适合您应用程序的包。它还附带了一些基本示例。对于一个REST应用程序,我们计划允许用户选择日志框架、数据库和测试框架。
该网站下载的资源总计 6.65 MB。仅 http://golangapps.com/vendor.js 这一个文件就高达 5.99 MB。您确定所有这些内容都是必需的吗?
这是我尝试下载zip文件时得到的结果:

我建议初学者从零开始,而不是使用框架。这样他们才能开始理解Go的HTTP生态系统是如何工作的,之后他们就可以根据自己的意愿选择任何工具,并完全理解其工作原理。除此之外,感谢分享。
3 个赞
Access to XMLHttpRequest at 'http://golangapps.com:9090/simpleapp' from origin 'http://golangapps.com' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
@shub-asa1 你好,有一个名为 JHipster 的项目,你可以从中借鉴一些东西,甚至可以将 Go 作为后端集成进来以替代 Java。总的来说,JHI 是一个很棒的项目,我就在使用它。我记得,好像已经有人尝试过用 Go 做类似的东西了。
@kync 感谢您的评论。您说得对。我这里的目的是通过提供一些预先设置,为那些希望在其应用中使用 Go 语言的人节省时间。可选支持 Docker、Kubernetes、Makefile 等。虽然这些都是简单的事情,但我相信这会节省一些时间。
@vitaliy-kuzmich 感谢评论。
- 我知道 JHipster,并且确信从 JHipster 复制内容会有所帮助,但 Go 语言与 Java 不同。
- 我们的后端是基于 Go 语言设计的。
- 如果你知道有谁已经在 Go 语言中尝试过这个,请告诉我。我相信我可以从中学习,并改进我们的应用程序。
我担心这对Go语言初学者没有帮助,坦率地说。通过为他们构建这些内容,你剥夺了他们学习Go生态系统以及如何将这些不同的Go组件整合在一起的能力。有一句话我认为很适用:
重要的是过程,而不是结果。
换句话说,构建样板代码并学习其工作原理的过程才是真正有价值的地方……而不是你最终得出的解决方案。这可能适合那些已经掌握了这些知识的Go开发者,但请给初学者一个机会去理解这一切是如何运作的,而不是将这些抽象化并隐藏起来。
我个人讨厌Java,因为它放在开发者面前的抽象层以及它隐藏的东西。因此,我主张不要做那种类似Springboot的事情。
这是一个很有价值的项目,特别是对于Go语言新手快速启动项目非常有帮助。类似Spring Initializr的工具在Go生态中确实存在需求。
从技术实现角度,我建议关注以下几个关键点:
- 项目结构标准化:确保生成的样板代码遵循Go社区公认的最佳实践结构
// 示例:标准的Go项目布局
project-name/
├── cmd/
│ └── app/
│ └── main.go
├── internal/
│ └── pkg/
├── pkg/
├── api/
├── configs/
├── deployments/
├── test/
└── go.mod
- 依赖管理:生成的go.mod文件需要正确处理模块路径和版本
module github.com/username/project-name
go 1.21
require (
github.com/gin-gonic/gin v1.9.1
github.com/joho/godotenv v1.5.1
)
- 配置管理集成:考虑集成流行的配置库
// 示例:集成Viper配置管理
func loadConfig() {
viper.SetConfigName("config")
viper.AddConfigPath(".")
if err := viper.ReadInConfig(); err != nil {
log.Fatal("Error reading config file")
}
}
- 中间件和路由:提供常用中间件的选项
// 示例:Gin框架中间件配置
router := gin.Default()
router.Use(gin.Logger())
router.Use(gin.Recovery())
router.Use(cors.Default())
- 数据库集成:支持主流数据库驱动
// 示例:GORM数据库连接
db, err := gorm.Open(postgres.Open(dsn), &gorm.Config{})
if err != nil {
log.Fatal("Failed to connect to database")
}
- 测试框架:集成测试模板
// 示例:测试文件模板
func TestHandler(t *testing.T) {
req := httptest.NewRequest("GET", "/", nil)
w := httptest.NewRecorder()
handler(w, req)
assert.Equal(t, http.StatusOK, w.Code)
}
- Docker支持:生成Dockerfile和docker-compose配置
# 示例:多阶段构建Dockerfile
FROM golang:1.21-alpine AS builder
WORKDIR /app
COPY go.mod go.sum ./
RUN go mod download
COPY . .
RUN go build -o main ./cmd/app
FROM alpine:latest
COPY --from=builder /app/main .
EXPOSE 8080
CMD ["./main"]
- CI/CD模板:提供GitHub Actions或GitLab CI的配置文件
# 示例:GitHub Actions工作流
name: Go
on: [push]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-go@v4
- run: go test ./...
建议在项目中考虑以下功能选项:
- 框架选择(Gin, Echo, Fiber等)
- 数据库驱动(GORM, sqlx, ent等)
- 认证方案(JWT, OAuth2等)
- 日志库(Zap, Logrus等)
- 监控集成(Prometheus, OpenTelemetry等)
开源时建议提供清晰的文档说明如何贡献代码,并设置完整的测试套件确保生成代码的质量。项目的成功很大程度上取决于生成的样板代码是否遵循Go语言的最佳实践和惯用法。

