RubyElixirConfTW 2018 會後感想
Ruby Conference Taiwan 到今年已經是第七年了,印象中我大概是從 2013 年左右開始參加了,應該也有四五次。今年也加入了 Elixir 一起合辦,因為是五倍紅寶石的員工,所以也當了兩年的工作人員。
那麼,就看看今年有什麼新鮮的事情吧!
Ruby Conference Taiwan 到今年已經是第七年了,印象中我大概是從 2013 年左右開始參加了,應該也有四五次。今年也加入了 Elixir 一起合辦,因為是五倍紅寶石的員工,所以也當了兩年的工作人員。
那麼,就看看今年有什麼新鮮的事情吧!
上一篇文章已經討論過關於 Ruby 中的類別是怎樣運作的,這篇文章則會來討論如何拓展 Ruby 類別。
大部分的人寫 Ruby 有很大的原因是因為 Rails 但是上面像是 has_many 跟 before_action 這些可以直接在類別上做的事情,很明顯不是 Ruby 內建的,到底是怎麼運作的呢?
前幾天的晚上朋友在 Facebook 上問了一個問題。
1raise HTTPError, 'Not Found'和
1raise HTTPError.new('Not Found')哪個比較快?也因為這樣,我們意外的發現 Ruby 對上面兩段程式碼的定義上其實是不太一樣的。
週末看到一篇 Stripe 工程師所寫的文章,是一篇關於 Idempotency Key (幂等鍵)的設計機制。因為是一篇非常棒的文章,而且裡面的概念除了可以應用在 API 設計之外,很多程式設計上需要解決的問題都可以透過這個概念來處理。
原文非常的長而且很詳細,這篇文章只會做簡單的重點整理。
有興趣的話可以打開原文來讀,是一篇很有用的文章。
作者是很厲害的工程師,部落格上的文章都是非常精實的技術文。
以前還在讀書的時候,常常會思考所謂的「自由」是什麼,想著以後一定要過著自由的生活。不過現實就是到了社會,依舊還是有許多限制讓你無法自由自在。
不過,在 Ruby 中的類別卻是非常自由的。
有稍微接觸過 Ruby 的人應該都知道幾個特性:
在這幾個月,感覺到自己好像快要突破這一階段的瓶頸,所以做了一些調整試試看能不能順利的突破,同時也到了每年公司參與 RubyKaigi 的時期。
要說的話,今年的 RubyKaigi 整體的方向對我來說很不一樣,因為有不少關於 RubyKaigi 底層的議程被提出來,這在台灣舉辦研討會需要照顧到不同客群的人總會需要有一些取捨。
不過,對日本——Ruby 的發源地來說,因為有不同類型的研討會互補,反而可以在不同的研討會上,著重不同的情境來討論。
八月份退伍後,馬上就加入了五倍紅寶石。而隨之而來的,剛好是在九月份為期九天的員工旅遊,一個非常充實的員工旅遊。
實際上,我們只有三天左右在日本遊玩。原本的行程會穿插著與日本 Ruby 社群的交流,以及三天的 RubyKaigi 行程。
這次的旅遊算是增長了不少見識,讓我想到高中快畢業時第一次知道了 COSCUP 之後瘋狂地參加各種語言的研討會,幾乎一年每個月都在跑研討會。印象沒錯的話,大概是 2013 年才參與到 RubyConf 也因為參加了 RubyConf 的活動,退伍前後蠻多工作機會都是來自 Ruby 圈的,算是整個程式經歷中給我幫助最多的社群了吧。
前一篇文章討論了關於 C# 執行一段 Ruby 程式碼並且取得執行結果(字串)的做法。 不過,光是這樣在 C# 使用 mruby 的意義並不大,我們需要結合 Ruby 的 DSL 特性,讓自製的 RPG Maker 可以更加簡單的被用於製作遊戲(最終目的)
也因此,我們需要能夠讓 C# 中的一些 API 可以在 Ruby 中被呼叫以及使用。 那麼,能夠從 C# 定義 Ruby 的 Module / Class 和 Method 就非常的重要,因為如果無法這樣做,那麼就無法讓 Ruby 執行 C# 的程式碼。
最近看到朋友提起 RPG Maker 又勾起我在 Mac 上使用 RPG Maker 的野心,雖然之前用 Wine 順利跑了起來,不過既然能寫 Ruby 當然要用各種奇怪的方式去玩弄。
結果,當我發現內建的 Library 要做到我想做的事情很困難的時候,腦抽的我決定自己做一個!
不過,這年頭不跨平台其實還蠻空虛的,所以就從能夠跨平台來做選擇,至於為何會選 Mono 和 C# 大概就是受到 Unity3D 跟 Unreal Engine 4 兩個目前都是非常有名的遊戲引擎影響吧! (上述兩個引擎都有使用 Mono 來協助實踐跨平台的功能)