欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

最近的工作和学习

程序员文章站 2022-03-10 19:13:08
...
    最近一直在写Ruby脚本,说出来你可能不相信,我用Ruby写游戏脚本最近的工作和学习
            
    
    博客分类: 涂鸦 工作Rubyjruby游戏脚本 。用的是JRuby,采用JRuby是因为定时器的问题,Ruby1.8.6因为线程是用户空间内的本地线程,标准库没有提供强大的定时器功能,而对于游戏逻辑有相当多的任务需要定时处理,权衡之下,最后决定使用JRuby,封装了java的ScheduledExecutorService, 等以后Ruby有更完善的定时器的时候就切换回来(我猜测引入了native thread的Ruby1.9应该有更强大的定时器),基本满足了要求。这一过程也更让我觉的JRuby是个非常有前途的项目,利用Ruby的语法以及动 态语言的高效加上java极其丰富的类库,这样的组合有莫大的威力,况且 JRuby的性能比之c ruby在某些方面更有优势,在1.1出来后应该可以有一个更大的提升。

    写Ruby脚本唯一比较郁闷的是重构,尽管Netbeans比RDT提供了更好的重构功能,但是对于一些复杂重构仍然没有比较好的支持,况且我也不敢完全 信任IDE的自动化,这种时候更显示出完备的单元测试的重要性,如果没有单元测试,对Ruby脚本的重构简直难以想象。另外一个比较麻烦的是,Ruby对 二进制的处理并不是很方便,尽管使用了bit-struct,但是它只能支持定长的数据结构,而不是可变长度的array list,变长的string,或者switch结构;尽管我自己做了简单的扩展,仍然很局限。幸好我遇到这样的情况不多,通过其他手段变通处理也还能接 受。后来javaeye上的庄表伟老大发布了DynamicStruct,这个才是根本解决之道,两者结合使用应该可以处理所有情况了。不过那时我的协议处理部分都已经完成,下次有机会再试试。
    读书嘛,最近终于开始读买了许久的《代码大全2》,以前是真怕这种大部头,看着就没信心读完,哇哈哈,没想到一读下去就一发不可收拾,真是好书一本,就软 件构建中的设计一章就值回书钱了。又利用晚上在重读sicp前三章,在注释这样的边边角角原来也非常有价值,例如对闭包和组合的解释,静态语言由于有太多 的声明式结构(struct、class etc.)反而对组合造成了阻碍和惩罚,而在Lisp中由于通用的组合粘合剂cons的存在,可以以一种统一的方式去处理组合结构,模拟各种复杂的数据结 构。今天托同事在当当上买的书到了,《unix编程艺术》到手,这书按牛人的说法是sicp的实践版,不读就相当遗憾了。

上一篇: js02

下一篇: 优化数据库