对于Web开发人员来说,找到一些合适的工具可以使工作变得容易得多。其中,web框架是提高工作效率的“利器”。但是因为可供选择的web框架实在是太多了,如何选择也是一个让人头疼的问题。本文列举了9个目前流行的Web框架,并分析了优缺点,希望对大家有所帮助。(内容主要编译自KenMazaika的《9个最受欢迎的Web框架以及你需要知道的关于它们的知识》)首先,什么是Web框架?当Web浏览器使用HTTP与在别处运行的服务器(计算机)通信时,这些服务器会收到通知:选择的URL做很多事情,例如:读取数据库中的数据并添加数据以找到正确的结果(是否允许用户看到他们试图访问的页面?它是否发送到不同的URL?等)构建用户将看到的网页,如果你想提供更复杂的功能,需要更多的步骤。作为开发人员,您需要列出一系列针对所需功能的解决方案。一种可能的解决方案是Web框架。进入正题:1.RubyonRails编程语言:Ruby简介:RubyonRails是一个已经被很多公司采用的Web框架。它是Ruby编程语言中Web框架的鼻祖,被大量开发者所采用。DHH(Rails的创始人)用它在大约15分钟内创建了一个博客。Rails的标志之一是约定优于配置。这意味着它更加模式化、标准化和“常规化”,开发人员通常做同样的事情,可以将代码编写保持在最低限度。Rails还使用MVC(模型-视图-控制器)使架构更有条理和周到。优点:Rails有一个强大的命令行界面,可以通过几个简单的命令启动和运行新的应用程序。Rails已经存在很长时间了,被广泛使用,网上也有很多关于它的教程。Rails简单易用,即使是复杂的问题也能相对快速地解决。缺点:Rails会自动连接很多东西。启动器包含很多文件,自动编写的配置代码也不少,有些人可能会担心。总的来说,Rails的灵活性和便利性是一个理想的Web框架,值得初学者优先学习。2.Sinatra编程语言:Ruby简介:以上5行代码就是制作一个最大配置的空Web应用程序所需要的全部代码。如果将它与RubyonRails进行比较,您会发现它需要的代码更少(而且只有一个文件,而不是几十个)。然而,Sinatra的简单性是一把双刃剑。它采用与RubyonRails相反的方法,要求开发人员手动配置所有内容。优点:Sinatra是轻量级框架的领导者。Sinatra高度可配置,注重开发自由。缺点:由于缺乏对“惯例”的关注并且没有相同的文件夹结构,因此很难理解现有的Sinatra应用程序。Sinatra在实际生产项目中并不经常使用。手动配置很多东西往往会花费更多的时间,效率也会受到影响。3.ExpressJS编程语言:JavaScript简介:ExpressJS是一个基于Node.js的JavaScriptWeb框架。如果看起来很眼熟,那么它的代码和Sinatra的代码非常相似,并且具有与Sinatra相似的简洁性。在基本的Express应用程序中,只有两个代码文件:package.json,它由NPM自动生成。app.js,其中包含应用程序的完整代码。优点:灵活性高。可以只使用一种编程语言。轻的。缺点:更多选择=更多选择。选择意味着研究不同的选项并弄清楚如何将它们应用到您自己的项目中,这通常需要更多时间。4.SailsJS编程语言:Javascript简介:SailsJS可以看作是JavaScript版的Rails。有一个命令行工具可以生成一个完整的默认应用程序,其中包含许多合理的默认配置和值。同样,Sails也有MVC架构,有几十个默认文件来启动一个完整的应用程序。优点:有许多默认配置的方法可以完成构建Web应用程序所涉及的大部分工作。命令行程序可以更轻松地构建新的应用程序和功能。缺点:虽然是一个看似强大的框架,知名度也不低,但是采用的公司并不多。5、MEAN堆栈编程语言:JavaScript简介:MEAN是ExpressJS的扩展,它堆栈了MongoDB、AngularJS、WebPack等技术。MEAN使用JavaScript作为一种语言来驱动整个应用程序。MongoDB是一个概念上不同于大多数其他数据库的数据库。它允许JSON数据自由地在其中,这意味着数据库条目是灵活的,但它也使得无效记录非常容易遇到。问题。它不是通过SQL与数据库交互,而是使用自己的JavaScript。优点:与SailsJS一样,MEAN堆栈包括构建复杂Web应用程序所需的所有组件。缺点:页面加载分两个阶段,第一阶段看起来有点可笑。发生这种情况是因为视图不是在服务器端呈现的,而是只在浏览器中呈现的。这意味着用户最初看到的是一个不完整的页面,并且需要一段时间才能加载页面的全部内容。MEAN堆栈包括许多在其他框架中构建Web应用程序时通常不会使用的技术,例如MongoDB。补充几点个人意见:这个包括MongoDB在内的框架对我来说毫无意义,几乎所有其他Web框架都使用标准数据库SQL。在我看来,MEAN堆栈可能只在MongoDB真正“大放异彩”的那些场景中才有价值,但Mongo是只有在高负载时才需要的东西,例如广告网络和API。不可否认,MEAN在某些情况下是有意义的,但对于典型的Web应用程序,我并不推荐它。由于MEAN对应用程序的每个部分仅使用JavaScript编程语言,这听起来可能很容易掌握,但像??MongoDB和WebPack这样的东西使MEAN实际上比那些解决问题的“标准”技术更难。6、Django编程语言:Python简介:Django是一个运行在Python上的MVC网络框架。它还具有一些开箱即用的配置,并且与RubyonRails框架有许多相同点和不同点。这个web框架改变了controller和views的职责,但是毫无疑问它是一个优秀的web框架。优点:重量轻,配置少。提供完整的开发栈,同时仍然秉承Python“清晰”语言的设计理念,在快速开发和长期维护之间取得平衡。注意:Python是一种类似于Ruby的语言,但它们的用户会有不同的领域倾向,通常使用Python的开发人员倾向于在数据科学、统计或分析领域工作。7、Tornado编程语言:Python简介:Tornado是一个宣传不多的Pythonweb框架。它快速、高效,并允许开发人员访问python的大型数据库。优点:在需要在短时间内发生许多请求的情况下表现出色。缺点:缺乏结构导致应用程序彼此不同。对于初学者来说,拥有太多的自由会导致乱码。在其他框架上有经验的开发人员更愿意以一种深思熟虑的方式构建应用程序。8.Play编程语言:Java或Scala简介:Play也是一个轻量级、无状态的web框架,吸取了rails的优点,使用构建在Akka之上的全异步模型,提供可预测和最小的资源消耗(CPU、内存、线程)。优点:在Java虚拟机上运行,??Play是最高效的编程环境之一。缺点:大多数Web应用程序都是使用所谓的“脚本语言”构建的,这些语言允许对页面进行快速的视觉更改。Java添加了一个称为“编译”的步骤,该步骤需要在应用更改之间发生。9.Laravel编程语言:PHP简介:Laravel是一个用PHP编写的框架。10年前,PHP是几乎所有Web应用程序构建的标准编程语言,但今天,PHP在Ruby、JavaScript和Python的影响下失去了很多市场份额。不过,Laravel是一个非常成熟的框架,允许使用PHP构建漂亮的代码。优点:Laravel是一个可靠的MVC框架,借鉴了RubyonRails框架中使用的许多架构决策。缺点:使用PHP的开发人员和产品较少特性其实很相似。所以说哪个好哪个不好是没有意义的。找到适合自己的才是关键。以上框架可以简单分为两种:1.简单框架ExpressJS、Tornado、Sinatra都是简单框架,它们都提供了最好的启动配置。这些框架要求开发人员手动添加每个单独的组件,从而提供足够的自由来完成项目。此外,通过强迫自己配置应用程序的各个方面,您可以更好地控制并针对每种情况使用理想的工具。当然,也有一些缺点。您经常会发现自己处于需要分析不同选项并做出多种选择的情况。2、Omakase框架Rails、SailsJS、MEAN.io、Laravel、Play都是Omakase框架,建议开发者以某种“正确”的方式编写代码,并给予社区标准。这些框架提供了开发、打开和编程所需的一切。如果您想使用其他东西,他们还允许选择退出。构建这些框架的开发人员为后代做出了一些关键决策,因此可以遵循他们建议的模式。这对初学者来说是一个很大的优势,当初学者经常学习web框架时,你还需要学习数据库、HTTP请求、设置应用程序在互联网上运行等等。由于存在广泛接受的社区标准,学习像Rails这样的Web框架可以:了解社区如何同意以正确的方式做某事。有时间思考其他编程概念和学习其他东西。一旦你了解了某个框架社区的推荐,你就会有经验来更好地评估其他框架。
