Upgrade to Pro — share decks privately, control downloads, hide ads and more …

お前はまだRubyの 型システムを知らない

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.

お前はまだRubyの 型システムを知らない

Avatar for すぎうり

すぎうり

June 09, 2026

More Decks by すぎうり

Other Decks in Programming

Transcript

  1. 自己紹介 すぎうり • Twitter:@uproad3 • Ruby歴20年 • VRChat歴7年 • 仕事:Rails |

    AWS | LT芸人 • 趣味:アーキテクト | リファクタリング | ゲーム制作 | 電子工作 • 言語:Ruby | C# | C | JS | ほかいろいろ • 技術:Terraform | Unity | Ubuntu | MySQL | RaspberryPi • 悲しきフルスタックエンジニア • 最近はClaudeをシバきまわしている • RubyKaja 2026特別賞受賞 • LTをしてくる人賞受賞 • 特に型に強い思い入れがあるわけではない
  2. 自己紹介 すぎうり • Twitter:@uproad3 • Ruby歴20年 • VRChat歴7年 • 仕事:Rails |

    AWS | LT芸人 • 趣味:アーキテクト | リファクタリング | ゲーム制作 | 電子工作 • 言語:Ruby | C# | C | JS | ほかいろいろ • 技術:Terraform | Unity | Ubuntu | MySQL | RaspberryPi • 悲しきフルスタックエンジニア • 最近はClaudeをシバきまわしている • RubyKaja 2026特別賞受賞 • LTをしてくる人賞受賞 • 特に型に強い思い入れがあるわけではない
  3. 自己紹介 すぎうり • Twitter:@uproad3 • Ruby歴20年 • VRChat歴7年 • 仕事:Rails |

    AWS | LT芸人 • 趣味:アーキテクト | リファクタリング | ゲーム制作 | 電子工作 • 言語:Ruby | C# | C | JS | ほかいろいろ • 技術:Terraform | Unity | Ubuntu | MySQL | RaspberryPi • 悲しきフルスタックエンジニア • 最近はClaudeをシバきまわしている • RubyKaja 2026特別賞受賞 • LTをしてくる人賞受賞 • 特に型に強い思い入れがあるわけではない
  4. Rubyの特徴 • 書いていて楽しい • スクリプト言語 • 純粋オブジェクト指向 • 書いていて楽しい •

    動的型付け • ダックタイピング • 書いていて楽しい • 暗黙的型変換の禁止 • Mix-in • 実行時クラス再オープン • 書いていて楽しい
  5. Rubyの特徴 • 書いていて楽しい • スクリプト言語 • 純粋オブジェクト指向 • 書いていて楽しい •

    動的型付け • ダックタイピング • 書いていて楽しい • 暗黙的型変換の禁止 • Mix-in • 実行時クラス再オープン • 書いていて楽しい
  6. Rubyの特徴 • 書いていて楽しい • スクリプト言語 • 純粋オブジェクト指向 • 書いていて楽しい •

    動的型付け • ダックタイピング • 書いていて楽しい • 暗黙的型変換の禁止 • Mix-in • 実行時クラス再オープン • 書いていて楽しい
  7. Rubyの型システム      型検査:動的      型強度:強い  ※暗黙的型変換をしない      型互換:構造的 ※ == ダックタイピング的 ⇔ 宣言的 / 継承的

         型変性:あり  ※オープンクラスやメソッド再定義など ポリモーフィック:あり  ※ダックタイピングによって解決   実行時型表現:あり  ※ Class#nameなど      型注釈:なし      型推論:なし  ※外部システムにより提供     
  8. Rubyの型システム      型検査:動的      型強度:強い  ※暗黙的型変換をしない      型互換:構造的 ※ == ダックタイピング的 ⇔ 宣言的 / 継承的

         型変性:あり  ※オープンクラスやメソッド再定義など ポリモーフィック:あり  ※ダックタイピングによって解決   実行時型表現:あり  ※ Class#nameなど      型注釈:なし      型推論:なし  ※外部システムにより提供     
  9. Rubyの型システム      型検査:動的      型強度:強い  ※暗黙的型変換をしない      型互換:構造的 ※ == ダックタイピング的 ⇔ 宣言的 / 継承的

         型変性:あり  ※オープンクラスやメソッド再定義など ポリモーフィック:あり  ※ダックタイピングによって解決   実行時型表現:あり  ※ Class#nameなど      型注釈:なし      型推論:なし  ※外部システムにより提供     
  10. Rubyの型システム      型検査:動的      型強度:強い  ※暗黙的型変換をしない      型互換:構造的 ※== ダックタイピング的 ⇔ 宣言的 / 継承的      型変性:あり  ※オープンクラスやメソッド再定義など

    ポリモーフィック:あり   ※ダックタイピングによって解決   実行時型表現:あり  ※Class#nameなど      型注釈:なし      型推論:なし  ※外部システムにより提供     
  11. Rubyの特徴 • 書いていて楽しい • スクリプト言語 • 純粋オブジェクト指向 • 書いていて楽しい •

    動的型付け • ダックタイピング • 書いていて楽しい • 暗黙的型変換の禁止 • Mix-in • 実行時クラス再オープン • 書いていて楽しい
  12. Rubyの型システム      型検査:動的      型強度:強い  ※暗黙的型変換をしない      型互換:構造的 ※== ダックタイピング的 ⇔ 宣言的 / 継承的      型変性:あり  ※オープンクラスやメソッド再定義など

    ポリモーフィック:あり   ※ダックタイピングによって解決   実行時型表現:あり  ※Class#nameなど      型注釈:なし      型推論:なし  ※外部システムにより提供