刚刚用Play Framework做了一个小型项目,开发速度非常快.运行的速度也很不错,很稳定.
今天又看到了有同学开发了一个Douyu平台,下面评论一大堆,非常火爆,冷静下来再看一遍帖子,
没发现Douyu能在开发速度上比Play做的更好.
斗鱼作者ZHH:
引用
Play!框架除去与Douyu共有的动态编译之外,在我看来并没有多少值得我借鉴的思想。
我说Play!框架更像是个胶水框架也是有根据的:
我的分析:
1.动态编译
动态编译除了在开发模式下能够修改java文件而不重启服务器以外还有其他用处吗?(非常希望ZHH或者其他大侠能给我答案.)
从这一点出发,我不关心Play和Douyu的动态编译技术谁牛逼.
我认为Play在动态编译上已经做的很好,无论你修改Entity,Controller或者view,都无需重启服务器.
臆测:ZHH一直强调动态编译,我认为一部分原因是动态编译所用的技术比较深,值得炫耀.
2.ORM
Douyu:从数据库生成Entity
Play:遵循JPA标准,根据Entity生成表
这里我不想扯淡谈是否遵循标准的问题.我只想说,JPA模式相比较Douyu有以下优势:
a.Play可以在开发模式时用一个内存数据库,而Douyu必须你先安装一个数据库.在做原型程序的时候,这是很恶心的一件事情.
b.从数据库生成Entity与从Entity生成表在简单情况下是具有相同效率的,但是有以下需求时,明显的JPA要优于Douyu的ORM
b.1.Entity中有一些属性和方法不依赖数据库.这种情况从数据库生成Entity就很麻烦,生成了以后要手动去添加这些不依赖数据库的东西.
b.2.从数据库生成表依赖于特定的数据库,如果我换一个数据我必须要重新建表.
ORM上Douyu的方式完全败给JPA.
3.控制器
Douyu渲染一个试图参数是:
context.out("WhatTime.html", paramMap);
而Play的参数是:
render(param1,param2...);
Play的优势:
a.play不需要指明去渲染哪一个html,它根据方法名,Controller类去判定,Play定义的是一个规则.这种类似的规则在Play中还有很多,而且Play有一个特点,如果你不需要这种规则时,你往往可以去自定义.
而Douyu使用的方式是只能自定义.
b.play传给页面的参数不需要组织成一个map,更加自然.
4.视图
Play的页面模版有一套非常简单易用的tag机制,复用view非常的方便.Douyu当前的版本介绍里并没有提到如何复用view.
5.REST
因为ZHH没有实践过Play,其实Play的REST用一些pattern后会很简单的.
Play的REST做的是非常方便而且简单的,而Douyu没有这个功能.
在Play中REST只是作为route功能的一个子集,route功能还可以做其他的用处.
6.Testing
Play可以非常方便的做Unit Test以及FunctionalTest.
Play在Test上下了很多功夫,这一点大家实践一下就可以知道.
Play可以方便的组织测试数据,而这些数据是一个文本结构,不依赖于特定数据库.
也就是说即使你用的是一个内存数据库,你也可以很方便的组织测试数据.
7.关于第三方类库依赖以及大小
Douyu依赖的开源库很少,Play依赖了很多开源库,比如Hibernate等等.Douyu很小,Play下载下来需要90mb(其中还包含了python的解释器).
但我认为,作为一个非桌面应用程序来说大小和第三方类库的依赖完全不是评价一个framework的关键.
8.J2ee体系的支持
Play的应用程序发布以后会打包成一个war包,值得一提的是这个war包还是可以轻松的修改代码的.而且基本的程序结构也没发生什么变化.Play的war包可以运行在标准的J2ee容器中.
Douyu不支持原来的J2ee体系,只能运行在自己的服务器中.我不谈Douyu服务器和其他J2ee服务器的优劣.但是有一点
当前没有Douyu的Hosting提供商,你想用Douyu必须自己有一个服务器.而开发一个Play网站,仅仅租用一个tomcat空间就可以发布.
这会让Douyu陷入无人使用的境地,如果陷入这种境地,那么它就全无价值了.
9.其他的一些支持
Play对GAE也有支持,它还有很多的功能,比如Play的在运行出错时的报告非常的直观,你可以自己去了解和实践.
Play的"缺陷和问题":
Play有很多的静态方法,在Controller和Model中都有,静态方法带来的最大麻烦就是难以继承,这是很恶心的一件事情,这一点可能是Play框架的一个硬伤,不知道以后会不会有更正.
我用Play的感触是,这个框架是非常有经验的Web开发者所做的,非常的简单和方便,而且这个框架不像其他框架,当你进行真实开发时你会遇到很多难以达成的问题.就我的实践来说Play是非常易用和扩展的.
对于Douyu和Play,我的评价是Play是一个真正可以开发,而且我用过最方便的Java Web框架.我不知道用Play开发大型应用会不会遇到问题,这一点希望有实践经验的朋友来补充.
而Douyu就从当前发布的版本来说,除了它没有用静态方法以外,我看不到任何比Play有用的地方.
希望ZHH君继续,作为一个先行者的勇气,望你能做出一个优秀的框架!
分享到:
相关推荐
标题中的"斗鱼直播源数据的获取"是指通过特定方法抓取和解析斗鱼直播平台上的实时或历史数据。这通常涉及到网络爬虫技术,它是一种自动化程序,可以模拟用户行为,遍历网页并提取所需信息。 描述中提到的"已打包为...
4. 对斗鱼直播API和弹幕协议有深入理解,能够正确建立连接并解析弹幕信息。 5. 能够设计和实现用户界面,展示接收到的弹幕。 在压缩包文件"**C1**"中,可能包含了该项目的源代码文件,包括TCP客户端的实现、弹幕...
斗鱼是中国知名的直播平台,其主页作为用户与平台交互的核心界面,承载了丰富的功能和精美的特效。在分析“斗鱼主页源代码”时,我们可以深入理解网页开发、前端技术、用户体验设计等多个IT领域的关键知识点。 1. ...
在斗鱼直播平台上,这款插件可能提供了如下的功能和知识点: 1. **JavaScript编程**:Tampermonkey的核心是JavaScript,这是一门广泛用于网页交互和动态内容处理的编程语言。用户通过编写或安装由他人分享的...
"斗鱼自动发送弹幕 图像匹配"这个项目是利用Python的图像识别和自动化功能来实现的一个具体应用。斗鱼是一个知名的直播平台,用户可以通过发送弹幕与主播和其他观众互动。在这个项目中,开发者创建了一个自动脚本来...
斗鱼弹幕数据分析是一种利用编程技术、统计方法和自然语言处理技术,对在线直播平台斗鱼上的用户产生的弹幕进行深入探究的过程。这种分析旨在揭示观众的行为模式、情感倾向以及对直播内容的反应,从而帮助主播优化...
斗鱼第三方开放平台API文档v2.11是武汉斗鱼网络科技有限公司提供的一个接口文档,主要服务于开发者,以便他们能够获取斗鱼直播平台的相关信息。这个文档包含了获取直播房间列表和详情、游戏分类等关键接口。 1. **...
在对接直播平台时,可能会频繁地获取房间信息,如果每次都直接从斗鱼服务器请求,会增加网络延迟和服务器负担。因此,使用缓存(如Redis或Memcached)来存储最近获取的房间信息,可以在短时间内快速响应用户请求,...
斗鱼Html5播放器Chrome插件,可自动取代斗鱼页面的Flash播放插件,使用html5进行播放。
微信小程序源码-仿斗鱼直播小程序.zip微信小程序源码-仿斗鱼直播小程序.zip微信小程序源码-仿斗鱼直播小程序.zip微信小程序源码-仿斗鱼直播小程序.zip微信小程序源码-仿斗鱼直播小程序.zip微信小程序源码-仿斗鱼直播...
最后,考虑到斗鱼网站可能会更新其网页结构,所以爬虫代码可能需要定期维护和更新,以适应网站的变化。同时,尊重网站的robots.txt文件和版权规定,确保合法、合规地进行数据抓取。 总的来说,"手机斗鱼图片爬虫"是...
为了实时获取这些弹幕,我们需要利用斗鱼提供的API接口,并通过编程实现数据的解析和处理。 首先,了解斗鱼API的基本概念是至关重要的。斗鱼提供了RESTful API,开发者可以通过HTTP请求与服务器进行交互。为了获取...
【斗鱼直播弹幕助手】是一款专为Windows操作系统设计的Java开发控制台应用程序,它的主要功能是实时获取并显示斗鱼直播平台上的观众发送的弹幕。作为一个专业的IT知识讲解,我们将深入探讨这款工具的工作原理、Java...
这个协议基于TCP服务,确保了数据传输的稳定性和可靠性,是斗鱼弹幕通讯的基础。 协议的核心内容包括以下几个方面: 1. **后台简介**: - **登陆授权**:第三方应用需要进行登陆授权,以便识别和验证身份,确保...
1. **直播技术**:斗鱼直播框架基于实时音视频传输技术,通过RTP(Real-time Transport Protocol)和RTCP(Real-time Transport Control Protocol)协议实现实时音视频数据的传输,确保用户能够流畅观看直播内容。...
"仿斗鱼app源码"指的是开发者根据斗鱼APP的功能和界面设计,创建的一个类似的软件源代码。这种源码通常用于学习、研究或快速构建类似的直播应用。以下将对相关技术进行详细解析: 1. **前端界面设计**:仿斗鱼APP的...
【Swift仿斗鱼直播】项目是一个使用Swift 4.0编程语言实现的iOS应用,旨在模仿斗鱼直播平台的功能和用户体验。这个项目对于学习iOS开发,特别是与视频流和直播技术相关的开发人员来说,是一个非常有价值的参考。下面...
英雄联盟lol直播、穿越火线cf直播、dota2直播、激战2等各类热门游戏赛事直播随时观看,“斗鱼直播”打造全民游戏直播热潮! 【更新说明】 【注意】如遇到版本升级失败,请到斗鱼官网下载最新版本安装。 【优化】...
【仿斗鱼小程序】是一个基于微信小程序开发的项目,旨在模仿知名的直播平台——斗鱼的界面和功能,供开发者学习和研究使用。这个项目的核心是通过编写小程序代码,实现类似斗鱼直播的用户体验,包括直播观看、用户...