為什麼選擇 Ruby
引用一句已故大師 Alan Perlis 的話:
A language that doesn’t affect the way you think about programming is not worth knowing.
中文意思是:
「如果某種程式語言不會影響你寫程式的思考方式的話,那就不值得去學習它。」
什麼是 Ruby ?
Ruby 是一種泛用的腳本式程式語言,從資料分析、繪圖、3D 建模、系統管理、遊戲開發等程式都可以使用 Ruby 來開發,而且它的年紀已經超過 20 年了。
什麼是 Rails?
Rails 是一款使用 Ruby 程式語言所開發出來的網站開發框架(Web Framework),作者是名為 David Heinemeier Hansson(簡稱 DHH) 的丹麥人。
一開始的時候大家會把 Ruby on Rails 簡稱為「RoR」,不過因為「RoR」實在不好發音,後來大家開始慢慢的改稱之 Rails。
Ruby 跟 Rails 之間的關係
如果打個比方的話,大家也許看過或玩過樂高(Lego)積木,Rails 就像是一塊一塊的積木,可以讓你很快的把城堡蓋起來;而 Ruby 則像是積木的原料(塑膠),沒有原料就不會有這個積木。
Rails 設計哲學
在 Rails 世界有兩個主要的設計哲學:
- 慣例優於設定(Convention over Configuration, CoC)
- 不要做重複的事(Don’t Repeat Yourself, DRY)
慣例優於設定(Convention over Configuration, CoC)
「慣例」就像是不成文的規定,當遇到某種情況的時候我們會用特定的方式來解決問題,或是該把某個功能的程式碼放在什麼地方,不過即使不照著慣例寫,也有別的方法可以達到一樣的目的。
在 Rails 裡有相當多這樣的慣例,例如像是專案的目錄結構、資料表的關連及命名等,順著 Rails 的慣例,程式碼可以變得更簡潔、優雅。
甚至可以說在學習 Rails 的過程,除了學習 Ruby/Rails 的語法之外,也是在學習 Rails 的慣例。
不要做重複的事(Don’t Repeat Yourself, DRY)
如果有些程式碼或結構一直重複的出現,就應該把重複的部份抽離出來,整理成為一個方法、類別或模組。