Go项目的搭建和需求开发-实战指南

科技   2024-09-26 08:51   北京  

平时看过的知识总是觉得看了就看了,但是用不起来,比如看了各种架构理论、设计模式,里面大部分都是一些简单的例子,真正用的时候总会觉得不得要领。

今天给大家介绍一下我的新专栏《Go项目搭建与整洁开发实战》,从实际的业务需求出发带大家从理论迈向编程实践。

课程是用Go语言从零开始搭建项目和做需求开发的实战内容,使用的技术栈均为实际开发所常用的组件和框架如:Gin、Viper、Zap、GORM、go-redis 、lo 等等。

课程分为五大部分:

Go实战课架构图
  • 第一部分主讲怎么从零开始一步步搭建出一个功能完善、可观测、可配置、易维护的项目框架,该部分会介绍让框架变得好用的技巧,比如通过自定义日志门面让项目日志更简单易用、支持自动记录请求的追踪信息和程序位置信息、通过自定义Error在实现Go error接口的同时支持给给错误添加错误链,方便追溯错误源头。
  • 第二部分:讲解项目分层架构的设计和划分业务模块的方法和标准,让你以后无论遇到什么项目都能按这套标准自己划分出模块和逻辑分层。后面几个部分均是该部分所讲内容的实践。
  • 第三部分:设计实现一个套支持多平台登录,Token泄露检测、同平台多设备登录互踢功能的用户认证体系,这套用户认证体系既可以在你未来开发产品时直接应用
  • 第四部分:商城app C端接口功能的实现,强化分层架构实现的讲解,这里还会讲解用责任链、策略和模版等设计模式去解决订单结算促销、支付方式支付场景等多种多样的实际问题。
  • 第五部分:单元测试、项目Docker镜像、K8s部署和服务保障相关的一些基础内容和注意事项

课程中会使用用例图、活动图、状态机、顺序图等 UML 工具已经图示对项目的功能和实现进行讲解,带大家从零开始识别业务需求一步步分析出业务结构和主要的功能,并对关键的实现细节做出梳理,在给大家讲明白后才会过度到怎么用代码实现的环节上。


本课程规划了 40 节内容,课程行进过程中会涉及到诸多与Go语言和真实项目开发相关的知识点的串讲,是不可多得的实战参考资料,课程大纲如下:
  • 课程的学习方法和约定

  • 第一部分

    • Go 基础环境搭建和Gin项目的初始化
    • 定制化项目配置--程序和配置文件一体化打包部署
    • 项目应用日志组件的Zap安装和自动切割
    • 项目日志门面的封装--简化Zap操作,自动为日志添加traceId和程序位置信息
    • 几个全局中间件,保证项目健壮和可观测性
    • 自定义项目的 Error 实现错误链条串联 和 发生位置记录
    • 项目Error的统一化管理
    • 接口响应、分页响应的规范化处理
  • 第二部分

    • 项目的软件分层设计和约定
    • 项目路由的分模块管理
    • 番外:用Docker-Compose、K8s 两种方式快速给项目搭建一套开发环境-- MySQL 和 Redis
    • 整合GORM 和应用日志 让慢查询和数据库错误无处可藏
    • 项目业务模块划分、逻辑分层解耦实战(上)
    • 项目业务模块划分、逻辑分层解耦实战(下)
    • Redis 的封装和统一管理
    • 用Option模式和对接层规范化外部API的对接
    • 阶段性总结,为了让项目好 Debug 我们做了这些事情
  • 第三&第四部分开篇

    • 项目需求的业务结构和功能分析实战,学会怎么给项目分业务模块
  • 第三部分

    • 一款支持多平台登录、同平台登录互踢、Token泄漏检测的用户认证体系
    • 用户认证体系的实现-- Token 的派发、存储和认证管理
    • 用户认证体系的实现 -- Token 的刷新和防偷窃踢人下线
    • 用户密码怎么加密才安全? 以及用户注册、登录、登出功能的实现
    • 番外:让自定义Error支持解包、errors.Is判定和避免循环引用
  • 第四部分

    • 用户个人信息管理-密码的安全修改和重置
    • 用户个人信息管理--个人基本信息的脱敏和维护
    • 用户个人信息--地址信息维护
    • 商品模块--商品分类管理
    • 商品模块--商品列表分页查询、商品搜索、商品详情
    • 购物车模块--添加、修改购物车、购物项列表和结算信息功能实现
    • 购物车模块--用职责链模式实现商品各种满减和优惠的逻辑解耦
    • 订单模块--创建订单、订单查询和取消的功能实现
    • 订单模块-- 订单支付和微信支付接口对接演示
    • 订单模块-- 用模版+策略模式应对多场景支付
  • 第五部分

    • 项目的单元测试--测试的基础搭建和数据库的Mock测试
    • 项目的单元测试接口、方法、Package的Mock测试
    • 应用的镜像打包和容器管理
    • 怎么把项目放到K8s上运行
    • 应用在K8s 上怎么保障平滑重启和安全调度
  • 总结

    • 怎么把项目扩展成微服务
    • 常见问题汇总、课程重点串讲和阅读建议

过程中章节可能会有微调,数量一定只会多不会少,前20节的代码已经按章节顺序整理好版本放到了课程拥有专属的Github私有仓库中,随着课程的行进其他代码也会在整理后放出。


大家使用Git工具就能轻松查看每节的代码都做了哪些更新,还可以在本地切换到章节版本的代码进行调试。


购买课程后可以加入专属读者群,针对每个章节的问题会统一在整理成仓库中的Issue汇总起来在群中分享给大家,构建一个良好的学习氛围。


对于一些好的,值得收藏的问题,我也会定期整理发布到公众号上,方便大家随时查看。

现在扫码订阅赠送我另外一个专栏《程序员全能画图课》的四折优惠卷,两个专栏在内容相辅相成,很多方法论在新专栏中会在项目里用具体需求去实战讲解。

网管叨bi叨
分享软件开发和系统架构设计基础、Go 语言和Kubernetes。
 最新文章