yxt
2021-05-13 00:34:37 +08:00
作为一个 FastAPI 用得还算开心的用户, 并不苟同"如果看到有人把 Flask 和 FastAPI 放到一起比较,请把这篇文章的链接丢过去" (当然发那个帖子里比较合适, 顺手就发这儿了):
1. 如果用户本意就是要在流行的框架间比较呢? 从"流行的 python 框架" 角度出发, 一起比较并无不妥, 没必要理清楚衍生关系(基于某框架的某框架), 而从衍生关系出发, 把两个(至少是当下)流行程度和成熟程度不在一个量级的框架放一起比较, 反而怪怪的.
2. 强行区分 Flask 和 FastAPI 的一个前提, 就是 Flask 更"通用". 一方面, 从需求上说, 前后端分离的趋势下, 强调这么一点写 HTML 模板的能力的差异而强行说两者不能比较有点不妥, 另一方面, FastAPI 又不是不能用 template engine. 或者说, 这个 Flask 额外具备的通用性, 还有别的含义?
(还有一些对文章里描述的吐槽)
3. 文中的靶子, 原文开头就说明是一个 API 需求, 何苦强调那么一点"通用性"的差异而将其作为靶子立在那儿? 就算要立, 也该先论述一下 e.g. "这个 API 需求, 只是小部分的需求, 现实中我们用框架还要做很多别的事情, 而那些是 FastAPI 不能做的"?
4. 再说这个靶子, 原文写了 FastAPI 写法简洁的优势, 如果 APIFlask 可以做到类似的事情, 为何不正好 show 一下以论述 "简洁的写法并不是 FastAPI 所独有的"? 我感觉 marshmallow 并没有 pydantic 好用.
5. FastAPI 的推介者没有义务一定要从 FastAPI 是基于 Starlette 和 pydantic 的一个衍生框架这个角度来介绍, 开发者也没有义务一定要把这句话放在第一句, 技术背景放在 requirements 里很正常, 又不是刻意隐藏;
6. PR 里大量的文档翻译工作作为用户是喜闻乐见的(虽然我是看英文的), 虽然从开发角度看的确比较停滞.
所以, 我没有觉得这篇文章可以达到"如果看到有人把 Flask 和 FastAPI 放到一起比较,请把这篇文章的链接丢过去"的程度, 这只是"既然看到了 FastAPI, 也来看看 APIFlask 这个新项目", 文中立的靶子文章反而实在得很. 当然作者推介一下心血无可厚非, 第三方这么推, 不会只是因为标题这么写吧?