f0245e926d
Deploy Slides / build-and-deploy (push) Successful in 1m13s
- why-not-x.md: Engineering decision rationale (Go vs Python, SQLite vs PG, etc.) - request-journey.md: Full HTTP-to-pixel request tracing with timing breakdown - lessons.md: 4 real engineering pitfalls and how they were solved - Wire all 3 new pages into slides.md in logical positions
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?这个问题展示的是工程判断力——不是用最新的,而是用最合适的。
|
||
-->
|