大家好,今天介绍Go项目搭建和整洁开发实战的项目详情,如何加入以及使用它跟踪学习的方法。
我们的课程会用Go语言从零开始搭建项目和做需求开发的实战,全课程使用的技术栈均为实际开发所常用的组件和框架如:Gin、Viper、Zap、GORM、go-redis 、lo 等等。
课程分为五大部分:
第一部分主讲怎么从零开始一步步搭建出一个功能完善、可观测、可配置、易维护的项目框架,该部分会介绍让框架变得好用的技巧,比如通过自定义日志门面让项目日志更简单易用、支持自动记录请求的追踪信息和程序位置信息、通过自定义Error在实现Go error接口的同时支持给给错误添加错误链,方便追溯错误源头。 第二部分:讲解项目分层架构的设计和划分业务模块的方法和标准,让你以后无论遇到什么项目都能按这套标准自己划分出模块和逻辑分层。后面几个部分均是该部分所讲内容的实践。 第三部分:设计实现一套支持多平台登录,Token泄露检测、同平台多设备登录互踢功能的用户认证体系,这套用户认证体系既可以在你未来开发产品时直接应用 第四部分:商城app C端接口功能的实现,强化分层架构实现的讲解,这里还会讲解用责任链、策略和模版等设计模式去解决订单结算促销、支付方式支付场景等多种多样的实际问题。 第五部分:单元测试、项目Docker镜像、K8s部署和服务保障相关的一些基础内容和注意事项
课程的项目有一个专属的私有GitHub仓库
课程中每个章节用到的代码会以Tag版本的方式在仓库中记录
所以大家在购买后的一定要记得加我的微信,告知我你的GitHub账号后我才能把你拉到项目中去。
如何加入项目
课程中的项目仓库地址为 https://github.com/go-study-lab/go-mall 该项目为私有项目,大家在订阅课程后添加微信告知我你的GitHub ID 和订阅的订单截图,我这边确认后会邀请你加入项目。
访问 https://xiaobot.net/p/golang 或者扫码下方二维码都可以订阅项目
公众号里外链没法直接跳转,可以点击文章末尾的“阅读原文”跳转到课程。
怎么使用项目
大家怎么使用课程中的代码呢?首先每个章节中如果涉及了项目代码的变更我都会在章节中给出本次代码的Tag版本,大家进入GitHub 项目主页 https://github.com/go-study-lab/go-mall ,点击这里的Tags标签。
就能访问到项目中所有Tag版本
然后我们根据每个章节内容中给出的代码版本号,在这里选择版本,比如说给出的代码版本为c10, 那么我们就直接点击c10这个Tag名。
进来后,需要我们选择比对的版本, 比如上一节的代码是c9, 那么这里我们选择和c9版本进行对比。
这样在对比页面就能完整显示当前版本较之前一个版本的所有代码变更。
大家如果是自己起了一个新项目按照课程的步骤开始实践的话,就可以一样参照每节课的项目代码。
如果说你想直接在本地参考和运行课程中的项目,操作也很简单,首先要确保你本地代码是最新的,在项目根目录执行 git pull
或者 git fetch --tags
拉取代码后,可以执行 git tag
命令看一下tag版本是不是已经拉取下来了。然后执行git checkout tags/{tag名} 就能切换到对应的版本,比如下面我执行
git checkout tags/c9
然后在IDE中,你的代码版本就切换过来了
现在IDE中项目中的代码就是c9 版本中的代码,假如说我在c9版本有个接口的代码块到了c10版本给它删了, 那么你直接访问最新的代码是没有这块代码的,所以就需要大家按照章节中给出的版本号访问相应的代码。
接下来,你直接运行项目就能直接开始测试章节中的代码功能。
非代码资源
对于一些项目中用到的非代码资源,比如说项目用到的数据库的SQL文件、提供给大家快速构建基础运行环境的Docker-Compose或者是K8s配置文件,在仓库的Issues 页面中都会置顶显示。
大家可以按照每个文档中的操作提示来快速应用上手。
查看问题反馈和提问
在学习和实践课程里的项目的过程中,如果遇到问题了,你有以下几个方式反馈:
文章留言 项目仓库提Issue
首先我们课程有专门的读者群,但是因为群聊会不停地刷消息的特点,因为我要一个人对你们大家,真的要讨论一个问题很可能马上就被消息流冲乱了,所以我不建议你的问题直接在群里边问,简单问题可以在文章内直接留言,复杂问题到我们的项目的Issue界面里开一个Issue。链接:https://github.com/go-study-lab/go-mall/issues
描述清楚你的问题,这样我们还能针对这个问题进行讨论。
留言和Issue 我会每天关注,你也可以在读者群或者私聊踢我一下, 我也会按章节把相关Issue汇总在群里发给大家一起阅读。
为了尽可能节省大家来回询问的过程,这里我建议提问时描述清楚问题的上下文,不能是直接 It doesn't work,check it out. 那样我还得跟你说It works on my computer perfectly well, why it can't work in yours? 哈哈哈
对于一些好的,值得收藏的问题,我也会定期整理发布到公众号「网管叨bi叨」上,方便大家随时查看。
总结
好了,这一篇我们主要介绍了使用专栏进行学习的方式,专栏有一个私有的项目仓库,特地按照专栏章节做了代码的版本管理,方便大家跟踪学习。除了专栏项目的代码外一些非代码的资源、关于专栏中各种问题的提问、回复都会整理到这个私有GitHub项目仓库中。
所以大家订阅后的第一件事一定要加我的微信,我会把你进到专属的读者群以及邀请你加入专栏的项目仓库。
访问 https://xiaobot.net/p/golang 或者扫码下方二维码都可以订阅项目
点击文章末尾的“阅读原文”可直接跳转到课程。