7 Star 17 Fork 22

go-course/go9

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

go9

项目课程样例代码仓库, 所有的项目都会放到这个仓库里面, 所有项目集中在一起方便查看与管理

自己写项目或者练习的时候, 使用独立代码仓库

该仓库配套适配视频一起观看, 每天都会有一个对于的tag, 比如看项目课第一天的适配,配套的代码就是 day01 tag

前提

  • 语法
  • 脚本化编程能力
    • 程序配置
    • CLI
    • 核心逻辑
  • 开发简单项目的能力
    • Gin
    • Http标准库
    • sql原生用法
    • gorm 的使用
    • 编写简单的 HTTP API
    • oop 面向对象编程的思想

介绍

项目分为3个阶段, 前面2个阶段: 以标准的后端开发为主, 阶段3准备针对运维

纯后端开发: 角色划分的很细(微服务团队, 一个功能包含所有角色)

  • 产品 (需求), 业务流程设计, 产品原型(草稿)
  • UI/UE 产品界面设计(高保真, 这个时候的页面,最终的成品已经非常一致)
  • 项目架构设计, 把业务流程 拆解成不同的服务, 每个服务的功能
  • 开发阶段(前后端分离)
    • 前端开发: 需要原型 + 需要接口定义(Mock)
    • 后端开发: Web API开发(给前端使用) + 内部调研RPC开发(给内部服务使用)
  • 测试阶段(QA)
    • 功能测试: 基础功能的测试, 下单功能
    • 场景测试: 站在用户的使用, 默认用户的场景, 比如购物
    • 性能测试: 项目对资源的需求能力(计算,存储, 网络), 你需要几核几G的服务器, 上限测试
    • 回归测试: 后期开发了一些新功能, 会影响到一些老接口(老功能)
  • 线上部署
  • 业务发展
  • 业务重构
  • ...

开发业务方向:

  • 业务开发(商业模型): 完整的后端开发角色,划分的很细
    • 电商
    • 游戏
    • 区块链
    • 云厂商
    • ...
  • 企业内部系统开发(IT系统,支持企业内部): 企业数字化转向(飞书IM), 可以选择使用商用, 或者自己开发, 有完整的开发流程
    • 财务系统
    • IM系统
    • 工单系统
    • CRM/ERP
  • 基础平台(支持业务的系统): 业务的程序, 需要有配置中心, 网关, 需要部署, 需要trace排除问题, 一般情况这种平台有开发人员之间开发, 框架部门
  • 运维开发: 可能会被包含在 基础平台开发内部, 需要部署, 资源管理, 成本管理, 监控告警 。。。。

Web开发: 难度6

以一个单体应用进行教学, 单体服务 也是前后端分离的, 只有1个前端,1个后端(后端仅仅由1个服务提供), 后端模块的调用都是进程内调用(pkg.xxxx)

web 单体应用开发的业务: vblog, 微博客, 功能很简单: 管理员后台发布markdown的博客, 游客在前台浏览博客内容

教学重点:

  • 如何架设一个后端服务(难度不大)

  • 如果编写项目前端(难度比较大)

  • 后端开发: 给前端提供接口, web Service, HTTP 接口

  • web基础: html, css, js, 不包含TS

  • Vue全家桶: vue3, vue-router, pinia, vueUI组件库(arco-design, 头条的开源Vue3组件库)

  • 项目前端: 编写Vblog项目前端, 组合使用所有技能

微服务开发

以devcloud为项目原型, 功能是 研发云(微服务管理平台, 包含部分运维平台能力), 微服务的治理:

  • 用户与权限(辅助): 用户认证与用户权限鉴定 , 需要做又给中心化的用户系统: 用户中心

  • 审计中心(辅助): 用户在你的系统里面做了一些操作, 需要报操作记录下来, 比如用户删除又给订单, 一个是为了溯源用户行为,避免不必要的纠纷,如果你的系统要过 等保, 也是需要你符合这些标准的

  • 资源中心(业务: CMDB): 负责业务使用到的资产的管理

  • 服务间的调用: RPC, GRPC

  • 消息总线: kafka, 服务之间异步通信

  • 服务发现: 不适用服务发现(直接配置服务地址, 或者使用有grpc协议代理里面的网关), 使用服务发现(用户中心会提供服务发现的能力, 可选)

  • 加入缓存: redis

  • Web框架: go-restful, k8s做API Server使用的那套

  • 数据库: 用户中心,审计中心: mongoDB, 资源中心: MySQL

运维开发二开项目

  • Prometheus 相关开发: 开发Prometheus Exporter开发, 如何与Cmdb对接 实现监控发现(选项)
  • K8s 相关开发: 基于client-go 提供服务部署能力, 如何使用client-go, Operator开发, 一个简单的demo, CRD定义, Watch Pod变化, 把服务注册到注册中心(未实现)

如何跟进项目

关键: 跟着练(不能只是上课时 听, 上课的时候听思路), 做开发: 自己解决问题的能力(debug), 不要copy的代码, 你的项目的代码 要自己一行一行的写

怎么练: 自己在github/gitee/gitlab/coding 公开的git服务 创建一个自己的用户, 每个项目放到自己的代码仓库里面, 你们有什么问题,可以把你的代码仓库地址发出来, (其他同学可以帮你发现问题, 也可以看别人怎么写的)

把项目可上的工程, 转化成你的项目工程(一个工程, 就是一个go module)

MIT License Copyright (c) 2022 Admin Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

go9相关演示项目, 主要用于流程演示, 主要包含演示样例, 前端,后端,以及二开项目 展开 收起
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/go-course/go9.git
git@gitee.com:go-course/go9.git
go-course
go9
go9
master

搜索帮助

A270a887 8829481 3d7a4017 8829481