选择和学习框架


前两章介绍了框架是什么和存在什么框架。这一章是实践部分:是否使用框架、选择哪个框架,以及如何学习它。顺序很重要,因为第一个问题是最容易被忽略的。
你真的需要框架吗?
想象两个项目。第一个是一个有账户、表单和屏幕的应用,所有这些都对共享数据做出反应。手工实现意味着重新构建框架已经完善的管道,而原生版本最终会变成一个分散的、半测试的自制框架,没人想去维护。在这种情况下,选择 Django 或 React 意味着选择比替代方案更少的活动部件。
第二个是登陆页面、内容网站、小脚本或提交到某处的表单。普通的 HTML、CSS 和少量 JavaScript 就可以完成这些,不需要构建步骤、依赖更新,也不需要在明年迁移。把这样的页面包装在完整框架中会增加只有工具受益的机制。很多有经验的开发者有意使用原生代码发布,这是一个专业的答案,永远不是初学者的妥协。
工程学有一条古老而直白的规则涵盖两种情况:KISS,"保持简单,愚蠢"。这个侮辱是针对设计而不是设计者,这个想法是最好的解决方案是机制最少但仍然能完成工作的方案。上面两个项目都遵循了它,但得出了相反的答案。
这使得测试变成了一个问题,每个项目都要重新提出:选择能让你维护最少机制的选项。 当管道淹没了产品时,那就是框架。当产品几乎是所有东西时,那就是原生代码。
如何选择一个
当答案是肯定的时,用不起眼的标准来选择。基准和功能比较是最没用的输入,因为在同一系列中,流行的选项都足够快,功能也足够全面。真正影响你日常生活的是:
生态系统和社区:成熟的文档、已回答的问题和你会遇到的问题的包。你加入的团队和代码库:最好的框架通常是你的项目已经在使用的那个,一致性在团队内部胜过新颖。工作市场,如果是为工作学习的话:纯粹的使用数字很重要,这是 React 对很多人来说是合理的第一选择的很大一部分原因。还有你知道的语言:Python 开发者出于与质量无关的原因,会比学习 Rails 更快地学习 Django。
把原生选项保留在列表的末尾。如果比较表填满了,没有候选者在简洁性测试中胜过"没有上述任何一个",那这就是答案在告诉你什么。
如何学习任何框架
首先学习语言。框架到处假设其语言:React 代码从头到尾都是 JavaScript,Django 应用的每一个令人困惑的行都在底层是 Python。跳过到框架的学习者最终会同时调试两个谜,框架的行为和语言的语法,没有办法区分哪个是哪个。如果 React 是你的目标,JavaScript 轨道是真正的第一步;对于 Django 或 pytest,Python 轨道也扮演相同的角色。语言优先是唯一最大的捷径,因为它是在任何地方都能转移的部分。
然后构建一些小的、真实的东西。一个你真正想要的小项目,在依靠官方教程的同时构建,教的东西比任何观看和阅读都多,因为框架的形状只有在你自己手中才有意义。有意保持第一个项目简朴:它的整个工作是向你介绍框架的想法,杰作可以稍后再来。
当你进行的时候,保持询问框架为你做什么。每个便利的特性都代表真实的东西:路由代表 URL 解析,组件代表 DOM 更新,模型代表 SQL。你不需要预先掌握这些层,但知道它们存在,以及框架大致对它们做什么,是区分使用框架和盲目依赖框架的原因。
这给你留下什么
这就是整个入门书:简洁作为测试,不起眼的选择标准,语言优先于框架用于学习。当一个特定框架接下来出现时,在这些文档中或在野外,框架的种类是放置它的地图,什么是框架是它下面的定义。

