Skip to content

为什么复制粘贴?

问题

后端模块(认证、CRUD、文件上传、限流)在不同项目间共享 80% 的骨架代码,但剩余的 20% 让包管理变得尴尬:

  • 你需要深入模块内部定制业务逻辑
  • 你想拥有代码,而不是被上游版本锁定
  • 你的 AI 编程助手能更好地理解和修改直接可见的代码
  • 没有依赖地狱 — 默认仅使用 Go 标准库,安全例外会显式声明

解决方案

Scion 提供复制粘贴代码模块。与其安装框架或引入依赖,不如复制生产就绪的模块到你的项目中,拥有每一行代码。

优势

代码所有权

复制后每一行都是你的。没有上游锁定。没有版本冲突。不用等待维护者合并你的 PR。

显式依赖

模块默认仅使用 Go 标准库;安全敏感模块如认证可以显式声明外部安全库。没有隐藏的 go.sum 膨胀,也没有未声明的传递依赖。

安全优先

输入验证、限流、注入防护 — 从第一天就内置。每个模块都包含渗透测试用例。

AI友好

__llms__.md 文件让 AI 助手在 ~200 tokens 内理解模块。你的 AI 编程助手可以直接读取、修改和扩展代码。

框架无关

使用 Go 标准 net/http。可适配 Gin、Echo、Fiber 或任何框架。

经过测试

每个模块包含功能测试和渗透测试用例。运行 go test -v ./... 验证。

对比

方式优点缺点
包管理 (npm/go)安装简单,自动更新版本锁定,依赖地狱,难以定制
框架 (Gin/Echo)统一API,社区支持锁定,臃肿,学习曲线
复制粘贴 (Scion)完全拥有,依赖显式,可定制手动更新,初始工作量稍大

何时使用 Scion

  • 你需要快速获得生产就绪的模块
  • 你想拥有每一行代码
  • 你需要深度定制
  • 你使用 AI 编程助手
  • 你不想要隐藏的传递依赖

何时不使用 Scion

  • 你更喜欢框架约定而非代码所有权
  • 你需要上游自动更新
  • 你在快速原型开发,不关心依赖

Released under the MIT License.