框架的种类


框架是什么介绍了这个概念:结构加上已解决的基础设施,框架调用你的代码。本章是现有框架的全景地图:一个充满安心感的导览,因为没有人需要了解所有这些。工作中的开发者精通一两个框架家族,认识其余的,这也是我们的目标。框架家族比名称更重要:深入学习其中一个成员,它的相关框架很快就会变得熟悉。
网络:前端和后端
网络框架沿着网络本身的分割线分化。前端框架在浏览器中运行,管理用户看到的内容;后端框架在服务器上运行,管理数据、账户和幕后的一切。如果你要进入网络开发,两边各一个框架很可能会成为你的日常工具,通常由你加入的团队或项目决定,而不是由你决定。
你将会遇到的前端框架:
- React:使用量最大,生态系统和就业市场最大。严格来说是一个 UI 库而不是完整框架,这个区别有下面涵盖的有用核心。
- Vue:以平缓的学习曲线和令人愉悦的文档而闻名;一个完整、组织有序的中间路线。
- Angular:谷歌的功能完整框架,对一切都有看法;最适合想要一种规范方式做每件事的大型组织。
- Svelte:在构建时完成工作,向浏览器发送更少代码;社区较小,经常被其成员所钦佩。
以及后端框架,框架通常与语言相关联:
- Django(Python):功能完整,从数据库到管理界面;与你可能已经了解的 Python 搭配得很好。
- Rails(Ruby):推广约定优于配置的框架;其思想在大多数现代网络框架中都能回响,包括 Laravel。
- Laravel(PHP):PHP 世界的现代标准,仍然驱动着网络的很大一部分。
- Express(JavaScript):刻意保持最小化,更接近工具包而非完整框架;你自己组装其余部分。
- Spring(Java):企业工作马;范围广泛,根深蒂固,无处不在于大公司。
应用和游戏
移动开发有自己的框架故事,它围绕一个问题展开:为 iPhone 和 Android 分别构建,还是一次为两者构建?两个框架主导了一次构建的答案。Flutter(来自谷歌,使用 Dart 语言)逐像素绘制自己的界面,所以应用在任何地方看起来都相同。React Native 将 React 的组件模型引入移动应用,并驱动每个平台的原生界面部分,如果你已经了解 React,这是一个自然的延续。
游戏引擎是框架的最全面形式:它们拥有每秒运行六十次的循环,你的代码填充每个对象在其中做什么。Unity(C#)是独立游戏和中型游戏以及移动游戏的默认选择。Unreal(C++)在视觉保真度是关键的地方领先,从大预算游戏到电影制作。Godot 是免费的、开源的引擎,其社区增长迅速,是一个友好的起点。
安静的那些:测试和数据
不是每个框架都是关于构建产品的;有些围绕组织工作。测试框架是最清晰的案例,也是上一章定义的最纯粹的例子:pytest(Python)、Jest(JavaScript)和 JUnit(Java)各自找到你的测试函数,运行它们,并报告结果,你永远不需要写一个调用你自己测试的程序。你会在几乎每个专业代码库中遇到其中一个,通常是与项目语言匹配的那个。
数据和机器学习也有框架。PyTorch 在研究和日益增长的生产中占主导地位;TensorFlow 是谷歌的生态系统,带有深层的生产工具。两者都处理训练模型的数学机制,所以你的代码描述模型而不是微积分。如果人工智能如何工作轨道吸引了你,这些是那个世界用来构建的工具。
这些接下来去哪里
那就是地图:网络的两边、移动、游戏、测试和数据,都是相同思想穿着不同制服。剩下的问题是实际的,它有两个部分:选择哪一个,以及是否都要选。选择和学习框架两个都直面,如果这里的定义感觉不稳定,框架是什么是一个短的回顾阅读。

