28 lines
1.1 KiB
Markdown
28 lines
1.1 KiB
Markdown
|
|
# 为什么不用 X?— 技术选型思考
|
|||
|
|
|
|||
|
|
每个选择背后都有取舍
|
|||
|
|
|
|||
|
|
<v-clicks>
|
|||
|
|
|
|||
|
|
<Item title="为什么不用 Python?">
|
|||
|
|
Go 的 goroutine 天然适合并发管线编排。编译型语言部署简单(单二进制),无需管理 venv / 依赖树。Eino 框架是 Go 生态。
|
|||
|
|
</Item>
|
|||
|
|
|
|||
|
|
<Item title="为什么不用 PostgreSQL?">
|
|||
|
|
gen2D 是单实例工具型应用,SQLite 零配置、单文件、ACID 足够。无需额外数据库服务,Docker 部署零依赖。
|
|||
|
|
</Item>
|
|||
|
|
|
|||
|
|
<Item title="为什么不用 Celery / RabbitMQ?">
|
|||
|
|
当前规模下 goroutine + channel 足够。TaskQueue FIFO 串行执行避免 AI API 并发限流问题。RabbitMQ 已在路线图中,按需引入。
|
|||
|
|
</Item>
|
|||
|
|
|
|||
|
|
<Item title="为什么不用 Redis 做缓存?">
|
|||
|
|
请求去重用 `sync.Map` 内存缓存即可,单实例场景无需分布式缓存。Redis 仅用于限流(需要原子操作),不在时自动 fail-open。
|
|||
|
|
</Item>
|
|||
|
|
|
|||
|
|
</v-clicks>
|
|||
|
|
|
|||
|
|
<!--
|
|||
|
|
评委可能会问:为什么不用xx?这个问题展示的是工程判断力——不是用最新的,而是用最合适的。
|
|||
|
|
-->
|