2015 年 Ruby 圈發生了不少有趣的事,讓咱們跟隨 Glenn Goodrich 來回顧一下 15 年 Ruby 的年度標誌性事件。javascript
2015 將要結束,這一年對於 Ruby 來講很是重要。若是回顧一下本年度的標誌性事件及其相關故事,必定會妙不可言。有點相似敏捷型開發流程的回顧,筆者將把 2015 年分爲一系列的短跑衝刺,從中查看咱們的收穫。html
爲順利完成這一構想,首先須要定義什麼是「標誌性事件」。其實,幾乎每一年,Ruby 都在如下主要領域/標誌性事件中要求社區有所突破,從而在該衝刺階段/年份取得成果:前端
改善語言java
壯大用戶社區react
緊跟編程界的步伐git
以上即是筆者定義的「標誌性事件」。爲了衡量 Ruby 社區的成果,筆者將再次瀏覽涉及以上主題的博客、文章以及視頻。確定會有遺漏,但若是十全十美,那還要評論作什麼呢?github
最後,要寫出一篇真正有價值的回顧,也須要探討一下不足,所以本文也會涉及這一點,力臻完美。不過估計一些機敏的讀者會想補充更多內容。web
Ruby 2.2早在一年前就已發佈,不過本文會將其劃爲本年度的積壓任務。該版本添加了許多新內容,具體以下:spring
加入超級方法元數據使得調試過程更加簡單。docker
Symbol GC 大大改善了 Ruby 垃圾收集器的性能,多是多年以來該語言得到的最佳改進。
對了,GC 的另一項改進是遞增GC,這有助於在垃圾收集時保持穩健的性能。
還有一些不得不提的小變化。
Ruby 2.3.0 於聖誕節發佈,其中包括如下「好禮」:
可經過CLI選項凍結全部字符串,以便了解爲了處理代碼中的字符串須要作多少工做。
若是你沒有據說過安全導航運算符,那你活得恐怕有些閉塞了。
全部版本都包含漏洞修補,可是該漏洞聽起來實在可怕,這篇文章詳細說明了如何修補這個漏洞,寫得很不錯。
有時,改善語言意味着告別舊版本。所以Ruby中止支持1.9.3 版本了。晚安,1.9.3,咱們會記住你的。
Ruby解釋器中最受期待的同時也是最大改進的是JRuby 9000:
這兒是版本發佈公告,其中列舉了一些主要的變化。
JRuby EU主題視頻十分值得一看,從中能瞭解到 JRuby 9000 有多強大。給 Charles Nutter 和這個團隊點贊。
另外一個改善語言的方法就是,多多學習新鮮且有用的東西。好比下面這些:
Reddit上有一個關於你最愛的 Ruby 小技巧的提問,收到了無數回覆。
下面的整個站點都是超好用的 Ruby 技巧。
對正規表達式的瞭解,永遠都不嫌多,對吧?
關於這一點,2015 年對於 Ruby 來講,充滿了有關性能提高的深度好文:
Richard Scheeman (今年的 Ruby 博主 MVP 非他莫屬)寫了兩篇很是好的堆轉儲系列文章。這是第一篇和第二篇。
這篇文章關於如何運用 Ruby調試內存泄漏。
有沒有折騰過 Ruby 垃圾回收器的設置?筆者也沒有,或許能夠試試。
最後,若是一種語言向其使用者提供多種選項,那麼它就上升了一個臺階。RSpec 與 Minitest 的競爭即是絕好的例證。
若是你的默認工具爲 RSpec,那下次能夠試試 Minitest,可能會有驚喜哦!
若是想要實現最佳選擇,這篇文章可能有用。
好吧,或許「年度大戰」的說法有點誇張,但筆者確實認爲本年度 Minitest 和 RSpec 的對決頗有看點。
和 Ruby 2.2 相同,Rails 4.2 也是在去年12月底左右發佈的。筆者也將其劃爲 2015 年的積壓任務,由於直到今年,才收到針對該版本的反饋。如下是該版本的新變化:
固然,要想了解其變化,最好的方法是參閱發佈說明,你會看到 ActiveJob、異步郵件和充分記錄等內容。
ActiveJob 很是好用,大大簡化了隊列系統的使用。
發送異步郵件這一常見任務變得更加易於測試和實現。
隨着後端 Web 佈局的變化,Rails 也隨之變化。下面幾篇文章可以使變化過程變得更易理解:
安全一直都是致使 Rails 出現問題的主要因素。對此,也有一些改進:
這篇文章闡述瞭如何確保安全配置 Rails 。
瞭解最多見的攻擊形式,好比 CSRF 和 Rails,可以大大提高工做效率。
固然,4.2 有數次修正發佈,大多都是關於安全和漏洞修補的。欲知詳情,請參閱各個版本。
固然,還有大量與Rails性能相關的文章:
Collective Idea 博客中有關優化 Rails 內存使用的 4 篇系列文章。
不過,在此以前,最好瞭解一下你的 Rails 性能。
對性能有所瞭解以後,能夠參閱 ActiveRecord 優化,這兩篇文章出自另外一位 MVP 候選人,Justin Weiss。
Ruby 的主要變化並未出如今 Rails 4.2.x 中,但筆者認爲,5.0 在 4.2 的基礎上會有很是明顯的變化。
理所固然的是,全新的基於 Ruby 的非 Rails 開發框架和代碼庫可以改善 Ruby語言。如下是 2015 年出現的一些新內容:
這一年對 Lotus 來講很是重要,若是想嘗試 Rails 之外的面向對象的優秀 Web 開發框架,能夠試試 Lotus。
Opal 也是 2015 年中成績斐然的一個庫,做爲從 Ruby 到 Javascript 的編譯器,很是受歡迎。
Volt 或許是站在 Opal 肩膀上的 Web 開發框架,其利用 Opal 幫助開發者編寫前端和後端的 Ruby 程序。
另一個新的 Web 開發框架 Pakyow 致力於使實時應用更加好用,固然也值得參考。
任何一門想要發展壯大的語言都須要使愈來愈多的人知道這門語言。聽起來很難吧?下面的文章可幫助那些不瞭解 Ruby 的人入門:
Kingsley Silas 寫了一篇 Ruby 入門寶典。
Nihau Sahu 在 SitePoint 上發表了讓新人瞭解 Ruby 羣體。
技術多樣性已然成爲很是熱門的話題,這也合情合理。Rails Girls 和 RailsBridge 都專一於鼓勵 Ruby 多樣性。本年度圍繞多樣性的故事有:
Stephanie Burns 描繪了她在 Ruby 代碼營(code camp)中的經歷。代碼營愈來愈多,其形式也愈加符合 Ruby 社區的需求。
相似於 Makers 學院的組織爲其女性學員提供獎學金。
筆者以爲 Hello Ruby 很是棒,這是一本兒童書,能引發小孩子對寫代碼的興趣。真的,能夠考慮買一本送給小朋友。
總之,Ruby 的多樣性發展在 2015 年可謂可圈可點。但願這一主題在 2016 年能得到更多積極的支持。
任何一門語言要想在當前形勢中保持活躍,都必須跟隨語言以外的技術不斷變化,甚至實現整合。從根本上來講,Ruby 知足這一點,由於它默認將兩個大的解釋程序(MRI和JRuby)接入外部運行。如下爲 2015 年一些重要的科技話題,並就 Ruby 如何融入技術進行了解釋。
集裝箱化在2015年底風行一時,如下是有關 Ruby 和 Docker 的一些文章:
閱讀來自 Travis Reeder 的這篇文章,可爲 Ruby 應用建立最小的 Docker 鏡像。
使用 Docker 測試 Rails 會很是簡單,Marko Locker 的這篇文章寫得很清楚。
Nick Gauthier 闡述瞭如何使用 Docker 並行開展 Rails 測試。
真的,在2015年,一不留神就能看見10篇關於Docker的文章。若是尚未學習 Docker,那就趕忙學吧,它名副其實。
你在使用 Slack 嗎?固然!由於每一個人都在用。Slack 很好用,其價值能趕得上大多數發達國家的 GDP。Ruby 和 Slack 相結合很是好用,看看下面的文章就知道:
利用 Rails 建立一項 Slack 服務吧,很是有意思。
或者用 Sinatra 建立也行。Slack 適用於各類開發框架。
這篇文章提到了全部利用 Rails 建立 Slack 服務所需完成的工做。
Ruby 開發者總在尋找能夠利用或學習的其餘語言,以期讓開發過程變得更加愉悅。下面是一些關於尋找編程架構的小故事:
Parse 從 Ruby 轉爲 Go ,變得更加健全了。
今年有關 Rust 的報道可謂不可勝數,Robert Qualls 的這篇文章展現瞭如何經過 Ruby 使用 Rust。
不過,Ruby 開發者的新歡必定是 Elixir。閱讀本文,看看爲何有人堅信 Elixir 是將來之星。
最後,其餘引發躁動的 Ruby 相關文章:
React 是目前的 javascript 開發框架。經過這篇文章學習如何經過 Rails 使用它吧。
若是你用 Ruby 寫 Web 應用程序,又不是 David Heinemeier Hansson(Ruby on Rails 創始人),那麼微服務對你而言就是全新的概念。這篇文章闡述瞭如何將 Rails 應用設計打造爲微服務。
每篇回顧都應花一點篇幅講講不足。作一個消極者是很是容易的,因此這一部分本能夠很長,不過筆者只會列出如下幾條:
人們對於 Rails 開發工做流中 Spring 的加入譭譽參半。許多人和這位做者想的同樣,徹底放棄了 Spring。
Adam Hawkins 提到了 Ruby 須要改進的大量問題,而且展現了一幅高要求的產品規劃圖。
筆者以前也提到過微服務,它受到了大量的反對。Nick Sutterer(許多超棒的程序和Trailblazer 開發框架的開發者)寫的這篇文章就說明了如何在被微服務折騰以前作好設計工做。
最後,Refinements 怎麼樣了?有人用嗎?MVP 候選人 Starr Horne 就會用,可是筆者並不以爲不少人在用 Refinements。咱們應該用嗎?
2015 年,咱們瞭解到,宕機簡直是噩夢。的確,宕機真的是太恐怖了。
本文確定遺漏了 Ruby 領域中比較不起眼的一些內容,請在評論區告知。
原文地址:http://www.sitepoint.com/a-retrospective-on-ruby-in-2015/
Cloud Insight 集監控、管理、計算、協做、可視化於一身,幫助全部 IT 公司,減小在系統監控上的人力和時間成本投入,讓運維工做更加高效、簡單。
本文系國內 ITOM 行業領軍企業 OneAPM 工程師編譯整理。想閱讀更多技術文章,請訪問 OneAPM 官方技術博客。
本文轉自 OneAPM 官方博客