通過開源書籍學習 Ruby 編程

2021-01-21 Linux中國



開源的 Ruby 書籍

Ruby 是由 Yukihiro 「Matz」 Matsumoto 開發的一門通用目的、腳本化、結構化、靈活且完全面向對象的程式語言。它具有一個完全動態類型系統,這意味著它的大多數類型檢查是在運行的時候進行,而非編譯的時候。因此程式設計師不必過分擔心是整數類型還是字符串類型。Ruby 會自動進行內存管理,它具有許多和 Python、Perl、Lisp、Ada、Eiffel 和 Smalltalk 相同的特性。

Ruby on Rails 框架對於 Ruby 的流行起到了重要作用,它是一個全棧 Web 框架,目前已被用來創建許多受歡迎的應用,包括 Basecamp、GitHub、Shopify、Airbnb、Twitch、SoundCloud、Hulu、Zendesk、Square 和 Highise 。

Ruby 具有很高的可移植性性,在 Linux、Windows、Mac OS X、Cygwin、FreeBSD、NetBSD、OpenBSD、BSD/OS、Solaris、Tru64 UNIX、HP-UX 以及其他許多系統上均可運行。目前,Ruby 在 TIOBE 編程社區排名 12 。

這篇文章有 9 本很優秀的推薦書籍,有針對包括初學者、中級程式設計師和高級程式設計師的書籍。當然,所有的書籍都是在開源許可下發布的。

這篇文章是 OSSBlog 的系列文章開源編程書籍[1]的一部分。

《Ruby Best Practices[2]》

作者: Gregory Brown (328 頁)

《Ruby Best Practices》適合那些希望像有經驗的 Ruby 專家一樣使用 Ruby 的程式設計師。本書是由 Ruby 項目 Prawn 的開發者所撰寫的,它闡述了如何使用 Ruby 設計美麗的 API 和特定領域語言,以及如何利用函數式編程想法和技術,從而簡化代碼,提高效率。

《Ruby Best Practices》 更多的內容是關於如何使用 Ruby 來解決問題,它闡述的是你應該使用的最佳解決方案。這本書不是針對 Ruby 初學者的,所以對於編程新手也不會有太多幫助。這本書的假想讀者應該對 Ruby 的相應技術有一定理解,並且擁有一些使用 Ruby 來開發軟體的經驗。

這本書分為兩部分,前八章組成本書的核心部分,後三章附錄作為補充材料。

這本書提供了大量的信息:


◈ 通過測試驅動代碼 - 涉及了大量的測試哲學和技術。使用 mocks 和 stubs◈ 通過利用 Ruby 神秘的力量來設計漂亮的 API:靈活的參數處理和代碼塊◈ 利用動態工具包向開發者展示如何構建靈活的界面,實現單對象行為,擴展和修改已有代碼,以及程序化地構建類和模塊◈ 文本處理和文件管理集中於正則表達式,文件、臨時文件標準庫以及文本處理策略實戰◈ 函數式編程技術優化了模塊代碼組織、存儲、無窮目錄以及更高順序程序。◈ 理解代碼如何出錯以及為什麼會出錯,闡述如何處理日誌記錄


本書為開源書籍,在 CC NC-SA 許可證下發布。

在此下載《Ruby Best Practices》[3]。

《I Love Ruby[4]》

作者: Karthikeyan A K (246 頁)

《I Love Ruby》以比傳統的介紹更高的深度闡述了基本概念和技術。該方法為編寫有用、正確、易維護和高效的 Ruby 代碼提供了一個堅實的基礎。

章節內容涵蓋:



在 GNU 自由文檔許可證之下,你可以複製、發布和修改本書,1.3 或任何之後版本由自由軟體基金會發布。

點此下載《I Love Ruby》[5]。

Programming Ruby – The Pragmatic Programmer’s Guide[6]

作者: David Thomas, Andrew Hunt (HTML)

《Programming Ruby – The Pragmatic Programmer’s Guide》是一本 Ruby 程式語言的教程和參考書。使用 Ruby,你將能夠寫出更好的代碼,更加有效率,並且使編程變成更加享受的體驗。

內容涵蓋以下部分:


◈ Ruby 和它的世界、Web、Tk 和 微軟 Windows


這本書的第一版在開放發布許可證 1.0 版或更新版的許可下發布。本書更新後的第二版涉及 Ruby 1.8 ,並且包括所有可用新庫的描述,但是它不是在免費發行許可證下發布的。

點此下載《Programming Ruby – The Pragmatic Programmer’s Guide》[7]。

《Why’s (Poignant) Guide to Ruby[8]》

作者:why the lucky stiff (176 頁)

《Why’s (poignant) Guide to Ruby》是一本 Ruby 程式語言的介紹書籍。該書包含一些冷幽默,偶爾也會出現一些和主題無關的內容。本書包含的笑話在 Ruby 社區和卡通角色中都很出名。

本書的內容包括:


◈ 一個快速(希望是無痛苦的)的 Ruby 瀏覽(伴隨卡通角色):Ruby 核心概念的基本介紹◈ 組成規則的核心部分:case/when、while/until、變量作用域、塊、方法、類定義、類屬性、對象、模塊、IRB 中的內省、dup、self 和 rbconfig 模塊◈ 當你打算靠近鬍鬚時:在已存在類中發送一個新方法


本書在 CC-SA 許可證許可下可用。

點此下載《Why’s (poignant) Guide to Ruby》[9]。

《Ruby Hacking Guide[10]》

作者: Minero Aoki ,翻譯自 Vincent Isambart 和 Clifford Escobar Caoille (HTML)

通過閱讀本書可以達成下面的目標:



本書分為四個部分:



要想從本書中收穫最多的東西,需要具備一定 C 語言的知識和基本的面向對象編程知識。本書在 CC-NC-SA 許可證許可下發布。

原書的官方支持網站為 i.loveruby.net/ja/rhg/[11]

點此下載《Ruby Hacking Guide》[12]

《The Book Of Ruby[13]》

作者: How Collingbourne (425 頁)

《The Book Of Ruby》是一本免費的 Ruby 編程高級教程。

《The Book Of Ruby》以 PDF 文件格式提供,並且每一個章節的所有例子都伴有可運行的原始碼。同時,也有一個介紹來闡述如何在 Steel 或其他任何你喜歡的編輯器/IDE 中運行這些 Ruby 代碼。它主要集中於 Ruby 語言的 1.8.x 版本。

本書被分成很小的塊。每一個章節介紹一個主題,並且分成幾個不同的子話題。每一個編程主題由一個或多個小的自包含、可運行的 Ruby 程序構成。


◈ 字符串、數字、類和對象 - 獲取輸入和輸出、字符串和外部評估、數字和條件測試:if ... then、局部變量和全局變量、類和對象、實例變量、消息、方法、多態性、構造器和檢屬性和類變量 - 超類和子類,超類傳參,訪問器方法,’set『 訪問器,屬性讀寫器、超類的方法調用,以及類變量◈ 類等級、屬性和類變量 - 超類和子類,超類傳參,訪問器方法,’set『 訪問器,屬性讀寫器、超類的方法調用,以及類變量◈ 字符串和 Ranges - 用戶自定義字符串定界符、引號等更多◈ 循環和迭代器 - for 循環、代碼塊、while 循環、while 修改器以及 until 循環◈ 條件語句 - If..Then..Else、And..Or..Not、If..Elsif、unless、if 和 unless 修改器、以及 case 語句◈ 方法 - 類方法、類變量、類方法是用來幹什麼的、Ruby 構造器、單例方法、單例類、重載方法以及更多◈ 傳遞參數和返回值 - 實例方法、類方法、單例方法、返回值、返回多重值、默認參數和多重參數、賦值和常量傳遞以及更多◈ 異常處理 - 涉及 rescue、ensure、else、錯誤數量、retry 和 raise◈ 塊、Procs 和 匿名 - 闡述為什麼它們對 Ruby 來說很特殊◈ 符號 - 符號和字符串、符號和變量以及為什麼應該使用符號◈ 文件和 IO - 打開和關閉文件、文件和目錄、複製文件、目錄詢問、一個關於遞歸的討論以及按大小排序◈ YAML - 包括嵌套序列,保存 YAML 數據以及更多◈ Marshal - 提供一個保存和加載數據的可選擇方式◈ 調試和測試 - 涉及交互式 Ruby shell(IRB.exe)、debugging 和 單元測試◈ Ruby on Rails - 瀏覽一個創建博客的實踐指南◈ 動態編程 - 自修改程序、重運算魔法、特殊類型的運算、添加變量和方法以及更多


本書由 SapphireSteel Software 發布,SapphireSteel Software 是用於 Visual Studio 的 Ruby In Steel 集成開發環境的開發者。讀者可以複製和發布本書的文本和代碼(免費版)

點此下載《The Book Of Ruby》[14]

《The Little Book Of Ruby[15]》

作者: Huw Collingbourne (87 頁)

《The Little Book of Ruby》是一本一步接一步的 Ruby 編程教程。它指導讀者瀏覽 Ruby 的基礎。另外,它分享了《The Book of Ruby》一書的內容,但是它旨在作為一個簡化的教程來闡述 Ruby 的主要特性。

章節內容涵蓋:


◈ 字符串和方法 - 包括外部評估。詳細描述了 Ruby 方法的語法◈ 類等級 - 一個特殊類型的類,其為一些其他類的簡化並且繼承了其他一些類的特性◈ 訪問器、屬性、類變量 - 訪問器方法,屬性讀寫器,屬性創建變量,調用超類方法以及類變量探索◈ 數組 - 學習如何創建一系列對象:數組包括多維數組◈ 哈希 - 涉及創建哈希表,為哈希表建立索引以及哈希操作等◈ 循環和迭代器 - for 循環、塊、while 循環、while 修飾器以及 until 循環◈ 條件語句 - If..Then..Else、And..Or..Not、If..Elsif、unless、if 和 unless 修飾器以及 case 語句◈ 模塊和 Mixins - 包括模塊方法、模塊作為名字空間模塊實例方法、模塊或 'mixins'、來自文件的模塊和預定義模塊


本書可免費複製和發布,只需保留原始文本且註明版權資訊。

點此下載《The Little Book of Ruby》[16]

《Kestrels, Quirky Birds, and Hopeless Egocentricity[17]》

作者: Reg 「raganwald」 Braithwaite (123 頁)

《Kestrels, Quirky Birds, and Hopeless Egocentricity》是通過收集 「Raganwald」 Braithwaite 的關於組合邏輯、Method Combinators 以及 Ruby 元編程的系列文章而形成的一本方便的電子書。

本書提供了通過使用 Ruby 程式語言來應用組合邏輯的一個基本介紹。組合邏輯是一種數學表示方法,它足夠強大,從而用於解決集合論問題以及計算中的問題。

在這本書中,讀者會會探討到一些標準的 Combinators,並且對於每一個 Combinators,書中都用 Ruby 程式語言寫程序探討了它的一些結果。在組合邏輯上,Combinators 之間組合併相互改變,書中的 Ruby 例子注重組合和修改 Ruby 代碼。通過像 K Combinator 和 .tap 方法這樣的簡單例子,本書闡述了元編程的理念和遞歸 Combinators 。

本書在 MIT 許可證許可下發布。

點此下載《Kestrels, Quirky Birds, and Hopeless Egocentricity》[18]

《Ruby Programming[19]》

作者: Wikibooks.org (261 頁)

Ruby 是一種解釋性、面向對象的程式語言。

本書被分為幾個部分,從而方便按順序閱讀。


◈ 開始 - 向讀者展示如何在其中一個作業系統環境中安裝並開始使用 Ruby◈ Ruby 基礎 - 闡述 Ruby 語法的主要特性。它涵蓋了字符串、編碼、寫方法、類和對象以及異常等內容


本書在 CC-SA 3.0 本地化許可證許可下發布。

點此下載《Ruby Programming》[20]

無特定順序,我將在結束前推薦一些沒有在開源許可證下發布但可以免費下載的 Ruby 編程書籍。


◈ Mr. Neighborly 的 Humble Little Ruby Book[21] – 一個易讀易學的 Ruby 完全指南。◈ Introduction to Programming with Ruby[22] – 學習編程的基礎知識,一切從零開始。◈ Object Oriented Programming with Ruby[23] – 學習編程的基礎知識,一切從零開始。◈ Core Ruby Tools[24] – 對 Ruby 的四個核心工具 Gems、Ruby Version Managers、Bundler 和 Rake 進行了簡短的概述。◈ Learn Ruby the Hard Way, 3rd Edition[25] – 一本適合初學者的入門書籍。◈ Learn to Program[26] – 來自 Chris Pine。◈ Ruby Essentials[27] – 一個準確且簡單易學的 Ruby 學習指南。


via: https://www.ossblog.org/study-ruby-programming-with-open-source-books/

作者:Steve Emms[28] 譯者:ucasFL 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


[1]: OSSBlog 的系列文章開源編程書籍 - https://www.ossblog.org/opensourcebooks/

[2]: Ruby Best Practices - https://github.com/practicingruby/rbp-book/tree/gh-pages/pdfs

[3]: 在此下載《Ruby Best Practices》 - https://github.com/practicingruby/rbp-book/tree/gh-pages/pdfs

[4]: I Love Ruby - https://mindaslab.github.io/I-Love-Ruby/

[5]: 點此下載《I Love Ruby》 - https://mindaslab.github.io/I-Love-Ruby/

[6]: Programming Ruby – The Pragmatic Programmer’s Guide - http://ruby-doc.com/docs/ProgrammingRuby/

[7]: 點此下載《Programming Ruby – The Pragmatic Programmer’s Guide》 - http://ruby-doc.com/docs/ProgrammingRuby/

[8]: Why’s (Poignant) Guide to Ruby - http://poignant.guide/

[9]: 點此下載《Why’s (poignant) Guide to Ruby》 - http://poignant.guide/

[10]: Ruby Hacking Guide - http://ruby-hacking-guide.github.io/

[11]: i.loveruby.net/ja/rhg/ - http://i.loveruby.net/ja/rhg/

[12]: 點此下載《Ruby Hacking Guide》 - http://ruby-hacking-guide.github.io/

[13]: The Book Of Ruby - http://www.sapphiresteel.com/ruby-programming/The-Book-Of-Ruby.html

[14]: 點此下載《The Book Of Ruby》 - http://www.sapphiresteel.com/ruby-programming/The-Book-Of-Ruby.html

[15]: The Little Book Of Ruby - http://www.sapphiresteel.com/ruby-programming/The-Book-Of-Ruby.html

[16]: 點此下載《The Little Book of Ruby》 - http://www.sapphiresteel.com/ruby-programming/The-Book-Of-Ruby.html

[17]: Kestrels, Quirky Birds, and Hopeless Egocentricity - https://leanpub.com/combinators

[18]: 點此下載《Kestrels, Quirky Birds, and Hopeless Egocentricity》 - https://leanpub.com/combinators

[19]: Ruby Programming - https://en.wikibooks.org/wiki/Ruby_Programming

[20]: 點此下載《Ruby Programming》 - https://en.wikibooks.org/wiki/Ruby_Programming

[21]: Mr. Neighborly 的 Humble Little Ruby Book - http://www.humblelittlerubybook.com/

[22]: Introduction to Programming with Ruby - https://launchschool.com/books/ruby

[23]: Object Oriented Programming with Ruby - https://launchschool.com/books/oo_ruby

[24]: Core Ruby Tools - https://launchschool.com/books/core_ruby_tools

[25]: Learn Ruby the Hard Way, 3rd Edition - https://learnrubythehardway.org/book/

[26]: Learn to Program - https://pine.fm/LearnToProgram

[27]: Ruby Essentials - http://www.techotopia.com/index.php/Ruby_Essentials

[28]: Steve Emms - https://www.ossblog.org/author/steve/



相關焦點

  • Ruby CGI 編程
    使用Ruby您不僅可以編寫自己的SMTP伺服器,FTP程序,或Ruby Web伺服器,而且還可以使用Ruby進行CGI編程。接下來,讓我們花點時間來學校Ruby的CGI編輯。CGI架構圖Web伺服器支持及配置在你進行CGI編程前,確保您的Web伺服器支持CGI及已經配置了CGI的處理程序。
  • Ruby 語言教程
    Ruby 是一種開源的面向對象程序設計的伺服器端腳本語言,在 20 世紀 90 年代中期由日本的松本行弘(まつもとゆきひろ/Yukihiro
  • 看完這5本Ruby書目,目標找到Ruby工作
    這本書以Ruby程式語言為基礎,以動態特性為核心,實現大量代碼實例,通過詳細的注釋解釋每個日常使用Ruby編程中遇到的知識點。        本書內容由淺入深,主要包括Ruby程式語言的基本語法、面向對象的特性、默認對象、控制技術、常用的內置類、正則表達式、I/O操作等。最後,它使用大量空間來描述ruby中最值得注意的動態特性。
  • 中文版開源!這或許是最經典的Python編程教材
    想入門Python,但一直沒找到合適的參考書籍?《Think Python》是很多Python初學者的不二入門教材,受到廣泛好評。該書原作者是美國Olin工程學院的教授Allen B. Downey,目前該書的原版和中文版本都已免費開源。
  • 數學極差的程式設計師-ruby之父
    到了初中的時候,他的父親又給他買了一臺Sharp PC-1210,這個很類似我們今天的計算器,但是它不僅可以計算,還可以編程。那時候的他對只要輸入指令,計算機就可以按照你的指令進行操作產生了濃厚的興趣。也就是那時候,他已經不知不覺地走入了計算機的世界。
  • 代碼森林帶你實踐熱門編程書籍——《Python編程:從入門到實踐》
    Python它作為一門熱門的語言,已經高居程式語言排行榜前三名。Python主要用於機器學習、爬蟲、數據分析、腳本編寫、人工智慧等領域,語言簡潔靈活,高效方便。要想學好Python,小白應該選擇什麼樣的書籍呢?
  • 程式語言中的快樂天使——Ruby
    毋庸置言,Ruby 就是這樣一種簡單易掌握,並且功能強大的程式語言。Ruby 是一群熱愛面向對象編程的程式設計師,為了實現最優秀的面向對象語言而設計、開發出來的。它完全面向對象,所思考的東西都可以直接通過代碼表達出來。同時,Ruby 也具有繼承以及 Mix-in 等面向對象語言的必備特性。
  • 資料|樹莓派Python編程入門與實戰
    from=leiphonecolumn_res0703pm內容簡介 · · · · · ·樹莓派是一個只有信用卡大小的裸露電路板,它也是一個運行開源Linux作業系統的完全可編程的PC系統。樹莓派的官方程式語言是Python,本書介紹了樹莓派的Python編程方法。本書共分7個部分。
  • 電腦入門程式語言
    今天和大家介紹一下電腦入門編程學什麼語言更合適。首選python語言,python 是一門開源免費、通用型的腳本程式語言,現在社會上會python語言的人很吃香的。它上手簡單,功能強大,堅持「極簡主義」。
  • 有史以來最受歡迎的 25 本編程書籍
    推特上一位名為 Pierre de Wulf 的網友突發奇想,有史以來最受歡迎的編程書籍到底是哪些?為了找到程式設計師們最為推崇的那些編程書籍,他使用 Python編寫了腳本,拉取了大量的相關數據,最終得出了這 25 本技術好書。以下是推薦結果。
  • 成都python周末班推薦給適合初學者的8本Python書籍
    Python是最友好的程式語言之一,也因此成為初學者的首選,為了幫助你更好更快的上手Python,並學會使用Python進行編程,成都達內本文我們為初學者分享了最好的Python書籍。2、《"笨辦法"學Python》本書是一本Python入門書籍,適合對計算機了解不多,沒有學過編程,但對編程感興趣的讀者學習使用。語法使用Python 2。書結構非常簡單,共包括52個習題,其中26個覆蓋了輸入/輸出、變量和函數三個主題,另外26個覆蓋了一些比較高級的話題,如條件判斷、循環、類和對象、代碼測試及項目的實現等。
  • 給零基礎入門Python學習路線的乾貨,幾本高質量的Python書籍
    成都達內小編選擇幾本高質量的Python書籍。裡面涵蓋各種各樣的書籍,其中包含適用於初學者,中級和高級程式設計師的,也有針對特別領域的。1、《像計算機科學家一樣思考Python》本書以培養讀者以計算機科學家一樣的思維方式來理解Python語言編程,這是一本實用的學習指南,適合沒有Python編程經驗的程式設計師閱讀,本書的第2版與第1版相比,做了很多更新,將程式語言從Python 2升級成Python 3豆瓣評分: 8.7 推薦指數:2、《Dive Into Python
  • 【開源專訪】鄭曄談Moco框架的前世今生以及Java編程之道
    通過使用API,開發人員可以在JUnit、JBehave等測試測試框架裡使用Moco,極大程度地降低了集成點測試的複雜度。Moco項目地址:https://github.com/dreamhead/mocoCSDN記者採訪了鄭曄,請他來詳細談談Moco框架以及他關於Java編程、敏捷開發的一些經驗。
  • 風變編程:學習編程,是為了掌握編程思維
    隨著人工智慧時代的到來,編程成為當前炙手可熱的一項技能,越來越多人開始邁入學習編程的大門。那麼,在學編程之前,你是否真正思考過——學習編程是為了什麼?是為了成為程式設計師?還是為了擁有一技之長?又或只是為了緩解職業焦慮?
  • 2020年需要學習的五大程式語言–需求,工作,職業發展
    程式語言是軟體開發人員編寫代碼的最必不可少的工具,這就是每年為什麼它是開發人員和新手程式設計師中一個令人困惑的問題,原因是他們應該選擇學習哪種語言。有數十種程式語言,因此為工作選擇理想的語言可能是一個非常棘手的決定。在選擇程式語言之前,您需要考慮很多因素,例如學習曲線,穩定性,市場工作,薪水,社區幫助以及許多其他因素。
  • Ruby 3.0發布,比 Ruby2快3倍
    幾個月前 Ruby 程式語言的創建者和首席設計師 Yukihiro Matsumoto(松本行弘)表示 Ruby 3.0 將在聖誕這天發布,現在根據官方信息
  • 十六本python入門學習書籍推薦,python入門新手必看
    隨著人工智慧時代的到來,python程式語言一步登天衝到編程排行榜第一名,因此更多朋友想轉行學習python程式語言的朋友,可以一起看一下:python入門新手必看的十六本python入門學習書籍1、python基礎教程司維所著圖書:本書包括Python程序設計的方方面面,首先從Python的安裝開始,隨後介紹了Python的基礎知識和基本概念,
  • 程式語言 Ruby 如何還能再活 25 年?
    這也許不是大家希望在編程大會上聽到的主題演講者所提出的第一個問題,但這是來自日本的,Ruby 程式語言的創始人,和藹可親的松本行弘(Yukihiro Matsumoto,被稱為 Matz),在為期兩天的年度 Bath Ruby 大會上,與 500 多位 Ruby 開發者交談時提出的第一個問題。
  • 【SaaS先鋒】專訪李哲,和一個「不安分」的程式設計師談Ruby和開源
    據我所知,大部分的人都只是用一種程式語言來完成一個軟體系統,如果這個程式語言或者基於之上的框架能讓我們的工作變得簡單、快樂,那麼這實在是一件太棒的事了!在我看來,而Ruby和Rails就是這樣的東西。最近兩三年,「去Rails」的說法越來越多,我自己也表示同意,用一些很輕的框架來解決問題,用微服務的理念去架構,在這種情況下用Ruby的DSL來描述這些場景,我想應該是非常適合的。
  • Python入門必備的書籍推薦
    但是想要扎紮實實學好基礎,書籍是不可少的一種選擇,因為書本上的知識還是跟網上的介紹方法有點不一樣的,還有書籍上有比較全面,系統的基礎知識和理論,學習思路都會講解的特別詳細。書籍作為學習的輔助工具是不可缺少的,所以建議初學者還是要準備些相關的書籍,方便自己去學習掌握好知識。