推書 | Ruby Under a Microscope

RYAN
Ryan on Ruby/Rails
Published in
3 min readAug 12, 2017

這本書適合給非初學、每天都在使用 Ruby 的開發者。

這篇只是簡短的翻譯大綱,小弟目前只啃到了第五章。從 Ruby 來探討編譯器,真的非常有趣,大多數的程式語言也是透過差不多的流程去轉化執行你的程式,如果你有其他語言的開發經驗,應該會有不少有趣的感受。

看完有時間再來針對印象深刻的章節寫文章~(應該就是沒時間了 XD)

大綱

一、Tokenization and Parsing

Ruby 如何 parse 你的程式碼? 這是電腦科學其中一個最迷人的地方。電腦語言為什麼能夠理解你寫的程式嗎? 它到底是由什麼組成的?

二、Compilation

Ruby 的編譯器如何在執行之前,將你的程式碼轉成不同語言。

三、How Ruby executes your code

看虛擬機如何執行你的程式。機器裡面有什麼東西? 為什麼它能夠完成任務? 我們將深入虛擬機去了解。

四、Control stuctures and method dispatch

繼續虛擬機的部分。看 Ruby 如何實作控制語法 (if..else.., while..end loop). 我們也將探討 Ruby 如何實作呼叫方法

五、Objects and Classes

討論 Ruby Object 與 Class 的應用。Object 跟 Class 的關係。我們可以在 Ruby Object 中找到什麼?

六、Method lookup and constant lookup

實驗模組 (Module) 與類別 Class 的關係,你將學到 Ruby 是怎麼在你的程式碼中找到 Method 和 Constant

七、The Hash Table: the workhorse of Ruby internals

探討 Ruby 在 Hash Table 的實作。當 Hash Table 出現時,MRI 在大量內部的 data 使用 hash table,不是只為了 Ruby 的 hash object

八、How Ruby borrowed a decades-old idea from LISP

揭露了 Ruby 大部分有用而且優雅的 feature,主要是建立於 LISP 的發展基礎上。

九、Metaprogramming

解決 Ruby 開發者其中一個很大的痛點,在了解 Ruby metaprogramming 之前,你會先學到如何使用它

十、JRuby: Ruby on the JVM

介紹 JRuby—用 Java 實作的 Ruby,你將會學到 JRuby 如何用 JVM 去有效地執行你的 Ruby 程式碼。

十一、RUBINIUS: Ruby implemented with Ruby

最有趣且有創意的其中一個實作,你將會學到如何修改 Rubinius 的 Ruby code,去看 Ruby method 是如何執行

十二、Garbage collection in MRI, JRuby and RUBINIUS

總結一下 GC,電腦科學內其中一門最神秘、最容易產生疑惑的課題。你將學到 Rubinius 和 JRuby 如何去使用來自 MRI 的演算法,去進行不同實作的 GC。

--

--

RYAN
Ryan on Ruby/Rails

Life Hacker.Engineering.Ramen Gluttony.The King of 散策