跳到主要內容

學習Ruby三日有感

這三天連假,我都宅在電腦前把OSX、WinXP、Ubuntu上的Rails裝起來。
目前我所查到的資料,台灣以thegiive寫的最多,因此底下的資料多以他寫的為參考。

Ruby語言版本
  1. Ruby Programming中文版是使用1.8.4,此版本與Ubuntu 6.10相同;Windows就直接用最新版1.8.5;在OS X上預設是1.8.2,也沒有重大差別,但我依照RoR網站所推薦的Building Ruby, Rails, LightTPD, and MySQL on Tiger一步步把ruby 1.8.5裝到/usr/local。
  2. 在Win32使用粦、堃等Unicode中文會亂碼,而且在Windows上使用ruby -Ku沒什麼用。若用Notepad存成UTF-8,會因為檔頭會多加3個byte而讓interpreter發生錯誤。我自己使用MadEdit,速度快、可自訂顏色、對各種編碼都支援。
  3. 若使用我個人的建議是用OSX或Ubuntu Linux開發,不會有中文衝碼的問題。OSX中文環境是big5編碼,我把Terminal設成UTF-8。如果要寫一些Console程式,還是用Ubuntu設成zh-tw.UTF-8最好。
心得
  1. Ruby 分大小寫,對VB使用者應該就不習慣吧?
  2. 語法確實很精簡,有點類似Python但又改善空格縮排的缺點,比起駱駝文讓我容易接受。
  3. 內建的文字處理和Collection不錯,可惜尚未提供對Unicode的支援(這點比Java遜太多了吧)
  4. 不愧是比較新的語言,內建closure等很酷的玩意兒。
  5. 實在是頗慢,讓我想再試試GroovyJRuby,這種語言若整合得好,放在JVM裏執行反而會更快吧?
我用的編輯器
  1. Win32:MadEdit、RadRails
  2. OSX:Smultron RadRails。千萬不要用TextMate,中文會糊成一團,Smultron 就很好用。
  3. Ubuntu:Console用vim,GUI用RadRails
參考:TextMate, snippetsEmu for Vim

關於Rails

Ruby on Rails的教學很怪異,http://0.0.0.0:3000 並不是每個平台都適用,至少在Windows必須改成 http://127.0.0.1:3000 或 http://localhost:3000。

安裝

安裝會有很多問題,所以得參考thegiive的文章或ROR網站的相關教學
官方網站沒有這步驟,但我發現在Ubuntu上一定得做才不會有問題: gem install rubygems-update

Ubuntu 6.10 安裝 Ruby on Rails + lighttpd
Ubuntu 上面安裝 Ruby on Rails (精簡版)
Mongrel Win32 HOWTO

資料庫

雖然Rails預設使用MySQL,我也覺得MySQL太肥,而且我的老舊電腦根本跑不動,所以換成SQLite後就過著快樂的日子。
gem i sqlite3-ruby ( gem install sqlite3-ruby)

Rails with SQLite
why SQLite and how SQLite
Rails 的 Migrations

開發用OS

我覺得都差不多,雖然速度稍微有差,反正都不算快:P 只要不像我一樣想在Console使用UTF-8字元則沒太大差別。不過若使用IDE時建議還是將編碼改成UTF-8。
參考:該選擇那個 OS 作為 Ruby on Rails 伺服器的環境?

心得
  1. 實在是很棒的架構,除了簡單外又有資料庫整合的功能,讓我想起快被人遺忘的AOLServer。最強的部份就是內建ORM和Migrations,不知道還有什麼驚喜。
  2. 雖然簡單,要整個架構弄熟得花不少功夫,不會比JSP/Servlet簡單。
  3. 成熟度仍有待考驗,對於一般企業內部需求是否能符合?
  4. 安裝太麻煩,尤其在Ubuntu上。許多部份需要native程式支援,若全用Ruby不是比較簡單?這點就比不上Tomcat方便。怕麻煩的人還是安裝速成包Instant Rails之類比較方便。

留言

匿名表示…
>> Notepad存成UTF-8,會因為檔頭會多加3個byte

應該是因為UTF-8 BOM的關係吧?只要用Utf8不存成附加BOM就可以了。 :)
鳥毅寫道…
是的,但在下還真不知Notepad可以存成不附加BOM,所以還是用MadEdit

這個網誌中的熱門文章

自然人憑證讀卡機驅動程式

鳥毅用的是第一代的自然人憑證讀卡機,EZ100PU(後來有同事買EZmini可以讀SIM卡似乎更好),每年報稅時用一次。 本來只是要申請些政府業務,一時之間找不到光碟,沒想到在 驅動程式下載 居然看到Linux和Mac的驅動程式,剩下的就是政府單位的網頁和程式應該改版了吧!!!

DBeaver 介面語言

DBeaver是我個人頗常用的一套跨平台Database管理工具,最近升級後發現Windows版本居然變成簡體中文,而且無法切換為英文。

如何將較高版本SQL Server複製到低版本SQL Server (降級為舊版)並保留權限及資料庫圖表

一般若是要將SQL Server裡的Database轉往其他Server時,最簡單的方式就是備份(Backup)後再還原(Restore),或者是䣃離(detach)後附加(attach)。 但是很不幸地,若是由較低版本(e.g. 2008)到較高版本(e.g. 2012)要怎麼辦呢?