放輕鬆 Rails 共讀會 (2021/11/23)

Ruby on Rails 真新手區

,

參考書籍

https://railsbook.tw/

章節

08 類別與模組
09 使用套件(Gem)讓開發更有效率

心得整理

今天終於又推進了兩個章節。而且有了共讀同好的幫助,我覺得學習到了幾個很重大,平常沒太認真思考的概念。

  • 類別 (class) 和模組 (module) 差別

    • class
    • 可以 new
    • 可以繼承
    • module
      • 不可以 new
      • 不可以繼承
      • 但是可以 include 延伸原本功能,不需要類似繼承方式,一次繼承一大包功能
      • 很方便用來 整理程式碼
    • 摘要教材內容
    • 要用繼承還是要用模組? > 如果你發現你要做的這個功能,它可能在很多不同體系的類別裡都會用得到,那你可以考慮把功能寫在模組裡,需要的時候再 include 進來即可。但如果你還是不知道到底類別跟模組有什麼差別,我再舉二個例子。
  • Ruby - Class 融合 (Monkey Patch)

    但在 Ruby 裡,如果遇到兩個一樣名字的類別,其實並不會「覆蓋」,而是會進行「融合」

    • 這個是我覺得最興奮的概念,Rails (參考連結) 的一些特殊功能的延伸,就是使用這種概念。
    • Ruby 使用 Monkey Patch 的建議 ( 參考連結 )

Gem 的使用練習

書中分頁 gem

  • kaminari

目前比較多人使用的分頁 gem (建議)

使用哪個 Gem

https://www.ruby-toolbox.com/

  1. 排行榜 (參考連結)
    1638100385-gem_category.png

  2. 開源專案的維護健康度
    1638100385-gem_health.png

  3. 近期的更新頻率
    1638100385-gem_recently.png

  4. 針對 Rails新版本的支援程度

    • 文件內有描述 1638100761-gem_comp.png
    • 或者從自動化測試功能找找蛛絲馬跡 1638100760-gem_ci.png
  5. 文件完整性

    • 文件越難閱讀,願意使用的人數一定不會多。
  6. 再慎重一點

    • Github 的 issues 會不會太多 (都沒人在解)
    • Youtube 的教學會不會太少