一个基于go的开源商城
项目背景2022年TodoList有一项是完成一个开源项目,加上自己尝试用go作为主要的开发语言,于是便突发奇想,用go来做一个开源项目。因为独立设计到实现一个前后端的完成项目可太难了,加上自己的初衷只是为了熟悉go 的语法,于是便在github上找到了 新蜂商城 。新蜂商城原项目的单机版本一共有三个仓库新蜂商城前端 newbee-mall-vue3-app新蜂商城后台管理 vue3-admin新
项目背景
2022年TodoList有一项是完成一个开源项目,加上自己尝试用go作为主要的开发语言,于是便突发奇想,用go来做一个开源项目。
因为独立设计到实现一个前后端的完成项目可太难了,加上自己的初衷只是为了熟悉go 的语法,于是便在github上找到了 新蜂商城 。
新蜂商城
原项目的单机版本一共有三个仓库
前端代码开箱即用,且后端使用的技术栈就是springboot+mysql,代码逻辑清晰,非常适合作为一个学习项目。
当我在qq群联系到作者表明我的想法后,原作者程序员十三表示如果完成的不错还会帮我推广,于是我便开始快乐的抄作业了。
这个开源项目之前有被某课网拿来做收费教程,被作者起诉了,起诉书!慕课网你敢抄袭,我就敢起诉你!
go语言版本新蜂商城
项目地址:https://github.com/newbee-ltd/newbee-mall-api-go相关技术栈
- zap 高性能日志库
- viper 配置管理神器
- gorm orm库
- gin web框架
目录结构说明
文件夹 | 说明 | 描述 |
---|---|---|
api | api层 | api层 |
--mall | 商城接口 | 商城接口 |
--manage | 商城后管接口 | 商城后管接口 |
config | 配置包 | config.yaml对应的配置结构体 |
core | 核心文件 | 核心组件(zap, viper, server)的初始化 |
global | 全局对象 | 全局对象 |
initialize | 初始化 | router,redis,gorm,validator, timer的初始化 |
--internal | 初始化内部函数 | gorm 的 longger 自定义,在此文件夹的函数只能由 initialize 层进行调用 |
middleware | 中间件层 | 用于存放 gin 中间件代码 |
model | 模型层 | 模型对应数据表 |
router | 路由层 | 路由层 |
service | service层 | 存放业务逻辑问题 |
utils | 工具包 | 工具函数封装 |
结合原项目的前端项目可直接在本地启动,如果您发现了bug或者有优化的建议可以提交issue或者直接提交代码,我会尽快修复
结语
目前代码中很多需要优化的地方,比如项目实现的过程中还是有一些地方不知道通过go如何优雅的实现,java 的枚举类,一些判空,一些重复的代码…
如果您有优化建议还请不吝赐教
感谢
更多推荐
所有评论(0)