本内容是对 Every Web Framework Explained in 12 Minutes 内容的翻译与整理。
Ruby on Rails
Ruby on Rails 是一个基于 Ruby 编程语言开发的服务器端 Web 框架。它诞生于 2004 年,主要用于构建网站。你可以通过它创建和管理数据库、构建网页,并在后端进行整体管理。这种架构被称为 MVC(模型-视图-控制器)。它还使用可重用的代码,称为 gems。
像 Ruby on Rails 这样的 Web 框架通常的工作方式是将编程语言嵌入到 HTML 和 CSS 中。这不仅缩短了开发时间,还使得构建网站变得更加容易。使用 Ruby on Rails 的知名平台有 Crunchbase、GitHub、Twitch 和 Airbnb。
ASP.NET
ASP.NET 是一个 Web 框架,它允许你使用 C#
编程语言来创建网站。它支持创建所谓的 CRUD 应用,即创建(Create)、读取(Read)、更新(Update)和删除(Delete)。它由微软在 20 多年前创建,与 Ruby on Rails 一样,采用 MVC 架构设计。
.NET 平台用于开发多种类型的软件,如桌面应用、移动应用和游戏,但 ASP.NET 是专门用于开发网站的。尽管 .NET 框架通常使用 C#
语言,但它实际上也可以使用其他编程语言,例如 Ruby、Python、C++ 和 Java。
Vapor
Vapor 是一个用 Swift 编写的 Web 框架,主要由 iOS 开发者使用。它允许你构建网站和 API 的后端部分,从而使用户界面(前端)可以与存储和管理数据的后端进行通信。
Django
Django 是一个使用 Python 编写的 Web 框架,它与 Ruby on Rails 有很多相似之处,不同的是它使用的是 Python。它允许你创建和管理称为模型(Model)的数据库,设计视图(View),并创建控制器(Controller)来管理数据的流动及网页的路由逻辑。
Flask
Flask 也是一个使用 Python 编写的 Web 框架。那么它和 Django 有什么不同呢?Django 被认为是一个高级的全栈 Web 框架,意味着你可以从零开始构建一个完整的网站,内含数据库管理、管理面板和用户认证等功能。而 Flask 则没有 Django 那样的“全套功能”,但它更适合初学者,可以更快速地创建小型网站。
不过别误会,使用 Flask 同样可以构建大型和功能强大的网站,只是学习曲线会更陡一些。
Phoenix
Phoenix 是一个使用 Elixir 编写的 Web 框架,主要用于构建后端,同样采用 MVC 架构。Phoenix 通常与一个名为 Phoenix LiveView 的库配合使用。
那么什么是 Phoenix LiveView 呢?在过去,当网页上的某个内容需要更新时,整个网页都必须重新加载,这种方式效率低下。后来使用异步 JavaScript(AJAX)来解决这个问题,只更新页面的局部内容,而不是整个网页。再后来,开发者使用在网页与服务器之间传输 JSON 文档的方式进行通信,但这仍显得有些繁琐。
这时,LiveView 出现了。它通过在网页和服务器之间保持持续连接来实现实时更新,当网页内容发生变化时,信息会立即发送到服务器,然后返回到网页上,无需使用 JavaScript 或传输文档。这使得网页更新更快、性能更高。
Laravel
Laravel 是一个使用 PHP 编写的 Web 框架,它配有一个命令行工具,叫 Artisan。Laravel 还提供一个名为 Blade 的功能,允许你使用可重用的 HTML 和 PHP 代码,这些被称为 Blade 模板。它使得网页中的代码更简洁、开发更高效。
Next.js
Next.js 是一个常与 React 一起使用的 Web 开发框架。它的主要功能是解决搜索引擎优化(SEO)问题,同时让你的网站运行更快。它通过在服务器端渲染网页,再将其发送给用户来实现这一点。它还优化了图片加载,并能够生成静态网页构建,因此运行速度更快。
Astro
Astro 是一个允许你结合多个 Web 框架开发的框架。它的主要特点是只在必要时才在网页上使用 JavaScript。网页运行速度是 Web 开发中的重要考虑因素,而 JavaScript 的使用越多,网页通常越慢。但 JavaScript 又能实现更复杂、交互性更强的网页体验。
Astro 的解决方案是只向用户渲染 HTML,并仅在用户与网页交互时使用 JavaScript。这使得网站在性能、SEO 和用户体验方面表现更佳。
Spring Boot
Spring Boot 是 Java 编程语言的一个框架,不仅可以用来构建 Web 应用,也可以用于 Android 和 iOS 的开发。Spring Boot 主要用于处理后端任务,如服务器和数据库。它是 Spring 框架的一个变体。
Express.js
Express.js 是一个用于构建 API 的后端框架。API 是应用程序编程接口,它允许不同类型的程序彼此通信。举一个简单的例子:你在餐厅点餐,不会直接跑到厨房告诉厨师你要吃什么,而是通过服务员传达你的需求。在这个比喻中,你是一个程序,厨房是另一个程序,服务员就是 API。
你是否曾经在别的网站上使用 Google 账号登录?那就是 API 的一个例子。
Rocket
Rocket 是 Rust 编程语言的 Web 框架。通常来说,Rust 并不适合用于 Web 开发,但自从 WebAssembly 的出现,让使用 Rust 进行 Web 开发成为可能。
Ktor
Ktor 是 Kotlin 编程语言的 Web 框架,是 Java 开发者在不喜欢 Spring 框架时的替代选择。
FastAPI
FastAPI 是一个使用 Python 构建 API 的框架。
NestJS
NestJS 是一个使用 TypeScript 编写的服务器端 Web 框架,它运行在 Node.js 环境中。它采用 MVC 架构,支持网站安全、数据库管理等后端功能。
Gin
Gin 是 Go 语言的 Web 框架,像其他框架一样,它允许你构建 API 和处理网站后端。
React
React 是一个使用 JavaScript 的 Web 框架,也可以和 TypeScript 一起使用。它是世界上最流行的 Web 框架之一,主要用于构建用户界面(前端)。
React 使用名为组件(Component)的可复用代码构建网页,极大地简化和加快了开发过程。其代码格式称为 JSX,看起来像是 HTML 和 JavaScript 的结合体。React 由 Facebook 于 2013 年发布,还推出了移动版本 React Native,可用于开发跨平台的移动应用。
Vue.js
Vue.js 是一个与 React 类似的 Web 框架,也使用 JavaScript 构建用户界面。它同样使用可复用的组件,并采用虚拟 DOM 技术——即网页更新时只更新需要变动的部分,而不是整个页面。尽管 Vue 的人气不如 React,但它在页面渲染速度上略胜一筹。
Angular
Angular 是由 Google 开发的 JavaScript 和 TypeScript 框架,和 React、Vue 一样,也使用组件构建应用。Angular 更适合企业级大型应用开发,能够完成从头到尾的网站构建,这一点区别于 React,需要借助第三方库来扩展功能。
Svelte
Svelte 是另一个 JavaScript Web 框架。是的,又是一个 JavaScript 框架,这在圈内甚至成了笑谈——几乎每天都有新的 JavaScript 框架发布。
Svelte 也使用组件构建网页,但与 React 和 Vue 使用虚拟 DOM 不同,Svelte 使用编译器将代码直接转换为原生 JavaScript,从而实现更小的文件大小和更快的性能。
Jamy
Jamy 是一个用于构建数据库应用的 JavaScript 和 Python 框架,主要面向数据库驱动型企业,被称为低代码或无代码框架。
Fastify
Fastify 是一个为 Node.js 开发的框架,用于构建后端服务器和 API,正如其名,专为高性能而设计。
CakePHP
CakePHP 是一个受 Ruby on Rails 启发、用于 PHP 的 Web 框架。它是一个后端框架,采用 MVC 架构,以简洁著称,主要用于开发小型应用。
Catalyst
Catalyst 是 Perl 编程语言的 Web 框架。
ColdBox
ColdBox 是 ColdFusion 编程语言的 Web 框架,它使用可复用代码模块,称为 ColdBox 模块。令人惊讶的是,至今仍有一些公司使用 ColdFusion。
WebKit
WebKit 是一个 C++ 的 Web 框架,有时也被称为 Wt(Witty)。由于 C++ 相较其他语言更快,因此 Witty 受到青睐,但它的学习门槛也更高。Witty 是一个服务器端框架,用于构建 API。
Yesod
Yesod 是一个用于 Haskell 编程语言的 Web 框架,它采用函数式编程,而非面向对象编程。
Remix
Remix 是另一个 JavaScript Web 框架,值得一提的是它的流行程度。它于 2020 年发布,主打性能优势,原因是它采用服务器端渲染技术,特别适用于拥有大量网页的网站。Remix 可作为 Next.js 的替代方案,最近还被 Spotify 收购。
Grails
Grails 是 Apache Groovy 编程语言的框架,也被称为 Groovy on Rails,它集成了 Java 平台。
Lift
Lift 是 Scala 编程语言的框架,也受到了 Ruby on Rails 的启发。
Solid
Solid 是最后一个要介绍的 JavaScript 框架。和许多 JavaScript 框架一样,它使用可复用组件。但和 Svelte 类似,它不使用虚拟 DOM,而是使用编译器将代码转换为原生 JavaScript,因此更为轻量。
Bootstrap
Bootstrap 是一个用于 CSS 的 Web 框架。CSS 是负责网页设计和美化的语言。Bootstrap 提供预制组件(如按钮、网格和布局),而且可以自定义,还支持可选的 JavaScript 功能。
Tailwind
Tailwind 是另一个 CSS 框架,但与 Bootstrap 不同,它没有预制组件,而是提供预设的类,你可以将这些类添加到 HTML 元素中。这使得 Tailwind 的可定制性更高,但学习曲线更陡。一个常见的抱怨是它的 CSS 类名可能会非常冗长。
Flutter
Flutter 是 Dart 编程语言的框架,虽然它也可以用于 Web 开发,但更常用于开发 iOS、Android 和桌面应用。Flutter 提供了预制组件,称为 Widget,尤其适用于构建移动应用。Flutter 会编译为机器码,因此用它开发的应用非常快速。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。