2007年8月28日
原文地址
下午無聊翻譯一下,看看ruby官方怎么和java對比
相同點:
類似于java,在ruby中:
內存管理都是由GC(garbage collector)負責。
都是強類型語言。
都有public,private,protected的方法可見性之分。
都有嵌入式文檔工具(ruby的叫做RDoc)。rdoc生成的文檔看起來非常像由javadoc生成的。
不同:
于java不同的是,在ruby中:
你不必編譯代碼,你只需要直接運行代碼。
Gui開發包不同。比如,ruby的用戶會嘗試WxRuby,FXRuby,Ruby-GNOME2,或者基于Ruby Tk庫。
你要在定義任何事物(像class)后面加上關鍵字end,而不是用花括號({})來包圍代碼塊。
使用了require代替了import。
所有的成員變量(屬性)都是private級的。在類外訪問任何事物要通過方法調用。
什么都是對象,包括2和3.14159。
沒有靜態類型檢查。
變量名都只是標簽,它們沒有與類型相關。
不用聲明變量類型,你只需要賦值給新的變量名就可以了(例子,a = [1,2,3] 相當于 int[] a = {1,2,3};)。
沒有類型強制轉換這個概念,只管調用方法就好了。
用 foo = Foo.new( "hi") 取代這樣新建對象的方法 Foo foo = new Foo( "hi" )。
構造方法一直都叫“initialize”,不是和class同名的方法。
使用“混入” 代替 “接口”。
YAML 比 XML 更受歡迎。
這里用nil代替null。
==和equals()方法處理方法不同。當你想要測試相等性時就使用 == 操作符(就像Java的equals()方法)。當要想要知道兩個對象是否是同一個時就使用equal?()方法(就像Java中的==)。
摘要: 早上看了Ruby論壇中有人(blackanger)寫的TDD by Ex這本書里的資金例子,自己也想寫一寫。和他不同,我是全過程詳細寫出來。第一次用Ruby寫代碼,第一次用Ruby的Unit框架,而且下午睡醒后迷迷糊糊寫的,可能有很多錯誤,請多多指正。
閱讀全文
在Ubuntu下通過apt包管理器安裝ror環境是很方便的。我自己寫了一個腳本:
sudo apt-get install build-essential gcc g++ libssl0.9.8 libssl0.9.8-dbg libssl-dev build-essential
sudo apt-get install ruby
sudo apt-get install libzlib-ruby rdoc ri irb ruby1.8-dev
sudo apt-get install libzlib-ruby
sudo apt-get install rubygems
sudo gem update --system
sudo gem install rails -y
sudo gem install rails --include-dependencies
sudo gem install mongrel -y
sudo gem install mongrel_cluster --include-dependencies
sudo apt-get install libopenssl-ruby
sudo apt-get install libgd-ruby1.8 libyaml-ruby libzlib-ruby
sudo apt-get install imagemagick
sudo apt-get install libmagick9-dev ruby1.8-dev
sudo gem install RMagick? -y
直接把上面的一串保存在一個文本文件中,然后用sh命令執行就可以一步安裝完成了。
我發現網上很多在安裝gem的命令都是錯的,在Ubuntu里gem包不是ruby的gem,ubuntu下gem包的解釋如下:
Graphics Environment for Multimedia - PureData library
Gem is a loadable library for puredata, which adds OpenGL graphics rendering
and animation to Pd.? Pd is a graphical programming language and computer
music system.
這個包和ruby一點關系都沒有。正確的應該是rubygems包。不知道為什么到處有人都是寫
sudo?apt-get?install gem的,很多都是轉載,有的連轉載都不聲明,直接試都不試把錯的東西直接貼出來。
另有人說源里的gem很過時,其實也不會。
轉載自:http://blog.csdn.net/bvbook/archive/2007/08/20/1751786.aspx
一、148 頁
英文: We check that the name is present and unique
原文:我們首先檢查用戶名與密碼都不為空 ?
二、148頁
?? ??? ??? ??? ??? ??? ?
英文:We check that the name is present and unique
原文:我們首先檢查用戶名與密碼都不為空
改為:我們首先檢查用戶名不為空
?? ??? ??? ??? ?
三、153頁
代碼中 flash[:notice] 應為flash.now[:notice]
四、310頁
?? ??? ??? ??? ??? ??? ?
列表中第二個“使用save方法時”應為“使用save!方法時“
?? ??? ??? ??? ??? ??? ?
五、407頁
?? ??? ??? ??? ??? ??? ?
英文:Instead, they provide a regular (and simple) interface to a set of resources.
原文:它們只要為一組資源提供一個普通(并且簡單)的接口就行了
改為:它們只要為一組資源提供一個規則(并且簡單)的接口就行了
?? ??? ??? ??? ?
六、408頁
兩處的 /article/1 應為/articles/1
?? ??? ??? ??? ??? ??? ??? ??? ?
七、456頁
?? ??? ??? ??? ??? ??? ?
原文:默認配置下,cache 只有在產品環境下才生效
改為:默認配置下,cache 只有在生產環境下才生效
?? ??? ??? ??? ?
八、535頁
?? ??? ??? ??? ??? ??? ?
原文:這個輔助方法就是把 remote_function 一個remote_function
改為:這個輔助方法就是把一個remote_function
九、554頁
?? ??? ??? ??? ??? ??? ?
原文:表單可以這些方法交互以提交用戶輸入的內容
改為:表單可以與這些方法交互以提交用戶輸入的內容
?? ??? ??? ??? ?
十、106頁 代碼
?? ??? ??? ??? ?
@product = Product.find(params[:id])
應為?? ??? ?
product = Product.find(params[:id])
110、117相應的代碼也需要改正。
我自己還發現了:
P119
代碼
??? <%= form_remote_tag :url => { :action => :add_to_cart, :id => product } %> ?
???? <%= submit_tag "Add to Cart" %> ?
??? <% end %> ?
應為:
代碼
?? <%= form_remote_tag :url => { :action => :add_to_cart, :id => product } %> ?
????? <%= submit_tag "Add to Cart" %> ?
?? <%= end_form_tag %> ?
106頁
代碼
@product = Product.find(params[:id])
應該是
product = Product.find(params[:id])
?? ??? ??? ??? ??? ??? ?
?? ??? ??? ??? ??? ??? ?
?? ??? ??? ??? ?
前天用我的X1650GT和同學換了一塊7300GT,在Ubuntu折騰了一下,終于如愿以償地開啟了Compiz Fusion的效果,并且用gDesklets在桌面加了一些實用工具挺好玩的。
過程也挺折騰的,先是安裝了ati的顯卡驅動后要裝nv的驅動碰到問題,然后再是開啟特效后窗口沒有了邊框。在安裝ati驅動后裝nv的驅動先要刪除幾個庫文件(libGL.so),看他提示哪個就刪除哪個,然后nv驅動才可以正常安裝。nv顯卡開特效的邊框的問題 只要運行一下sudo nvidia-xconfig --add-argb-glx-visuals就OK了。
現在上圖看看:




?