一个快速构建应用程序的脚手架nunu
项目地址:[url]https://github.com/go-nunu/nunu[/url]名字的由来[p=30, 2, left]nunu这个名字来自于英雄联盟中的游戏角色,一个骑在雪怪肩膀上的小男孩。和努努一样,该项目也是站在巨人的肩膀上,它是由Golang生态中各种非常流行的库整合而成的,它们的组合可以帮助你[b]快速构建一个高效、可靠的应用程序[/b]。[/p]功能[p=30, 2, left]nunu是基于以下流行的开源库组建而成的:[/p][list][*][b]Gin[/b]: [url]https://github.com/gin-gonic/gin[/url][*][b]Gorm[/b]: [url]https://github.com/go-gorm/gorm[/url][*][b]Wire[/b]: [url]https://github.com/google/wire[/url][*][b]Viper[/b]: [url]https://github.com/spf13/viper[/url][*][b]Zap[/b]: [url]https://github.com/uber-go/zap[/url][*][b]Golang-jwt[/b]: [url]https://github.com/golang-jwt/jwt[/url][*][b]Go-redis[/b]: [url]https://github.com/go-redis/redis[/url][*][b]Testify[/b]: [url]https://github.com/stretchr/testify[/url][*][b]Sonyflake[/b]: [url]https://github.com/sony/sonyflake[/url][*][b]Gocron[/b]: [url]https://github.com/go-co-op/gocron[/url][*][b]Go-sqlmock[/b]: [url]https://github.com/DATA-DOG/go-sqlmock[/url][*][b]Gomock[/b]: [url]https://github.com/golang/mock[/url][/list][p=30, 2, left]该项目的架构采用了典型的分层架构,主要包括以下几个模块:[/p][list][*]cmd:该模块包含了应用的入口点,根据不同的命令进行不同的操作,例如启动服务器、执行数据库迁移等。每个子模块都有一个main.go文件作为入口文件,以及wire.go和wire_gen.go文件用于依赖注入。[*]config:该模块包含了应用的配置文件,根据不同的环境(如开发环境和生产环境)提供不同的配置。[*]deploy:该模块用于部署应用,包含了一些部署脚本和配置文件。[*]internal:该模块是应用的核心模块,包含了各种业务逻辑的实现。[list][*]handler:该子模块包含了处理HTTP请求的处理器,负责接收请求并调用相应的服务进行处理。[*]job:该子模块包含了后台任务的逻辑实现。[*]middleware:该子模块包含了中间件的实现,用于处理请求的前置和后置操作。[*]migration:该子模块包含了数据库迁移的逻辑实现。[*]model:该子模块包含了数据模型的定义。[*]repository:该子模块包含了数据访问层的实现,负责与数据库进行交互。[*]server:该子模块包含了HTTP服务器的实现。[*]service:该子模块包含了业务逻辑的实现,负责处理具体的业务操作。[/list][*]mocks:该模块包含了各个模块的接口的模拟实现,用于单元测试。[*]pkg:该模块包含了一些通用的功能和工具。[*]scripts:该模块包含了一些脚本文件,用于项目的构建、测试和部署等操作。[*]storage:该模块用于存储文件或其他静态资源。[*]test:该模块包含了各个模块的单元测试,按照模块划分子目录。[*]web:该模块包含了前端相关的文件,如HTML、CSS和JavaScript等。[/list][p=30, 2, left]此外,还包含了一些其他的文件和目录,如授权文件、构建文件、README等。整体上,该项目的架构清晰,各个模块之间的职责明确,便于理解和维护。[/p]总结[p=30, 2, left]通过nunu工具可以快速的创建一个相对标准的目录结构的项目。而且可以快速的生成各个目录中的分层的文件,大大节省了研发时间,提高了研发效率。[/p]页:
[1]