对于 Web 开发人员来说,找到一些合适的工具,能让工作轻松许多。这其中,Web 框架更是提升工作效率的“利器”。但因为可选的 Web 框架非常多,如何选择也是一件令人头疼的事情。 本文列出了9款目前比较流行的 Web 框架,并对优缺点进行分析,希望能对大家有所帮助。(内容主要编译自Ken Mazaika的The 9 Most In-Demand Web Frameworks And What You Need To Know About Them) 首先, 什么是 Web 框架? 当 Web 浏览器使用 HTTP 和在其他地方运行的服务器(计算机)通讯时,这些服务器会收到一些通知:
服务器要干很多事情,比如:
如果要提供更复杂的功能,就需要执行更多的步骤。作为开发人员,则需要对想要的功能列出一系列解决方案。Web 框架就是其中可选的解决方案之一。
进入正题 1、Ruby on Rails 编程语言:Ruby 简介:Ruby on Rails 是一个已经被许多公司采用的 Web 框架,是 Ruby 编程语言中 Web 框架的鼻祖,获得了大量开发者的采用。DHH(Rails 的创始人)曾用它15分钟左右创建一个博客。 Rails 的一大特点是约定优于配置(convention over configuration)。这意味着,它比较模式化、标准化和“约定化”,开发者通常做的是相同的事情,可以让代码写到最少。 Rails 还使用了 MVC(Model-View-Controller),让架构更有组织性,更周密。 优点:
缺点:
整体来看,鉴于其灵活性及便捷性,Rails 是一个非常理想的 Web 框架,值得初学者优先学习。 2、Sinatra 编程语言:Ruby 简介:上面的5行代码就是做一个最低限度配置的空 Web 应用所需要的全部代码, 如果拿它和 Ruby on Rails 进行比较,会发现它需要的代码更少(而且只有一个文件,而不是几十个)。 然而,Sinatra 的简单性是一把双刃剑。 它用的是和 Ruby on Rails 相反的方法,需要开发者手动配置所有的东西。 优点:
缺点:
3、ExpressJS 编程语言:JavaScript 简介:ExpressJS 是一个 JavaScript Web 框架,基于Node.js。看起来有没有熟悉,它的代码非常类似 Sinatra 的代码,也有和 Sinatra 相似的简单性。 在一个准Express 应用中只有两个代码文件:
优点:
缺点:
4、SailsJS 编程语言:Javascript 简介:SailsJS 可以看成是 JavaScript 版的 Rails,有一个命令行工具去生成一个完整的默认应用程序,自带许多合理的默认配置和数值。 同样,Sails 也有 MVC 架构,启动一个完整的应用也会有数十个默认的文件。 优点:
缺点:
5、MEAN 堆栈 编程语言:JavaScript 简介:MEAN 是 ExpressJS 的扩展,堆栈了如 MongoDB、AngularJS 和 WebPack 等技术。MEAN用JavaScript 一种语言来驱动整个应用。 MongoDB 是一个在概念上与其他大多数据库有较大区别的数据库,它允许 JSON 数据在其中自由随意,这意味着数据库条目是灵活的,但同时也导致无效的记录成了一个非常容易遇到的问题。它不是通过 SQL 与数据库交互,而是使用其独有的 JavaScript。 优点:
缺点:
补充几句个人观点: 这个包含 MongoDB 的框架对我来说毫无意义,几乎所有其他 Web 框架都使用标准数据库 SQL。在我看来,MEAN 堆栈可能只在那些 MongoDB 真正“发光发热”的场景中有价值,但 Mongo 又是一个在高负载的时候才需要的东西,比如广告网络和 API 负载高的时候。 不可否认 MEAN 在某些情况下是有意义的,但对于典型的 Web 应用,我不太建议使用。因为 MEAN 在应用的每一个部分只使用 JavaScript 编程语言,这听起来会很容易掌握,但是像 MongoDB 和 WebPack 这样的东西使得 MEAN 实际上比那些解决问题的“标准”技术更困难。 6、Django 编程语言:Python 简介:Django 是一个运行在 Python 上的 MVC Web 框架。 它也有一些打开即用的配置,它与 Ruby on Rails 框架有许多相似之处,也有不少区别。 这个 Web 框架改变了控制器和视图的职责,但毫无疑问它是一个优秀的 Web 框架。 优点:
注意:
7、Tornado 编程语言:Python 简介:Tornado 是一个没有怎么宣传的 Python Web 框架,它快速、高效,并允许开发人员访问 python 的大数据库。 优点:
缺点:
8、Play 编程语言:Java 或 Scala 简介:Play 同样是一个轻量级的、无状态的 Web 框架,学到了 rails 的优点,使用构建在 Akka 之上的完全异步模型,提供可预测的和最小的资源消耗(CPU,内存,线程)。 优点:
缺点:
9、Laravel 编程语言:PHP 简介:Laravel 是一个用 PHP 编写的框架。 10年前,PHP 是几乎所有 Web 应用构建的标准编程语言,不过如今,受 Ruby、JavaScript 和 Python 影响,PHP 失去了很大的市场份额。 尽管如此,Laravel 仍是一个非常成熟的框架,允许使用 PHP 构建漂亮的代码。 优点:
缺点:
最后再说点 看完上面列出的这些不同的框架,很容易发现它们有互相在寻找灵感,许多功能、特性其实还蛮相似的。所以,说哪个好哪个不好,并没有什么意义,找到合适自己的才是关键。上面的框架可以简单分为两种类型:
|