可以看到,ruby,python之类的动态语言的web后端框架还是相当牛逼的
为什么要使用框架呢,事实上在现在,如果说所有东西全部自己写,那么开发效率将是相当低的,在产品迭代如此之快,o2o甚至做到了一周一次产品迭代,若一个开发团队不能快速的迭代产品将会很快被对手抛弃,被市场抛弃,而框架iu是帮助我们的最好帮手,早期的框架比较乱,但现在一般一个好的框架都是基于一定的好的软件方法学理念如mvc,mvvm之类的。
框架有多快?框架里面的翘楚ruby on rails曾经有一个视频,直播15分钟开发出一个blog。
一下我将讲讲我这大半年使用的一些框架的经验
Django
这个算的上是python的web框架里面的老大了,一直被拿去和rails相比,在quora上面的django vs rails 大战持续了很久,但django确实有很多值得诟病的地方,特别是性能,因为他是一个大而全的框架,几乎什么都有,主要模块包括:django.template,django.orm,django.forms,django.url,django.admin,django.authenticate等等,其中最值得称赞的好像是django自带的admin系统,笔者曾经自己开发过学校一个社团系统,后端就是基于admin系统,省下了我不少的事,但是由于他坚持什么都自己来,所以代码量巨大,看源码几乎是一种很艰难的事情,而它的orm我对他有爱有恨,首先django的orm真的足够简单那,就关系来说,多对多,一对多非常好设计,比起sqlalchemy还要建个关系表,他真的太简单,但这也带来了性能上的下降,其次是他的template系统,最近的1.8更新,终于他放弃了那个已经跑不动的template系统,转向拥抱jinja2,但二者语法还是相当相近。
使用公司:IBM,NASA,instagram,disqus,Pinterest,mozila
FLASK
我的这个博客就是基于flask开发的,flask它自称是个微框架,基于两个库,一个前端渲染库jinja2,一个url库Werkzeug,其他的东西可以自己添加啊,如我这个博客就是加上了wtf,sqlalchemy,pagedowm等的库而开发出来的,flask比起django有很大的自由性,但也意味着你需要自己造很多轮子
使用公司:国内的果壳网,pinterest等
tornado
这是一个可以处理异步的web服务器,有可以拿来写后端框架,自己有一套template,他刚开始是由feedback开发,后来feedback被facebook收购,他转而由facebook开发,facebook的前cto出去创业的quora就是基于tornado写的,而quora的国内版本 知乎 也是基于的tornado,他因为异步带来的效率而大受欢迎。然而笔者并不是很喜欢他那种很java的写法,不过效率的话,最近好像也不能比同样可以异步的nodejs。
使用公司:facebook,quora,知乎
ruby on rails
这就是传说中的框架中的王冠,支撑起了早期的推特,以及一大堆公司,基本上是硅谷那边rails火的一塌糊涂,ruby语言的作者赞其是将ruby的元编程能力发挥到了变态的程度,当时笔者自己按着rails guide写时,完全在很恍惚的状态下,一下子,几行代码,一个博客就出来了,而且代码可复用型极高,语法也很简洁,并且将coffescript,jquery什么的一起囊括,非常吓人,写着非常的爽
全面基于mvc框架,并且天生支持RESTful架构,如果是初创企业非常建议使用
使用公司:推特,github,tumblr,国内的100offer,freewheel以及非常多的公司在自己的领域使用rails开发小的应用
详情:有哪些企业使用rails
nodejs
这个基于谷歌v8的javascript引擎的框架几乎火遍世界,他让javascript不再只是一个前端的脚本语言,而且javascript天生对事件异步的支持也使得用nodejs开发的后端效率非常之高,笔者的nodejs经验不算特别多,但是不是很喜欢那种javascript的语法,国内的话BAT基本都在内部不断的开发基于nodejs的应用,更是nodejs+mongodb+express+angularjs(mean构架)是现在最火的创业公司的技术选型。
使用公司:BAT等等的很多公司
暂无评论内容