碁峰出版

Ruby on Rails(以下簡稱Rails)是一個非常具有生產力的網站開發框架,透過Rails 本身的設計以及大量的外部第三方套件,可以很快的做出一個網站應用程式的雛型來,所以許多創業圈的朋友會選擇使用它來打造產品也是因為這個原因,快速的先把產品做出來,放到市場上試試水溫。

不過Ruby這個程式語言以及Rails這個網站開發框架,都隱藏了許多的細節,所以用起來雖然感覺很好寫、好用,但其實不太好學,在到上手之前的那段路如果沒人指導的話會走得有點辛苦,特別是對完全沒有技術背景基礎的新手來說難度更高。在近幾年五倍紅寶石以及國內各大專院校的課程教學中,觀察、整理出新手容易卡關的點,希望這本書可以幫大家快速的度過新手的撞牆期。

在2007年的時候,我買了第一本Ruby的參考書,當時看完之後只覺得Ruby這個程式語言的語法很有趣,但平日公司的業務用的是ASP跟PHP,我不知道這個能在我日常工作上幫到什麼忙。直到2009年接觸到了Rails之後才發現,原來Ruby加上Rails之後可以讓開發變得這麼有趣,而且可以這麼有生產力,能讓我在短時間之內就把想做的東西做出來,有更多的時間可以玩樂、做自己想做的事(寫更多的程式...)。

也許因為個性的關係,在學習新事物的過程中如果有疑惑的地方,總是希望可以搞懂為止,否則知其然而不知其所以然是沒辦法真的把一門技術搞懂。也因為這樣,本書在撰寫的時候也發揮了我愛囉嗦的專長,即使是簡單的小地方,也希望可以解釋的夠清楚。期望不只可以教大家如何寫(How),也能讓大家知道在寫什麼(What),以及為什麼(Why)要這樣寫。

很多人會比較各種程式語言或開發框架的優劣,比較誰的效能好、誰的功能強大、程式碼可讀性高等等,但這種「戰爭」是戰不完的,而且本身也沒有太大的意義,更何況我個人對不精通的語言,我也沒那個份量來批評。在本書中或多或少會提到「我當初在某些程式語言是如何實作,但在Ruby/Rails是這樣做的」之類的比較,這並非想比較誰優誰劣,僅為了給曾經寫過該程式語言的朋友們能更容易體會我想的意思。

再次強調,各種程式語言或工具之間並沒有絕對的好或不好的問題,只有適不適合的問題。只要能解決問題的,不管是冷門或熱門,都是好的工具。

生態圈及簡介:Ruby生態圈

Ruby這個程式語言可以說是因為Rails的盛行而興起的也不為過,我認識大部份的人會開始學習Ruby或知道Ruby這個程式語言,大多是因為Rails的緣故。事實上,在Rails風行之前,Ruby這個程式語言在全世界,可能只有日本的工程師在使用。

關於Ruby:什麼是Ruby?

很多人因為聽聞Rails可以快速開發網站而開始知道有Ruby這個程式語言,所以會認為Ruby就是用來開發網站,或是以為Ruby是個最近幾年才發明的程式語言。事實上Ruby是一種泛用的腳本式程式語言,從資料分析、繪圖、3D 建模、系統管理、遊戲開發等程式都可以使用Ruby來開發,而且它的年紀已經超過20年了。

Ruby是由一位名叫松本行弘的日本人所發明(日文:まつもとゆきひろ,網路上大家通常稱他Matz)。Ruby參考了Perl、Lisp及Smalltalk等程式語言的設計,是一款物件化非常徹底的程式語言。在1995年釋出了第一個版本,在早期實際使用Ruby在工作上的開發者並不多,相關的技術文件也大多是日文居多,直到Rails開始風行之後,才慢慢地受到許多人的關注。

為什麼選擇Ruby?

引用一句已故大師Alan Perlis的話:

"A language that doesn't affect the way you think about programming is not worth knowing" ── Alan Perlis

中文意思是:「如果某種程式語言不會影響你寫程式的思考方式的話,那就不值得去學習它。

Ruby是個很容易學、很容易上手的程式語言,語法寫起來也很自然、有趣,也因為Ruby的自然語法,寫久了真的會影響你在寫程式時的思考或設計方式。

因為Ruby的語法寫起來很自然,所以用Ruby寫出來的程式碼的可閱讀性也相當高。不管是接手別人的專案,或是維護自己幾個月前寫的系統,比較好的程式碼可讀性對開發者來說可以減少不少負擔。

另外,現在全世界的Ruby社群都相當活躍,要找什麼套件幾乎都有熱心人士幫忙寫好了。除了可以免費取得之外,連原始程式碼都公開給你看。在台灣,Ruby社群也是十分活躍,每個月甚至每週都有實體的線下聚會,也有大型的國際程式研討會RubyConf Taiwan,每年都有不少國內外的Ruby開發者前來與會,連Ruby的發明人松本行弘也會遠從日本來台灣參加。

在本文撰寫的當下,官方最新推出的Ruby穩定版本是2.4.1版,較舊版本的Ruby(1.8、1.9或更早之前)的部份功能也可能會被提到,本書將會以2.4.1 版本為主。Ruby 2系列對之前的版本有向下相容的特性,原本在1.9版可以正常執行的程式碼,大部份在2.0之後的版本應該也可以正常運作。

誰在用Ruby?

很多人在評估程式語言的優劣,是看有哪些大公司、單位在使用它,或是使用的開發者人數。老實說我個人不是很關心這個問題,有些人覺得Ruby並不是很流行,在TIOBE網站上的排名也不是非常前面,但我個人認為,好的東西不一定要流行,只要能完成任務的工具就是好工具。在iPhone還沒流行之前,誰也沒料到開發iOS app的Objective-C這個語法看起來很奇怪的程式語言有一天可以這麼熱門。

關於Rails:什麼是Rails?

Rails是一款使用Ruby程式語言所開發出來的網站開發框架(Web Framework),作者是名為David Heinemeier Hansson(簡稱DHH)的丹麥人。當年他在開發自家的產品的同時,發現好像可以把一些網站開發常用的模組或函式庫組成一個框架,利用這個框架可以大大的縮短網站應用程式開發的時間。DHH在2005年年底釋出第一個版本,他在研討會現場展示如何使用Rails在15分鐘內開發出一個Blog,讓所有的人眼睛為之一亮,在那之後Rails 便開始慢慢的風行到全世界,也讓更多人開始關注Ruby這個有趣的程式語言。現在世面上常見的網頁開發框架的設計(例如Laravel),多少也直接或間接的受了Rails的影響。

一開始的時候,大家會把Ruby on Rails簡稱為「RoR」,不過因為「RoR」實在不好發音,後來大家開始慢慢的改稱之Rails,包括本書也是。

「既然Rails這麼方便,那有必要學Ruby嗎?」。我的建議是:「是的,有必要。你也許不需要把Ruby學得非常熟、不需要知道Ruby裡所有的方法,但至少你該學會在Rails專案裡常看到的Ruby語法」。Ruby是一款設計很特別、寫起來也很有趣的程式語言,如果能花時間更去深入Ruby這個程式語言特別的點,相信在寫Rails的時候可以寫出更漂亮、簡潔、有效率的語法。(摘錄整理自《為你自己學Ruby on Rails》)

 書名 

為你自己學Ruby on Rails

高見龍/著

碁峰出版

售價:480元

 作者簡介 

高見龍

雖非資訊本科系出身,但喜歡寫程式而且希望可以寫一輩子程式的電腦阿宅。

喜歡辦活動,是不少臺灣大型技術研討會(如PHPConf、WebConf、RubyConf Taiwan等)及社群活動(Rails Girls Taipei、Taipei.rb)的發起人或主辦人。

目前為五倍紅寶石共同創辦人及負責人。


Advertisement

更多 iThome相關內容