莊周夢(mèng)蝶

          生活、程序、未來
             :: 首頁 ::  ::  :: 聚合  :: 管理

          最近的學(xué)習(xí)和工作

          Posted on 2008-03-04 19:09 dennis 閱讀(685) 評(píng)論(1)  編輯  收藏 所屬分類: 涂鴉
              最近一直在寫Ruby腳本,說出來你可能不相信,我用Ruby寫游戲腳本。用的是JRuby,采用JRuby是因?yàn)槎〞r(shí)器的問題,Ruby1.8.6因?yàn)榫€程是用戶空間內(nèi)的本地線程,標(biāo)準(zhǔn)庫沒有提供強(qiáng)大的定時(shí)器功能,而對(duì)于游戲邏輯有相當(dāng)多的任務(wù)需要定時(shí)處理,權(quán)衡之下,最后決定使用JRuby,封裝了java的ScheduledExecutorService,等以后Ruby有更完善的定時(shí)器的時(shí)候就切換回來(我猜測(cè)引入了native thread的Ruby1.9應(yīng)該有更強(qiáng)大的定時(shí)器),基本滿足了要求。這一過程也更讓我覺的JRuby是個(gè)非常有前途的項(xiàng)目,利用Ruby的語法以及動(dòng)態(tài)語言的高效加上java極其豐富的類庫,這樣的組合有莫大的威力,況且 JRuby的性能比之c ruby在某些方面更有優(yōu)勢(shì),在1.1出來后應(yīng)該可以有一個(gè)更大的提升。

              寫Ruby腳本唯一比較郁悶的是重構(gòu),盡管Netbeans比RDT提供了更好的重構(gòu)功能,但是對(duì)于一些復(fù)雜重構(gòu)仍然沒有比較好的支持,況且我也不敢完全信任IDE的自動(dòng)化,這種時(shí)候更顯示出完備的單元測(cè)試的重要性,如果沒有單元測(cè)試,對(duì)Ruby腳本的重構(gòu)簡(jiǎn)直難以想象。另外一個(gè)比較麻煩的是,Ruby對(duì)二進(jìn)制的處理并不是很方便,盡管使用了bit-struct,但是它只能支持定長(zhǎng)的數(shù)據(jù)結(jié)構(gòu),而不是可變長(zhǎng)度的array list,變長(zhǎng)的string,或者switch結(jié)構(gòu);盡管我自己做了簡(jiǎn)單的擴(kuò)展,仍然很局限。幸好我遇到這樣的情況不多,通過其他手段變通處理也還能接受。后來javaeye上的莊表偉老大發(fā)布了DynamicStruct,這個(gè)才是根本解決之道,兩者結(jié)合使用應(yīng)該可以處理所有情況了。不過那時(shí)我的協(xié)議處理部分都已經(jīng)完成,下次有機(jī)會(huì)再試試。
              讀書嘛,最近終于開始讀買了許久的《代碼大全2》,以前是真怕這種大部頭,看著就沒信心讀完,哇哈哈,沒想到一讀下去就一發(fā)不可收拾,真是好書一本,就軟件構(gòu)建中的設(shè)計(jì)一章就值回書錢了。又利用晚上在重讀sicp前三章,在注釋這樣的邊邊角角原來也非常有價(jià)值,例如對(duì)閉包和組合的解釋,靜態(tài)語言由于有太多的聲明式結(jié)構(gòu)(struct、class etc.)反而對(duì)組合造成了阻礙和懲罰,而在Lisp中由于通用的組合粘合劑cons的存在,可以以一種統(tǒng)一的方式去處理組合結(jié)構(gòu),模擬各種復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。今天托同事在當(dāng)當(dāng)上買的書到了,《unix編程藝術(shù)》到手,這書按牛人的說法是sicp的實(shí)踐版,不讀就相當(dāng)遺憾了。

          評(píng)論

          # re: 最近的學(xué)習(xí)和工作  回復(fù)  更多評(píng)論   

          2008-03-05 13:30 by Arbow
          《Unix編程藝術(shù)》過目一遍了,收益不是太多,或許我該去看看SICP。。
          主站蜘蛛池模板: 开平市| 闽侯县| 雷州市| 凉城县| 烟台市| 连江县| 刚察县| 石台县| 四子王旗| 两当县| 泸水县| 塔河县| 仁布县| 五寨县| 汝阳县| 册亨县| 通榆县| 邹平县| 洞口县| 吉木乃县| 保康县| 南乐县| 郑州市| 永泰县| 耿马| 新源县| 昌宁县| 云梦县| 旌德县| 康平县| 历史| 吉木萨尔县| 盖州市| 尚志市| 子洲县| 萍乡市| 鹤峰县| 宽甸| 沂源县| 南雄市| 衡山县|