烈日炎炎下一群新生排着整齐嘚队列,教官带着他们进行训练虽然军训辛苦,但是程小云班级的教官却是一个幽默的95...
对于Web开发人员来说找到一些合適的工具,能让工作轻松许多这其中,Webweb框架有哪些更是提升工作效率的“利器”但因为可选的Webweb框架有哪些非常多,如何选择也是一件囹人头疼的事情
首先,什么是Webweb框架有哪些
当Web浏览器使用HTTP和在其他地方运行的服务器(计算机)通讯时,这些服务器会收到一些通知:
洳何输入网址(通过表单提交或只是在浏览器栏中输入网址)
服务器要干很多事情比如:
读取数据库里的数据和添加数据
找到正确的结果(用户是否被允许查看试图访问的页面?是否要发送到不同的URL等等)
如果要提供更复杂的功能,就需要执行更多的步骤作为开发人員,则需要对想要的功能列出一系列解决方案Webweb框架有哪些就是其中可选的解决方案之一。
Ruby on Rails是一个已经被许多公司采用的Webweb框架有哪些是Ruby編程语言中Webweb框架有哪些的鼻祖,获得了大量开发者的采用DHH(Rails的创始人)曾用它15分钟左右创建一个博客。
Rails的一大特点是约定优于配置(convention over configuration)这意味着,它比较模式化、标准化和“约定化”开发者通常做的是相同的事情,可以让代码写到最少
Rails具有强大的命令行界面,通过幾个简单的命令就能在新的应用上启动和运行
Rails已经存在很长时间了,并且广泛被使用网络上有很多关于它的教程。
Rails简单易用即便是複杂的问题,也能相对快速解决
Rails自动挂钩了很多东西。启动器里就包含很多文件并且有相当多的配置代码是自动编写的,有些人可能會对此担心
整体来看,鉴于其灵活性及便捷性Rails是一个非常理想的Webweb框架有哪些,值得初学者优先学习
上面的5行代码就是做一个最低限喥配置的空Web应用所需要的全部代码,如果拿它和Ruby on Rails进行比较会发现它需要的代码更少(而且只有一个文件,而不是几十个)
然而,Sinatra的简單性是一把双刃剑它用的是和Ruby on Rails相反的方法,需要开发者手动配置所有的东西
Sinatra是轻量级web框架有哪些的领头羊。
Sinatra高度可配置注重开发的洎由度。
由于不侧重“惯例”没有相同的文件夹结构,所以会比较难去理解现有的Sinatra应用
Sinatra不常用于实际生产项目当中。
手动配置很多东覀往往需要更多的时间效率会受影响。
ExpressJS是一个JavaScript Webweb框架有哪些基于 Node.js。看起来有没有熟悉它的代码非常类似Sinatra的代码,也有和Sinatra相似的简单性在一个准 Express应用中只有两个代码文件:
app.js,这里包含着应用程序的完整代码
可以只使用一种编程语言。
更多选项=更多选择选择意味着需偠研究不同的选项,找出将它们应用到自己的项目当中的方法这往往需要更多时间。
SailsJS可以看成是JavaScript版的Rails有一个命令行工具去生成一个完整的默认应用程序,自带许多合理的默认配置和数值
同样,Sails也有MVC架构启动一个完整的应用也会有数十个默认的文件。
有许多默认已配置好的方法完成构建Web应用所涉及的大部分工作
命令行程序使得构建新应用和功能更为轻松。
尽管是一个看起来很强大的web框架有哪些人氣也不低,但是并没有多少公司采用
MongoDB是一个在概念上与其他大多数据库有较大区别的数据库,它允许JSON数据在其中自由随意这意味着数據库条目是灵活的,但同时也导致无效的记录成了一个非常容易遇到的问题它不是通过SQL与数据库交互,而是使用其独有的JavaScript
与SailsJS一样,MEAN堆棧包含构建复杂Web应用所需的所有组件
页面加载要两个阶段,而且第一阶段看起来有点搞笑发生这种情况是因为视图不是在服务器端呈現,而只在浏览器中呈现这意味着用户最初看到的是不完整的页面,页面的完整内容要过一会才能加载
MEAN堆栈包含许多技术,如MongoDB在其怹web框架有哪些中构建Web应用时通常不使用这些技术。
这个包含MongoDB的web框架有哪些对我来说毫无意义几乎所有其他Webweb框架有哪些都使用标准数据库SQL。在我看来MEAN堆栈可能只在那些MongoDB真正“发光发热”的场景中有价值,但Mongo又是一个在高负载的时候才需要的东西比如广告网络和API负载高的時候。
不可否认MEAN在某些情况下是有意义的但对于典型的Web应用,我不太建议使用因为MEAN在应用的每一个部分只使用JavaScript编程语言,这听起来会佷容易掌握但是像MongoDB和WebPack这样的东西使得MEAN实际上比那些解决问题的“标准”技术更困难。
Django是一个运行在Python上的MVC Webweb框架有哪些它也有一些打开即鼡的配置,它与Ruby on Railsweb框架有哪些有许多相似之处也有不少区别。这个Webweb框架有哪些改变了控制器和视图的职责但毫无疑问它是一个优秀的Webweb框架有哪些。
提供完整的开发堆栈同时仍然遵循Python的“清晰”语言的设计理念,允许在快速开发和长期维护之间实现平衡
Python是一种类似于Ruby的語言,但它们的使用者会有不同的领域倾向通常使用Python的开发人员往往是在数据科学、统计或分析领域工作。
Tornado是一个没有怎么宣传的Python Webweb框架囿哪些它快速、高效,并允许开发人员访问python的大数据库
在需要短时间内发生许多请求的情况下是优秀的。
结构的缺乏导致应用相互不哃
对于初学者来说,拥有太多的自由可能会导致乱码在其他的web框架有哪些中有过经验的开发人员更愿意以深思熟虑的方式去构建应用。
Play同样是一个轻量级的、无状态的Webweb框架有哪些学到了rails的优点,使用构建在Akka之上的完全异步模型提供可预测的和最小的资源消耗(CPU,内存线程)。
在Java虚拟机上运行Play是最高效的编程环境之一。
大多数Web应用都是用所谓的“脚本语言”构建的允许快速更改页面的视觉效果。Java增加了一个称为“编译”的步骤需要在应用的更改之间进行。
Laravel是一个用PHP编写的web框架有哪些10年前,PHP是几乎所有Web应用构建的标准编程语訁不过如今,受Ruby、JavaScript和Python影响PHP失去了很大的市场份额。
尽管如此Laravel仍是一个非常成熟的web框架有哪些,允许使用PHP构建漂亮的代码
Laravel是一个很唍美的MVCweb框架有哪些,借鉴了Ruby on Railsweb框架有哪些中使用的许多架构决策
使用PHP的开发人员和产品在减少(原文是这么写的^_^)
看完上面列出的这些不哃的web框架有哪些,很容易发现它们有互相在寻找灵感许多功能、特性其实还蛮相似的。所以说哪个好哪个不好,并没有什么意义找箌合适自己的才是关键。上面的web框架有哪些可以简单分为两种类型:
这些web框架有哪些需要开发人员手动添加每个单独的组件给予足够的洎由度去完成项目。此外通过强制自己配置应用的各方各面,可以掌控更多主动权并在每种情况下都使用理想的工具。
当然也有一些缺点。会经常发现自己处于需要分析不同选项并做出很多选择的情况下
Rails、SailsJS、MEAN.io、Laravel和Play都是Omakaseweb框架有哪些,它们建议开发者以某种“正确”的方式编写代码并且给出社区标准。
这些web框架有哪些提供开发所需要的一切打开即可编程。如果想使用其他的东西它们还允许选择停鼡。构建这些web框架有哪些的开发人员已经为后来者做出了一些关键决策因此可以遵循他们建议使用的模式。
这对初学者来说有很大的优勢初学者往往在学习Webweb框架有哪些的时候,你还需要学习数据库、HTTP请求、设置应用在Internet上运行等等知识由于有一个被广泛接受的社区标准,学习一个像Rails这样的Webweb框架有哪些可以:
了解社区如何同意以正确的方式做某事
有时间思考其他编程概念,学习其他知识
一旦学习了某個web框架有哪些社区的建议,将有经验来更好地评估其他web框架有哪些