青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

qiezi的學習園地

AS/C/C++/D/Java/JS/Python/Ruby

  C++博客 :: 首頁 :: 新隨筆 ::  ::  :: 管理 ::
工作忙,學習也忙。

1、Ruby on Rails

前陣子看了一下Ruby on Rails,不禁為其深深折服,為Ruby,也為Rails。

照著Four Days on Rails做了一遍,雖然對Ruby不甚熟悉,不過一路下來感覺非常輕松,在搞明白:xxx和"xxx"是同一個意思以后,終于能看懂大部分代碼了,也為這種語法叫好,要知道很多時候引號并不好用,當出現嵌套的時候。(注:在Ruby里,"hello, #{user[:name]}"表示把user["name"]的值放到那個引號里面,這樣做可以不仔細去考慮是不是使用單引號)

接著試了一下typo,一個ruby寫的blog程序,看到它具有登錄功能,而在4 days中并沒有看到,于是找了相關資料,原來Rails中已經有這東西了,簡單查看了文檔以后,就為4 days中的那個演示項目加上了登錄功能,前后不過十來分鐘。

這樣看來,一個人要做一個blog程序,大概2-3小時就夠了,包括編寫數據庫模式、生成管理者使用的MVC結構(具有添加修改刪除等功能)、添加登錄功能,在此基礎上再生成一個Controller,簡單修改就能改成供其它用戶使用的閱讀界面,再稍費點神就能加上評論功能了。當然離標準的blog程序還有段距離,比如還不支持RSS,不過自己用來寫點東西記點筆記什么的,足夠用了。

2、Ajax on Rails

接著學習了Ajax on Rails,非常好用的東東,文檔并不是很多,簡單看了一下,覺得離我的想法還有點距離。我希望是可以實現像Gmail一樣,讀取一些變量過來,在頁面上動態生成元素,而不是讀取其它頁面并把其中的元素替換掉當前頁面上的元素,或者是添加到當前頁面上這么簡單。我查看過Gmail界面的源代碼,好像是使用過混淆器,不過還是可以看出來,它是從服務端讀取一些變量,讀到客戶端再把它轉成可視的元素。

微軟的space.msn.com在注冊時,有一個驗證碼,當你看不清時可以點擊右邊的按鈕再換一個驗證碼,這時只會刷新驗證碼而不用刷新整個頁面,這種東西使用Ajax on Rails應該很輕松就可以完成。不過我還不知道在Rails中如何生成驗證碼呢,應該是使用其它的庫來生成吧,有空查一下看看。

3、Ruby and Rails

Ruby的語法對于我這樣的初學者(實際上并未正式學習)來說,有些地方理解起來還真有點難,不過它的代碼看起來卻很舒服,簡潔美觀,似乎很多語法都是為了美觀,當然滿篇的end除外。

Rails同樣給我簡潔美觀的印象,使用簡單,沒有什么廢話,視圖如果不修改的話,甚至可以不生成出來。

不知道效率如何,不過聽說Ruby比Python運行效率要高,豆瓣使用Python能做出來,我想使用Ruby應該也可以做出能夠接受的東西。

有空要好好學一下Ruby,為了Rails。

4、asgard

最近實在是太忙了,asgard項目起了個頭又懶得動了,許多情況下使用C++都意味著要寫很多代碼,目前完成了異步回調函數的泛類型匹配,在編寫調用函數的適配器時,雖然已經想出了解法,只是要寫大量的模板,天天在模板堆里頭都是痛的,只好先放一放了。


注:
1、上面提到的“異步回調函數的泛類型匹配”,指的是下面的做法:
void callback (int, short, const char*);
Method <string(in<char>, in<char>)> method;
method.async_call ('a', 'b', callback);
由于char可以轉型到int, short,而out<string>可以轉型到const char*,所以讓它支持這種“泛”類型匹配也是理所當然的了,這個東西已經完成了。

2、“調用函數的適配器”是更復雜的一個東西,用在服務器端:
Method <void(inout<Buffer<char> >, in<string>)> my_strcat;
my_strcat.setMethod (Adapter <void(Default<1>, Default<2>, ContainerSize<1>)> (strncat) );

這是最終簡化了的形式,比上次所說的簡單了不少,因為很多東西是可以推導出來的,這也是測試證明可以實現的,一個簡單的修改就是把Adapter從類改為一個函數,由于模板函數的參數類型可以推導出來,所以省去了strncat函數類型的描述。

實際上是把char* strncat(char*, const char*, size_t)匹配給上面這個method,Adapter承擔解釋角色。

它的函數類型的模板參數中,void可以推導為out<void>,strcat的調用結果賦給out<void>,可以不理會,實際上是使用偏特化來忽略它的,因為我的vector <IParameter*>中根本不包括out<void>這個對象。

后面的Default<1>表示使用默認的轉換器,即直接把Buffer<char>對象轉成char*類型,由于Buffer<T>中實現了operator T*,這個轉換不成問題,下一個是Default<2>,在in<string>中也實現了operator const char*,所以這個轉換也很順利,再下一個是ContainerSize<1>表示從Buffer<char>對象中取容器的大小,這也是個模板。

目前一共實現了3個模板,Default<int>默認轉換,Size<int>取sizeof,ContainerSize取容器大小。

寫模板既有挑戰,又有困難,有時甚至有放棄的想法,甚至有朋友笑話說,人家都動態語言了,你還在使用這種宏一樣的語言。我也只好一笑置之,這樣的功能在動態語言里多么容易呀,的確在做一種不不明智的事。。。
posted on 2005-10-08 23:15 qiezi 閱讀(422) 評論(1)  編輯 收藏 引用 所屬分類: 學習方向
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲精品国精品久久99热| 久久中文精品| 日韩一级大片在线| 欧美日韩免费区域视频在线观看| 亚洲精选一区二区| 日韩一区二区电影网| 国产精品v欧美精品v日本精品动漫| 亚洲欧美三级伦理| 久久国产视频网| 91久久精品日日躁夜夜躁欧美| 亚洲国产经典视频| 国产精品a久久久久| 亚洲欧美日韩国产综合精品二区| 午夜一区二区三视频在线观看| 黄色一区三区| 亚洲日本aⅴ片在线观看香蕉| 欧美丝袜一区二区三区| 久久国产日韩欧美| 欧美gay视频| 欧美一级视频精品观看| 久久精品夜色噜噜亚洲aⅴ| 91久久精品一区二区三区| 夜夜夜精品看看| 国产一区二区无遮挡| 亚洲国产黄色片| 国产欧美高清| 亚洲精品一二三| 狠狠久久亚洲欧美专区| 亚洲全部视频| 国内精品视频在线播放| 91久久精品一区二区别| 国产情人节一区| 亚洲国产高清aⅴ视频| 国产精品尤物福利片在线观看| 欧美国产精品一区| 国产乱码精品| 一本久久综合| 91久久精品视频| 久久精品综合网| 亚洲一区二区三区久久| 美女久久一区| 久久综合电影| 国产精品亚洲аv天堂网| 亚洲成人在线视频播放| 国产精品成人一区二区| 久久免费视频一区| 国产精品久久91| 亚洲人精品午夜| 亚洲电影免费在线| 久久精品国产第一区二区三区最新章节 | 99re亚洲国产精品| 中文在线一区| 亚洲欧洲在线看| 欧美在线一二三区| 亚洲免费视频在线观看| 欧美成人dvd在线视频| 麻豆成人小视频| 国产亚洲成人一区| 亚洲一区二区三区影院| 中文欧美字幕免费| 久久乐国产精品| 久久精品成人一区二区三区蜜臀 | 亚洲视频免费观看| 亚洲精品日韩激情在线电影 | 亚洲伦伦在线| 99精品欧美一区二区三区| 久久综合久久综合这里只有精品| 欧美在线日韩精品| 国产精品每日更新| 在线午夜精品| 亚洲欧美日韩精品久久| 国产精品久久久久高潮| 日韩亚洲欧美一区| 亚洲欧美日韩天堂一区二区| 欧美特黄一区| 亚洲中无吗在线| 久久精品中文字幕免费mv| 国产一区二区按摩在线观看| 久久国产精品一区二区| 六月天综合网| 亚洲人成网站999久久久综合| 欧美不卡一卡二卡免费版| 亚洲欧洲日韩综合二区| 一区二区三区高清| 国产精品久久久久三级| 欧美伊久线香蕉线新在线| 久久综合影视| 亚洲人午夜精品| 欧美另类视频在线| 亚洲一区影院| 久久一区二区三区国产精品| 亚洲高清在线精品| 欧美日韩你懂的| 午夜精彩视频在线观看不卡| 快射av在线播放一区| 亚洲精品久久视频| 国产精品久久久久毛片软件 | 99国产欧美久久久精品| 欧美一区二区三区视频免费| 精品1区2区3区4区| 欧美日韩一区二区免费视频| 香蕉久久夜色精品国产| 亚洲国产精品成人一区二区 | 国产欧美一区二区精品秋霞影院 | 久久婷婷亚洲| 亚洲精品欧美激情| 久久黄色小说| 夜夜嗨av一区二区三区中文字幕| 国产精品永久免费| 免费在线亚洲| 欧美亚洲一区在线| 亚洲精品一二三| 噜噜噜91成人网| 亚洲影院高清在线| 亚洲国产另类久久久精品极度| 国产精品大片| 欧美国产精品专区| 久久精品国产一区二区三区免费看| 亚洲第一区色| 久久躁狠狠躁夜夜爽| 亚洲在线观看免费视频| 亚洲精品国产精品国自产观看| 国产农村妇女毛片精品久久麻豆| 欧美激情一区二区三区四区| 久久九九热re6这里有精品| 99视频精品| 最新成人在线| 欧美mv日韩mv亚洲| 久久精品中文字幕一区二区三区| 亚洲视频专区在线| 亚洲国产精品欧美一二99| 国产午夜精品久久久| 国产精品户外野外| 欧美人与性动交a欧美精品| 久久男人av资源网站| 午夜久久久久久| 亚洲欧美日韩爽爽影院| 中文av一区二区| 日韩一区二区精品| 亚洲精品免费在线播放| 亚洲国产精品传媒在线观看| 欧美插天视频在线播放| 麻豆国产va免费精品高清在线| 久久久久久亚洲精品杨幂换脸 | 久久er99精品| 亚洲免费视频中文字幕| 亚洲一二区在线| 亚洲一二三区在线观看| 亚洲性感激情| 亚洲欧美日本国产有色| 亚洲一区免费网站| 午夜精品一区二区三区四区| 午夜精品在线看| 小黄鸭视频精品导航| 欧美中文在线观看国产| 久久久久欧美精品| 蜜桃久久精品乱码一区二区| 免费欧美日韩| 亚洲国产美女| 亚洲免费大片| 亚洲欧美日韩国产一区| 久久99伊人| 欧美不卡视频一区发布| 欧美日韩亚洲综合在线| 国产精品免费在线| 国产真实乱偷精品视频免| 1769国产精品| 亚洲深夜影院| 久久一区免费| 亚洲电影免费观看高清完整版| 亚洲欧洲在线一区| 亚洲一区www| 久久久精品动漫| 欧美精品在线观看播放| 国产精品一区二区视频| 精品不卡一区二区三区| 一本大道久久a久久精品综合| 亚洲无毛电影| 久久人人97超碰精品888| 亚洲国产专区| 亚洲一区亚洲| 欧美jizz19hd性欧美| 国产精品九九久久久久久久| 经典三级久久| 亚洲小说欧美另类婷婷| 狂野欧美性猛交xxxx巴西| 一本久道久久综合婷婷鲸鱼| 久久精品卡一| 国产精品户外野外| 亚洲激情在线播放| 午夜精品av| 亚洲三级影院| 久久免费视频观看| 国产精品三上| 亚洲日本黄色| 久久综合99re88久久爱| 亚洲一区二区三区视频播放| 欧美国产精品v| 精品999在线观看| 亚洲欧美日韩一区二区|