再一次熱血 - RubyKaigi 2023
這幾年因為疫情的關係,大家都有不少生活上的改變,也因此我有四年沒有辦法親自到日本參加 RubyKaigi 這個對 Ruby 工程師來說最盛大的研討會。
終於在今年,我到日本重新感受了一次 Ruby 社群的活力。
這幾年因為疫情的關係,大家都有不少生活上的改變,也因此我有四年沒有辦法親自到日本參加 RubyKaigi 這個對 Ruby 工程師來說最盛大的研討會。
終於在今年,我到日本重新感受了一次 Ruby 社群的活力。
有段時間沒有寫 Domain-Driven Design(以下簡稱 DDD)的主題,最近剛好跟一些朋友討論以及做了不少實驗,覺得可以針對這些題目再一次討論在 Ruby on Rails 中導入會遇到的問題。
最近要實作一個功能,大致上是搜尋一群使用者符合條件的資料,然後回傳這筆資料下的另一個符合條件的資料,如果使用一般的方式來做,會需要分開撰寫查詢,並且多次的查詢,然而我們可以利用 Ruby 的語言特性來簡化這段程式。
大多數使用過 Ruby 的工程師都知道 Ruby 有一個特別的語言特性叫做 Mixin(混合)可以透過定義一個 Module(模組)然後被其他類別引用,如果從 DCI(Data Context Interaction)的角度來看,其實是一種脈絡的表現。
最近在實作一個會員集點功能的時候意外發現很適合作為「領域事件(Domain Event)」的例子,在很多情況下其實不容易去描述這個概念,然而這個例子倒是很好的反應這個概念,以及 Rails 的特性所產生的變化。
之前在查資料時,在 Twitter 上看到 DHH 對 DCI (Data Context Interaction) 的看法同時上週的我對 Domain-Driven Design 的理解(2022 年)這篇文章也提到了 DDD 跟 DCI 不互斥,而且能夠改善某些設計上的問題。
有一天在 Facebook 的社團看到有人提到,朋友推薦他多嘗試看看不同的語言,卻不知道該怎麼下手去嘗試。剛好我自己蠻喜歡嘗試各種程式語言,這篇文章會簡單分享該怎麼選擇程式語言。
前幾天在 Facebook 社團 Ruby on Rails 新手村看到有人提問關於 Mock 和 Stub 的問題,其實問題本身很簡單,不過也讓我發現雖然我們都知道該寫「測試」但很多時候是不清楚怎麼撰寫的,這篇文章會先來分享一下我對 Mock 的看法,更詳細的 RSpec 測試系列請期待明年的「優雅的 RSpec 測試」連載。
在Ruby on Rails 容器化最佳指南(一)我們已經大致說明了製作容器的目的、用途,這篇文章會跟大家介紹如何去撰寫 Production-ready(正式環境)可用的容器鏡像。
如果不想花太多時間在了解細節的技巧上,可以參考如何在幾分鐘內容器化 Rails 專案這篇文章,裡面有有針對容器化所製作的 Ruby Gem 可以快速解決這方面的問題。
在不該使用 Ruby 的 Class Variable 理由這篇文章中有大概提到 Class Variable 的意義在 Ruby 裡面跟我們在其他語言認知到的 static
關鍵字是不同的,那麼實際上到底差在哪裡呢?
在閱讀 mruby 原始碼之前我也想不通,然而在使用不同的技巧組合驗證特性之後,終於理解了 mruby 實作中對 RClass
(Class 物件資料)裡面所定義的 iv_tbl
(Instance Varable 對照表)的意義。