# go12 **Repository Path**: my_go_study/go12 ## Basic Information - **Project Name**: go12 - **Description**: go12项目演示 - **Primary Language**: Go - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 24 - **Created**: 2024-12-16 - **Last Updated**: 2024-12-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Go12演示代码 注意事项: + 不要copy我代码, 哪怕是注释都是需要自己一点一点的写(先理解) + 一定要自己数量流程(只有在理解了项目架构和业务逻辑的情况下才去写代码) ## 基础篇 1. 单元测试(Testing) <补充> 2. 上下文(Context) <补充> 3. 前端 js/html <项目前端时讲> ## 软件开发生命周期 1. 老板的商业洞察, 立项(BP), 使用对象, 市场前景, 商业模型(怎么赚钱),软件开发的方向 2. 产品设计: 规划产品 1. 需求收集: 用户的痛点, 用户需要是什么, 给谁用的。 2. 系统设计: 前端负责人/后端负责人 测试负责人/运维负责人 + 概要设计: 基本流程跑通,关键字段定义请求, 只有一个想清楚业务流程 + 流程设计: 使用流程说明, 可以参考竞品 + 用户界面设计: UI/交互,可以参考竞品 + 软件架构设计 + 详细设计: + 每个模块, 每个具体功能的定义是什么, 具体到能出页面, 能定义接口, 需要评审 + 产品原型 高保真: 使用专门的产品工具: 蓝图, axure, figma 3. 产品研发: + 前端: 根据原型开发界面, 软件对接后端, 一起发布进行测试 + 后端: 后端研发负责人, 有参与系统架构设计, 任务分解 + 整体规划: 服务交互流程, 接口定义: /productA/api/v1/resource POST {} query:page_size, {code: 0, msg: '', data: }, 前端根据规范进行对接 + 服务A: vblog + 服务B: cmdb + 服务C: 用户中心 + 开发环境联合调试 4. 产品测试 等着版本进行提测 + 集成测试: 功能测试/回归测试/安全测试/性能测试 5. 运维发布: 上线 配置域名 开放给 公网用户使用 + 灰度验证: 单元使用一个业务账号来进行线上测试, 内部账号进行测试 + 灰度发布: 0% ~ 100% 到新版本 + A/B 产品迭代: 需求 ---> 开发 ---> 验证 ---> 上线 ## 项目篇 项目是循序渐进的过程, 不要跳着看 ### Vblog项目(单体服务) 全栈(前端+后端) 面向的场景: 业务规模不大, 业务简单, 比较适合 工具类开发 面向的岗位:运维开发,公司内部系统开发 前端后端分离的博客项目(很简化) + API Server: 项目骨架编写 + Gin + MySQL(Grom) + Ioc(解决对象依赖问题: v2) + Vue3(MVVM前端框架) + ArcoDesign(Vue3的UI组件库) 1. 如何开发一个后端 Restful API项目 2. 如何编写前端代码 ### Devcloud-mini(微服务项目) 偏向于平台架构 面向的场景: 庞大的复杂系统, 10 ~ 50多个微服务组成 面向的岗位: Go未主的业务开发, 平台开发(用户中心, 运营管理系统), 企业内部大型信息化一体化的系统 研发云: + 用户中心(用户认证和权限) + 审计中心 审计日志 + 源cmdb: 云管 管理云商的key 负责同步资源 非业务功能: + Trace: opentelemetry 接入Trace + 外部接口 采用goRestful 开发API + 内部调用 采用GRPC + Prom 作为应用自定义监控(Exporter) ### 业务项目(Devcloud完整版Github) 复杂流程业务编写 面向的场景: 见识下 复杂的业务模式 怎么开发 面向的岗位: 面向平台开发 + mcenter(直接使用) + mflow: ci/cd的流水线项目 + mopertaor: k8s operator 和 mflow配套解决 pipeline状态驱动 + mpaas: 发布平台, 执行k8s 的deploy ### 关于前置工具 + [如何使用Git](https://www.liaoxuefeng.com/wiki/896043488029600) ### 关于课堂笔记使用 以Tag的形式 把每天直播的内容分为多个阶段 + day01.01 + day02.02 注意事项 : + 项目课 不要Copy我的代码仓库, 自己启用自己的独立仓库, 方便面试的时候 展示自己项目能力 ``` vblog(目录) ---> 独立创建一个vblog的项目仓库 devcloud-mini(目录) --> 独立创建一个devcloud-mini的项目仓库 ``` ### 关于课件 + [课程大纲](https://gitee.com/infraboard/go-course/blob/master/new.md)