免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3515 | 回复: 4
打印 上一主题 下一主题

在Mojolicious里使用MVC框架的一些模糊细节的提问 [复制链接]

论坛徽章:
1
白羊座
日期:2013-11-09 20:03:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-05-23 16:06 |只看该作者 |倒序浏览
既然官方文档里提到Mojolicious支持MVC,那我就准备把我的一个小项目用Mojo写成MVC框架模式。

本人Perl新手,懂基本Perl语法,现在在学OO。

我对Mojolicious的MVC是这样理解的:
View很简单,就是把Controller传过来的数据结构render渲染成HTML格式,然后由Controller返回给客户端。
Model在Mojolicious没有做任何限制,但是我自己规定Model不能调用Controller类,然后Model只能访问数据库和文件系统,业务逻辑相关的都由Model负责。
Controller是View和Model的桥梁,但是可以访问HTML协议传输的底层细节,可以根据Header和post、get过来的数据进行程序逻辑判断,调用相关的Model和Template(View)。

下面就是新手提问时间了:
1)我的MVC描述是否有误,或请补充相关缺失的描述。
2)Model访问数据库,我想在Mojolicious的startup方法 初始化一个数据库的持久连接和一个mojolicious的home方法返回值 给Model,请问如何实现。
3)Model抽象成对象跟Model提供函数给Controller调用,效率差很大吗?

论坛徽章:
1
辰龙
日期:2014-05-15 19:37:15
2 [报告]
发表于 2014-05-23 18:47 |只看该作者
本帖最后由 iakuf 于 2014-05-23 18:51 编辑

你的理解基本是对的, 照着你的理解来.

2) Mojolicious的startup方法 初始化一个数据库的持久连接和一个mojolicious的home方法返回值 给Model

    谜底就在谜面上. startup 方法放的东西和代码, 在 Hypnotoad 之类启动的时候会调用一次, 然后 Hypnotoad 才会 Fork 子进程, 所以这个中的东西, 子进程的对象中都可以共享到.

3) Model抽象成对象跟Model提供函数给Controller调用,效率差很大吗?

    任何的抽象都会有效率的损失. 功能优先的时候,为了开发的方便, 对这种效率的损失可以不见. 性能优先的时候, 就需要考虑效率了. 这就看你的项目了.

论坛徽章:
1
操作系统版块每日发帖之星
日期:2016-06-12 06:20:00
3 [报告]
发表于 2014-05-24 08:22 |只看该作者
用perl主要是考虑方便吧,考虑性能的话,也提升不了多少的
http://www.techempower.com/bench ... =peak&test=json

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
4 [报告]
发表于 2014-05-24 19:54 |只看该作者
yakczh_cu 发表于 2014-05-24 08:22
用perl主要是考虑方便吧,考虑性能的话,也提升不了多少的
http://www.techempower.com/benchmarks/#section ...


我早几年就看过这个扯蛋测试,一直没机会吐糟。
不知道你是不是仔细看过测试方法,还是只看了彩色横条的长短。

1. 从实现语言上说,一个纯脚本语言写的webserver是不可能比一个编译类语言写的webserver要快的。perl和python等脚本语言在写这部分的时候为了提高效率,都是用C实现的关键部分。而mojolicious好的地方是给你了“选择”,在你系统没有安装编译器或是没有提供这些用C写的高性能模块的时候,就会用纯perl的方式实现一切。

这个SB测试显然是忽略了这些,并且用错误的测试方法得出了结论。这是他关于mojolicious的测试说明。https://github.com/TechEmpower/F ... /master/mojolicious
居然是用Starman,还plackup启动。估计他也没装EV。

2. 再看看他测试的内容,就是简单返回一个json,和helloworld无异。如果是这样perl就用Feersum去测好了,Go都打不过它。或是用Nginx-Perl模块,进前10是肯定可以的。
这样的测试意义是有限的,要是想测效率,应该挂上数据库测并发和内存消耗

论坛徽章:
0
5 [报告]
发表于 2014-05-26 16:58 |只看该作者
py 发表于 2014-05-24 19:54
我早几年就看过这个扯蛋测试,一直没机会吐糟。
不知道你是不是仔细看过测试方法,还是只看了彩色横条 ...


同感。把event driven的frameworks和fork类的frameworks放一起对比没有意义。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP