MVC模式已死?何不试试MOVE

MVC模式在 编程中的应用,是一个很了不起的主意。“数据模型(Model)”可以封装与应用程序的业务逻辑相关的数据及对数据的处理方法;“视图层(View)”能 够实现数据有目的的显示;“控制器(Controller)”能够在不同层面间起到组织作用,对应用程序的流程进行控制。

不过,可能你在使用这种三层架构模式的过程中会逐渐迷惑。因为有很多代码你不知道把它放哪,就只好把它放到控制层,最后发现在控制层中塞了太多的代码。

LinkedIn的软件工程师Conrad Irwin也遇到同样的问题,于是他开始使用另一种模式:MOVE,即Models(模型)、Operations(操作)、Views(视图)、Events(事件)。近日Conrad Irwin在个人博客上分享了关于这种模式的一些观点。

概述

Irwin结合上图对MOVE模式先作了简单定义:

Models,封装该应用程序中知道的一切;
Operations,封装该应用程序要做的一切;
Views,帮助用户与应用程序完成交互;
Events,用于安全地连接所有这些组件。

为了避免意大利面条式的代码,图中标示出了对哪种类型的对象进行操作是允许的。例如,视图允许监听由模型产生的事件;操作允许修改模型,但模型不应涉及视图或操作。

Models(模型)

这里以一个“User”对象为原型,它至少应用有一个Email地址,也可能有用户名和电话号码。

在一个MOVE模式的Models中只包装知识。这意味着除了Get和Set功能,它们可以包含检查用户密码是否正确这样的方法,但不会包含把密码保存到数据库或传递给外部API这样的功能,因为后面这些工作将由Operations来完成。

Operations(操作)

对应用程序来说,一个常见的操作是用户登陆。这实际上是由两个子操作组成:首先从用户那里获得邮件地址和密码,然后从数据库载入“user”模型并检查密码是否匹配。

Operations是MOVE模式中的行动者。它负责修改模型,在正确的时间显示正确的视图,以及响应由用户交互引发的事件。在一个分解良好的应用程序中,每个子操作都可以独立运行。

采用这种方式的操作有一点很令人振奋,即程序启动后,整个应用本身就可以被当作一个Operations。它会根据需要生成尽可能多的子操作,其中每个子操作都并行地运行。当所有子操作都完成时,程序也便退出。

Views(视图)

登陆页面即是一个视图,它负责显示一些文本框给用户。当用户点击“登陆”按钮时,视图将产生一个“loginAttempt”事件,其中包含用户输入的用户名和密码。

用户能够看到的内容,以及能感受到的互动都由视图提供支持。它们会以一种用户能理解的形式呈现应用反馈,同时还能将简单的用户交互转换成有意义的事件。更重要的是视图不会直接改变模型,它们只是向Operations发起事件,然后通过监听等待由模型发起的事件。

Events(事件)

当用户登陆时,视图会发起“loginAttempt”事件。在登陆操作完成后,“currentUser”模型会发起一个事件通知应用登陆状态已改变。

事件监听让MOVE(及MVC)实现控制反转,允许模型更新视图。这是一种强大的抽象技巧,允许组件互不干扰地耦合在一起。

为什么是现在?

当然,Conrad Irwin并不想被人认为自己是在暗示MVC模式很差,这种大型应用程序架构在过去的几十年里确实非常成功。不过几十年后的今天,新的编程技术已经变得越来越流行,所以你也会在使用过程中逐渐产生一些疑惑。

MVC模式确实很了不起,但它毕竟是几十年前为老的技术而设计。MOVE模式是在其基础上的升级,让你可以更好地利用当前已有的新工具。

IT 巨头血战手机的背后:移动互联入口之争

华夏时报 记者 罗小卫 北京报道

小米耀眼、360强攻、盛大布局、百度开疆、阿里破土、网易破茧待出……忽如一夜春风来,“手机”成为了互联网企业这半年来的关键词,然而,用 奇虎360公司董事长周鸿祎的话说,这个生意是薄利的。一个薄利行业,引得一众IT明星们杀得刀光剑影,这背后的利益纠葛恐怕没那么简单。

而纵观IT界的各种战争,无一不是越吵越红火,股票越吵越值钱,于是被业内戏称口水战也是可以配合的。

被配合的口水战

“我们互联网公司不要贪,你有时候进入互联网市场,做软件的没有碰过硬件,觉得收入来得挺快,你就想把自己转变成做硬件的公司,想获得丰厚的利 润,从长期来说这个生意一定是薄利的生意,所以不要去贪图挣太多的钱。”7月3日,周鸿祎对《华夏时报》记者介绍自己这几个月来进入手机产业的感想时称。

5月4日晚上,周鸿祎在思考半年后,做出了一个重大战略决定。他在微博上宣布,360将杀入手机领域,而这也拉开了360与小米的手机大战。

周鸿祎在谈及推出特供机以来的感受时,对本报记者进一步称,“你不要通吃,我们面临互联网的冲击,我们和硬件公司合作,他们说到供应链,整个原 材料采购、质量控制,包括售后,现在手机最大的问题是售后问题,手机软件售后简单,软件有问题升级一下,实在不行卸了都行,但是硬件总会出问题,软件是免 费的,但是硬件再便宜也是真金白银花钱买的,你还得去修,这里有一系列的问题,做硬件的厂商也是苦活、累活。”

同时,他对劲敌小米董事长兼CEO雷军的小米科技直接投了“梭镖”:“铁人三项,从软件、硬件服务、电商、配件什么都自己做,苹果也没有自己做电商,也是通过分销渠道,所以我觉得说起来容易。”

众所周知,小米科技的业务核心正是“铁人三项”:小米手机、MIUI的手机操作系统、米聊。

事实上,自周鸿祎宣布推出特供机以来,与雷军领衔的小米科技就一直拼得刀光剑影,有好事者将之总结为“小三大战”。周鸿祎指责雷军的小米手机暴 利、营销炒作等。雷军称,周鸿祎羡慕小米现在的成绩,“眼红”,反击360特供机屏是国产等。双方你来我往,微博大战难见高下,成为互联网一道新的“风 景”,也成为互联网手机大战的最强音,抢了不少媒体版面。

在时下互联网企业进入手机这一领域中,单看估值,目前小米科技已经成为国内继腾讯、百度、阿里巴巴、网易之后的第五大互联网公司。前四大的估值 依次约为520亿美元、388亿美元、350亿美元、74亿美元。这一战绩无论是对于创业仅两年的小米来说,还是对时下的国内互联网公司来说,都是一个神 话。

而周鸿祎与雷军的手机斗法,只是时下互联网公司在手机领域争斗的一个缩影、一个典型代表。

真正的企图

翻开时下的国内互联网的全图,众多互联网大佬皆在手机领域暗含“杀机”。

6月6日,国内网游巨头盛大在沉寂多时后,继“盛大盒子”、盛大电子书后,第三次在硬件上发力,正式发布其智能双核手机Bambook Phone,杀入手机市场,内置盛大网络众多应用,售价仅为1299元,并于6月28日开始预售,7月初开始配送。

盛大果壳电子CEO郭朝晖当天对外表示,盛大的目标就是让80%的人都能拥有一部智能手机,让每个人能够通过智能手机的终端应用、云计算架构更好地享受互联网服务。

而就在同期,电商大鳄阿里巴巴也发布了其新款阿里手机。据悉,该手机是阿里巴巴和家电巨头海尔合作生产的,售价为999元,比盛大的Bambook Phone便宜了300元。

与阿里进入手机运作模式相似的是,百度也在手机领域加速了扩展。今年5月15日,百度联合长虹、以富士康代工推出搭载最新百度云智能终端平台的 新款长虹H5018炫·色智能手机,并以联通明星合约机进军千元智能手机市场。而早在去年12月,百度就与IT巨头戴尔公司合作,推出戴尔智能手机 D43。

百度技术副总裁王劲5月15日对《华夏时报》记者表示:“百度云智能终端平台,是百度云战略在移动互联网的重要布局。”

王劲同天还透露,除了戴尔、长虹与百度合作推手机外,其它众多主流手机厂商也纷纷与百度接触,寻求推出采用百度云技术的不同价位的智能手机。

除了上述几家之外,业内盛传门户巨头之一的网易也要进入手机市场。据悉,网易公司已经同知名手机品牌厂商达成合作,将于不久之后推出千元以下的高端智能手机。目前网易手机样机已经完工,但具体上市时间未定。

另外,其他互联网公司也在涉猎手机产业。腾讯去年6月与中国电信以及华为、中兴、酷派、天语和海信等5家手机厂商发布了6款“天翼QQ智能手机”,手机内植入了QQ-servic平台。而新浪网、人人网则与HTC等公司合作以推出内置其应用的方式为主介入手机。

对于各大互联网公司争相进入手机领域,知名互联网评论人士洪波分析有一定代表性。他认为,各公司在这一业务上花大力气的原因是为了抢占移动互联网入口,在推出智能终端之后可以进一步推广公司的移动应用,复制其在传统互联网上的用户、流量优势。

“互联网企业进入手机领域,最根本的目的是为了配合布局移动互联网战略,聚合用户到自己的平台上,后续通过应用和流量挣钱。”对于出现的互联网 公司进入手机产业这种新趋势,易观国际分析师王颖接受《华夏时报》记者采访时也分析认为,“从事手机业务只是他们发展移动互联网的一个工具,并不是以手机 产品方式来运作一款产品。”

半年时间,血雨腥风。这对于瞬息万变的互联网行业来说也许来的并不突然,在这样一个谁都可以做手机的年代,谁做了并不重要,重要的是谁真正赚到了钱。

Windows 8 操作系统将于今年 10 月正式发布

软件巨人微软在周一举行的全球合作伙伴大会上宣布Windows 8将于今年8月第一周进入RTM阶段,正式版将于10月底个发售。这意味着届时,预装Windows 8的电脑将会出现。RTM是Release to Manufacturing,正式在零售商店上架前,需要一段时间来压片,包装、配销,所以程序代码必须在正式发行前一段时间就要完成。

Windows首席营销官兼微软首席财政官Tami Reller宣布Windows 8将会登陆全球231个市场,支持109种语言。10月开始销售后,消费者可以将目前的PC升级至Windows 8。

12.03.20-Windows8.jpg

同时,苹果将于本月发布发布下一代操作系统Mountain Lion,目前该系统的具体发布时间还不知道。只是Mountain Lion将会上架Mac App Store,售价为19.99美元。

除了Windows 8,微软还发布发布Windows RT,这款操作系统将支持ARM架构的处理器。10月,微软旗下的Surface平板电脑可能也会正式发布,与苹果iPad正式展开较量。看起来今年的 10月将会格外的精彩,因为很多消息人士称苹果将于今年10月发布下一代iPhone,小尺寸iPad也有可能面世。

MacX.cn 编译

6 个基于 jQuery 的表单向导插件推荐

表单向导可以很好地引导用户进行一步一步的操作,从而降低用户错误输入的几率。尽管互联网中有大量的类似插件,但真正好用的不多。

本文整理了6个比较优秀的表单向导插件,希望能够为你带来帮助。

1. Smart Wizard

这是一个灵活的向导插件,可以将内容分成几部分,以节省页面空间。同时,还提供了一个灵活的、时尚的用户界面。

源码 / 演示

2. jquery.quickWizard

该插件可以将一系列表单元素转换成简单的向导模式。可以和jQuery验证插件、jQuery UI效果和jQuery过渡插件结合使用。

源码 / 演示

3. jQuery Formwizard Plugin

该插件可以用来创建向导形式的表单,且在向导步骤切换时无需重新加载页面。

源码 / 演示

4. jWizard

用于创建向导式表单的jQuery UI部件。

源码 + 演示

5. jQuery Stepy

该插件基于FormToWizard,可以产生一个可定制的向导。

源码 + 演示

6. FormToWizard plugin

这个详细的教程将告诉你如何把一个长表单转换成拥有几部分的步进式表单。另外,还提供了一个插件。

源码 / 演示

英文原文:6 jQuery Form Wizard Plugins

Facebook 雅虎达成战略合作:和解专利诉讼

Facebook和雅虎正式达成专利和解协议
Facebook和雅虎正式达成专利和解协议

北京时间7月7日凌晨消息,Facebook和雅虎周五正式宣布,两家公司已经就雅虎在4个月以前针对Facebook发起的专利诉讼达成和解。

雅虎和Facebook宣布,双方已经达成了一项“战略性”交易,这项交易不包括任何现金协议。双方达成了一项新的广告合作交易,延长和扩大了经销协议,并就所有未决的专利指控达成了和解。

根据这项包含专利组合交叉授权等内容的协议,双方将联手为消费者和广告主带来两家公司所宣传的优质媒体体验。雅虎和Facebook还将联手在雅虎网站上展开社交整合活动,将雅虎庞大的媒体内容带给Facebook用户。

雅虎临时CEO罗斯·列文森(Ross Levinsohn)表示:“我们对能与Facebook发展更加深厚的合作关系感到激动,并对桑德伯格及其团队为与我们团队联手制定出这项协议而付出的 辛勤努力表示感谢。我们盼望着在自己已经取得的成功的基础上继续进行建设工作,为消费者和广告主都提供创新性的新产品和体验。将雅虎作为全球领先的数字媒 体公司的优质内容和影响力与Facebook进行整合,将可为品牌广告主提供无可比拟的机会。”

Facebook COO谢丽尔·桑德伯格(Sheryl Sandberg)表示:“我对我们能以积极的态度解决这个问题而感到高兴,并盼望着能与列文森和雅虎领导层展开密切的合作。雅虎在新闻领域中的领导地位 的推动力来自于集中致力于创新活动,以及为用户提供优良的产品。在两家公司联手合作的情况下,我们将可为用户提供动人的社交体验,同时为广告主创造价 值。”

自雅虎和Facebook签署最初的多年期合作协议,允许用户在雅虎旗下网站群发现和获取新闻及信息,并将其与Facebook好友共享以来, 雅虎已将“Social Bar”特性整合到全球范围内的100多项业务中去,有9000多万名用户已经使用了这个特性。其结果是,在已经与Facebook的开放图谱平台进行了 整合的所有新闻站点中,雅虎拥有最庞大的活跃用户基数,从而让Social Bar成为了世界领先的社交新闻应用。

展望未来,雅虎和Facebook已经同意展开更加密切的合作,将在未来几年时间里为消费者提供空前未有的优质体验,并为广告主提供世界级的赞助机会。

雅虎在今年3月对Facebook发起指控,称其侵犯了该公司10项专利,这些专利涉及广告、隐私权、定制、短信和社交网络等多个领域。

当日,雅虎股价在纳斯达克常规交易中下跌0.07美元,报收于15.78美元,跌幅为0.44%;在随后进行的盘后交易中,雅虎股价上涨 0.11美元,至15.89美元,涨幅为0.70%。Facebook股价在纳斯达克常规交易中上涨0.26美元,报收于31.73美元,涨幅为 0.83%;在随后进行的盘后交易中,Facebook股价再度上涨0.10美元,至31.83美元,涨幅为0.32%。