最近的工作和学习
程序员文章站
2022-03-10 19:13:08
...
最近一直在写Ruby脚本,说出来你可能不相信,我用Ruby写游戏脚本。用的是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的实践版,不读就相当遗憾了。
写Ruby脚本唯一比较郁闷的是重构,尽管Netbeans比RDT提供了更好的重构功能,但是对于一些复杂重构仍然没有比较好的支持,况且我也不敢完全 信任IDE的自动化,这种时候更显示出完备的单元测试的重要性,如果没有单元测试,对Ruby脚本的重构简直难以想象。另外一个比较麻烦的是,Ruby对 二进制的处理并不是很方便,尽管使用了bit-struct,但是它只能支持定长的数据结构,而不是可变长度的array list,变长的string,或者switch结构;尽管我自己做了简单的扩展,仍然很局限。幸好我遇到这样的情况不多,通过其他手段变通处理也还能接 受。后来javaeye上的庄表伟老大发布了DynamicStruct,这个才是根本解决之道,两者结合使用应该可以处理所有情况了。不过那时我的协议处理部分都已经完成,下次有机会再试试。
读书嘛,最近终于开始读买了许久的《代码大全2》,以前是真怕这种大部头,看着就没信心读完,哇哈哈,没想到一读下去就一发不可收拾,真是好书一本,就软 件构建中的设计一章就值回书钱了。又利用晚上在重读sicp前三章,在注释这样的边边角角原来也非常有价值,例如对闭包和组合的解释,静态语言由于有太多 的声明式结构(struct、class etc.)反而对组合造成了阻碍和惩罚,而在Lisp中由于通用的组合粘合剂cons的存在,可以以一种统一的方式去处理组合结构,模拟各种复杂的数据结 构。今天托同事在当当上买的书到了,《unix编程艺术》到手,这书按牛人的说法是sicp的实践版,不读就相当遗憾了。
推荐阅读
-
最近学习php,看了两本基础的书,接下来想看点优秀的php代码,大家有什么开源项目的代码推荐吗?
-
最近找到了一个免费的python教程,两周学会了python开发【内附学习视频】
-
jquery中dom操作和事件的实例学习 仿yahoo邮箱登录框的提示效果
-
jquery中dom操作和事件的实例学习-表单验证
-
Hadoop学习(5)-HBASE的安装和命令行操作和java操作
-
Java中的操作符(学习Java已经有一段时间了,最近决定回顾以下以前的知识)
-
最近学习了一上PHP的东东
-
自己学习做的一个类论坛网站要被实际投入运作和维护,应该要学习一些什么技能?
-
最近有点迷惘,还想请大家指导上学习的方法
-
【opencv学习之十六】像素操作和Reduce Color的例子