Files
yoyo/taolun.md
z.to cd305a62ef fix: environment variable loading with godotenv (v0.0.3)
- Add godotenv dependency for .env file loading
- Update main.go to load environment variables
- Update memory.md with troubleshooting notes
- Test basic CLI functionality

Version: 0.0.3
2026-03-28 23:30:57 +08:00

4.1 KiB
Raw Blame History

讨论记录 (taolun.md)

本文档记录开发过程中的重要讨论,以时间轴方式存储,便于版本追溯。

使用说明

  • 每次重要讨论后更新此文件
  • 使用上下文压缩总结,突出重点
  • 格式:时间 - 版本号 - 主题

时间轴记录

[2026-03-28 22:30] 版本 0.0.1 - 确定技术栈

原因: 项目启动,需要确定技术栈 分析:

  • 比较Go、Deno+TS、Node.js+TS
  • Go优势原生二进制、性能好、CLI工具友好
  • 用户不会Go但愿意学习

解决方案:

  • 使用Go语言开发
  • 采用面向对象设计模式
  • 支持多个大模型厂商

相关决策:

  • 项目结构采用cmd/internal/布局
  • 使用YAML配置文件
  • 实现工厂模式和策略模式

关联版本: changelog.md#0.0.1


[2026-03-28 23:00] 版本 0.0.1 - 设计OOP架构

原因: 用户要求面向对象开发模式 分析:

  • Go不是传统OOP语言但可通过结构体和接口实现
  • 需要三个核心类:配置、厂商、翻译器

解决方案:

  • Config类:全局配置管理
  • Provider接口:厂商抽象
  • Translator类:核心翻译逻辑
  • ProviderFactory:工厂模式创建厂商实例

相关链接:


[2026-03-28 23:30] 版本 0.0.1 - 制定开发规范

原因: 建立规范的开发流程 分析:

  • 需要记录讨论过程、版本变更和知识积累
  • 版本号需要遵循语义化版本规范

解决方案:

  • 创建taolun.md记录讨论
  • 创建changelog.md记录版本
  • 创建memory.md记录知识纠正
  • 版本号格式:大版本.新功能.小修复(00-99)

关联文档:


[2026-03-28 23:45] 版本 0.0.1 - 创建项目初衷文档

原因: 需要一个地方记录项目初衷和愿景 分析:

  • 项目需要明确的目标和方向
  • 创始人需要记录个人想法和灵感
  • 与其他文档taolun.md、changelog.md、memory.md区分

解决方案:

  • 创建why.md文件专门记录项目初衷
  • 规定只能由项目所有者编辑
  • 提供基本结构建议,但不强制内容

文档规范:

  • 文件位置:项目根目录
  • 权限:仅用户可编辑
  • 内容:项目愿景、目标、个人笔记等

关联文档:


[2026-03-28 23:50] 版本 0.0.2 - 实现核心架构

原因: 开始实现项目核心功能 分析:

  • 根据OOP设计模式实现三个核心类
  • 需要先实现配置加载和厂商接口
  • 创建基本的CLI入口点

解决方案:

  1. Config类实现

    • 支持YAML配置文件加载
    • 环境变量替换
    • 配置验证和默认值
  2. Provider接口实现

    • 定义统一的翻译接口
    • 工厂模式创建厂商实例
    • 实现硅基流动厂商作为示例
  3. Translator类实现

    • 核心翻译逻辑
    • Prompt管理
    • 超时控制
  4. CLI入口点

    • 命令行参数解析
    • 配置加载
    • 翻译执行

技术细节:

  • 使用gopkg.in/yaml.v3处理YAML
  • 实现工厂模式注册机制
  • 使用context处理超时和取消
  • 添加基本单元测试

关联文档:


[2026-03-29 00:00] 版本 0.0.3 - 环境变量加载修复

原因: 测试CLI时发现环境变量没有正确加载 分析:

  • 配置文件中使用${ENV_VAR}语法
  • Go的os.ExpandEnv只在加载时替换
  • 需要先加载.env文件到环境变量

解决方案:

  1. 添加github.com/joho/godotenv依赖
  2. 在main函数开始时调用godotenv.Load()
  3. 更新memory.md记录踩坑经验

技术细节:

  • godotenv会自动查找当前目录的.env文件
  • 如果文件不存在会返回错误,可以忽略
  • 不影响已有的环境变量

关联文档: