The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
5wunian

tikrok 的部分来时路

  •  
  •   5wunian · 3h 16m ago · 282 views

    Changelog

    [v1.0.10] - 2026-05-19

    文档更新

    • 根 README 全面升级至第 7 代架构文档:gen/ 隔离层、sqlc 数据层契约、DAO 测试体系
    • tikrok-services README 全面重写:数据访问层架构、事务模式、测试分层、错误处理

    [v1.0.9] - 2026-05-18

    sqlc 数据层重构(第 7 代核心)

    • sqlc.yaml 配置优化:emit_interface: truequery_parameter_limit: 3emit_pointers_for_null_types: true
    • 41 处 SELECT * 全部替换为显式列名
    • DAO 构造器从 *db.Queries 变更为 db.Querier 接口,实现 Mock 可测试
    • 消除 200+ 处 sql.NullX 手动转换代码
    • 20 个 DAO 实现 WithTx(*sql.Tx) DAO 事务抽象

    测试基础设施

    • 5 个服务生成 MockQuerier ( gomock + mockgen )
    • 63 个 DAO 单元测试:auth(26)、order(19)、tunnel(19)
    • 创建 pkg/testutil/sqlctest 包:轻量 Docker MySQL 测试助手
    • 2 个集成测试:HandlePaymentCallback 事务原子性验证
    • 9 个 Bash API 测试脚本覆盖全 API 面

    错误处理

    • 所有 GetByID/GetByEmailsql.ErrNoRows 封装为 BizError( ErrNotFound )
    • 逻辑层不再处理原始 sql.ErrNoRows

    [v1.0.8] - 2026-05-17

    gen/ 接口隔离层

    • 创建 gen/ 目录:5 个纯 RPC 接口模块( auth/user/order/product/tunnel )
    • 每个 gen 模块仅 15 行 go.mod 、~2.7K go.sum ,不含业务代码
    • 修改 proto go_package 指向 gen/ 模块路径
    • 更新所有服务导入路径从 app/*/kitex_gen 指向 gen/*
    • Gateway 消费方只依赖 gen/*,不接触 app/*
    • gen/ 模块可安全对外发布(不泄露业务实现)

    Docker 部署优化

    • 切换为预编译二进制多阶段构建
    • 版本管理自动化( VERSION 文件 + build-images.sh
    • Docker Compose 版本自增 + 旧镜像清理

    [v1.0.7] - 2026-05-16

    多模块工作区重构

    • 7 个子模块独立 go.mod/go.sum,由 go.work 统一管理
    • 消除内部 replace 依赖,模块可独立构建
    • BizError 实现 GRPCStatus() 方法,支持 gRPC 错误码透明传输
    • 修复所有记录创建时缺失 CreatedAt 时间戳的问题
    • 测试脚本错误码断言统一修复

    [v1.0.6] - 2026-05-15

    GORM → sqlc+Goose 迁移

    • 移除 GORM ,替换为 sqlc 代码生成框架 + Goose 迁移工具
    • 创建 22 个数据库迁移文件( 00001-00022 )
    • sqlc 生成类型安全的数据访问代码( Queries 结构体)
    • 降低默认免费配额限制
    • 提交全部 sqlc 生成代码及查询文件

    Code Review 修复

    • Uber Go 风格指南修复:goroutine 生命周期、全局变量、切片容量
    • 安全修复:内部 API 认证、IDOR 、资源泄漏、CORS
    • 泛型工具函数 + 100 Go Mistakes 修复
    • 连接泄漏、并发安全、Context 传播、Etcd 锁重构
    • Jeepay 子模块引用更新(连接泄漏修复)
    • 订单数据流修复、静默错误处理、种子数据补充

    [v1.0.5] - 2026-05-14

    生产部署安全加固

    • Vault 加密敏感配置
    • 微服务角色分离
    • MySQL 自动备份
    • Ansible 集成 tikrok-services 微服务部署

    流量计费链路完善

    • HandleTrafficReport/ReportTraffic/Heartbeat 持久化
    • 内部 API 和流量上报路由注册
    • ServiceConnector 统一管理 gRPC 连接

    Gateway 精简重构

    • 删除 SQLite 存储层,容器化部署
    • 删除 payment/sso/sse 子系统(迁移至 tikrok-services )
    • 删除业务逻辑 handler 和中间件(迁移至 tikrok-services )
    • 重写 gRPC 客户端,使用 HTTP gateway 替代直接 gRPC 调用

    [v1.0.4] - 2026-05-13

    安全与稳定性

    • 修复管理员端点 403 和列表返回 null 的问题
    • 修复 API Key 认证和令牌失效( Logout 递增 TokenVersion )
    • 修复 MySQL 保留关键字 key 导致查询失败
    • 修复 API Key 创建时零日期 MySQL 拒绝
    • 添加 Gin 中间件 X-API-Key 认证
    • 更新 Swagger 文档补充缺失路由和 definitions
    • 后端全部缺失的 gRPC RPC 方法实现

    [v1.0.3] - 2026-05-12

    微服务功能完善

    • HTTP Gateway 从 Hertz 迁移到 Gin 框架
    • 9 个 Bash API 测试脚本(认证、密码、API Key 、配额、隧道、管理后台)
    • etcd 服务发现修复:Docker 环境地址注册
    • Swagger 文档和端到端测试基础设施
    • Casdoor SSO 集成( OAuth/OIDC 回调、用户同步)
    • ServiceConnector 统一 gRPC 连接管理器

    [v1.0.2] - 2026-05-11

    平台基础设施

    • 微服务集群 Docker 容器部署( 12 容器 5 层依赖)
    • 商品与授权系统设计
    • Goose 数据库迁移任务和部署步骤
    • etcd 服务实现自动重连与性能优化
    • 修复 CRITICAL 和 WARNING 级别安全问题及代码缺陷

    [v1.0.1] - 2026-05-10

    • 项目全面清理与 gateway → tikrokd-server 重命名
    • SDK 重构:移除所有非共享网络库包
    • 完成 SDK 模块化,提炼 tikrok-sdk 核心包

    [v1.0.0] - 2026-05-09

    初始架构定型

    • 第 6 代 gRPC + Gin 微服务架构
    • SDK 模块化( quic/protocol/tunnel/mux/discovery/pool/metrics )
    • QUIC 数据面与服务端( tikrokd-server )
    • 客户端 CLI ( tikrok )
    • etcd 服务注册与发现
    • MySQL + Redis 持久化
    • JWT + API Key 认证
    • Prometheus + Grafana 监控
    • Ansible 自动化部署
    • 36 项 E2E 自动化验证
    • Jeepay 支付、Casdoor SSO 集成
    5wunian
        1
    5wunian  
    OP
       3h 14m ago
    面向对象编程过时了。在云计算时代,一切从简,成本与速度决定着产品的走向.....
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2426 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 16:04 · PVG 00:04 · LAX 09:04 · JFK 12:04
    ♥ Do have faith in what you're doing.