# gocollect **Repository Path**: shgopher/gocollect ## Basic Information - **Project Name**: gocollect - **Description**: No description available - **Primary Language**: Go - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-07-14 - **Last Updated**: 2021-11-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Go项目demo feature需求收集 想写一个 go demo 项目,把 go 项目开发中的一些比较重要的特性都包含进去,这里收集一些功能需求和反馈,demo 今年内会上线。 大家可以提issue反馈,感谢大家! 大概可以分3个版本: + V1:经典构建方式 ![V1架构](./docs/image/architecture_v1.png) + V2:微服务化 ![V2架构](./docs/image/architecture_v2.png) + V3:架构升级 ![V3架构](./docs/image/architecture_v3.png) ## 版本1 ### 当前的 Feature(v1) + 开发环境配置 + 代码结构和目录设计 + 代码设计建议 + 配置管理 + Go常用包的使用 + cobra + viper + gorm + gin + pflag + ... + HTTP + HTTPS + Web框架 + Middleware + Router + 错误包设计 + 错误代码设计 + 客户端CLI设计 + client-go风格的:SDK设计,支持: + username/password + token + tokenfile + secretid/secretkey + RESTful设计和实现 + RESTful API设计规范 + Grpc设计和实现 + 数据库操作 + 数据交互格式设计 + Swagger文档 + Cache机制设计 + 业务逻辑处理 + 参数读取、返回 + 请求参数校验 + 请求逻辑处理 + API认证 + SecretID/SecretKey + Token + Username/Password + 授权:基于RBAC/ACL的授权控制策略 + 开发规范 + 注释规范 + 错误日志规范 + Go开发规范 + Go开发技巧 + API调试 + 测试 + 单元测试 + 功能测试 + 性能测试 + 性能分析 + 部署方式 + 物理机/虚拟机部署 + Kubernetes部署 + Serverless化部署 + 云原生架构设计 ### 待实现功能 + Validate + gin binding + custom validate + validate function + 打包:rpm、Dockerfile + A/B测试 + 数据库同步 + 限流 + CLI增加分库分表功能 + 验证码 + 邮箱密码找回 + elect(kube-controller-manager选举) ## 待评估功能 + Go项目发布变更流程 ### 前端功能 + vue?/react? ## 版本2 ### Feature + 网关层/service mesh层 + Graphql + Mongo支持 + Crontab系统 -- nightwatch + JobFlow - 类似airflow的轻量级子系统 + Webscoket + Sync mongo data to Elasticsearch + 有状态服务leader elect + 对接etcd: list & watch,替换pub/sub ### 彻底微服务化 + 消息队列 + 配置中心 + 调用链追踪 + 监控告警 - prometheus + EFK + 服务注册/服务发现 + 日志管理 ## 版本3 ### 架构设计思路改变 + 基于模型定义(通过protobuf做定义解耦) + list & watch(类似于k8s operator设计思路) + golang面向接口编程 + etcd支持