Scala代码实例之Kestrel:总结

Scala代码实例之Kestrel系列到了本篇就基本结束了,***再总结一下。

我们一直强调成都网站建设、成都网站制作对于企业的重要性,如果您也觉得重要,那么就需要我们慎重对待,选择一个安全靠谱的网站建设公司,企业网站我们建议是要么不做,要么就做好,让网站能真正成为企业发展过程中的有力推手。专业网站设计公司不一定是大公司,成都创新互联作为专业的网络公司选择我们就是放心。

代码读到这里,基本上已经把核心部分的代码都已经读完了。只剩下一个KestrelHandler.scala,我们就简单地说一说。

如果对Apache Mina的API有一个简单的了解之后,阅读KestrelHandler.scala已经不会有什么问题。KestrelHandler是当Mina获得一个新的链接请求之后创建出来的对象,对象的主流程就是一个act。通过 react 的机制来处理所有往来的信息,当然除了异常处理之外,只有MinaMessage.MessageReceive(msg)是会调用到PersistentQueue的一些操作。具体的函数就是handle,这里用到了一个叫做asInstanceOf的方法,这是Scala最基础类的一个方法,用途就是强制类型转换,在做与Java接口的时候,可能会经常遇到它。

handle处理报文的格式,兼容memcached的协议,也没有太多需要解释的地方。

总结一下:

读完 Kestrel 之后,给我的感觉就是,Scala的语法非常轻盈,跟六脉神剑+凌波微步似的,有的时候还真抓不住。Scala的语法和结构相当灵活,比如有些地方需要严格地写,会有很多的 () 和 . ,但是简化的写法,就用空格隔开了。另外Scala也沿袭了Ruby的语法特点,不需要每句话的***都要;,直接用回车对语法进行判断,这些优化让程序看起来更像是一些自然语言,或者——呃——更加智能。

由于Scala弱化了变量类型,同时还强化了类的定义,所有变量都是类,所有的方法也都是类,连消息传递中,也使用了case class这样的特殊类,并且让常见的单例模式,或者常用的需要重载的函数,都由编译器自动实现,确实可以让代码大大的精简,变得很轻盈。

这种语言的设置,经过先辈语言,比如Lisp,Python证明,对于把Scala语言作为初学语言的人来说,几乎是没有门槛的,因为这无非是一套剑谱而已。而对于从C,Java这样的语言转过去的工程师来说,确实有点困难,因为打惯了横拳的人,直接告诉他,虚空一指就能让敌人动弹不得,用这样的招式多半有点心虚,担心这真气不那么靠谱。而且有的时候,因为不熟指谱,打出来的命中率也不高。所以如果可以的话,还是会坚持用自己习惯的语法来写Scala。

写惯Pascal的人,写C,总用不习惯 a++这样的语法一样,写出漂亮的Scala程序,还是需要慢慢地才会适应过来。

关于Kestrel本身,就算是不学习Scala语言,它的一些设计方式也是非常值得学习的。比如说Journal.scala对文件缓存这个机制的处理方式,非常的巧妙。而为了提高每个链接的效率,而让client等待一段时间,不是直接告诉client没有新的消息,这样的细节处理,会大大提高消息队列整体的性能。非常值得学习。

毕竟它是用在Twitter上的一个核心消息队列算法呀。

【相关阅读】

  1. 从Java走进Scala(Scala经典读物)
  2. A Scala Tutorial for Java programmers
  3. 专题:Scala编程语言
  4. 细说Kestrel.scala中的PersistentQueue
  5. Scala快速入门:从下载安装到定义方法

分享题目:Scala代码实例之Kestrel:总结
标题来源:http://www.hantingmc.com/qtweb/news47/22397.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联