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

入社数ヶ月のnewbieが 稼働7年超のプロジェクトに 型を導入して見えた世界

Fu-ga
October 22, 2022

入社数ヶ月のnewbieが 稼働7年超のプロジェクトに 型を導入して見えた世界

Kaigi on Rails 2022 登壇資料

Fu-ga

October 22, 2022
Tweet

More Decks by Fu-ga

Other Decks in Programming

Transcript

  1. Profile ふーが @fugakkbn   2022年3月からエンジニアに(at ESM, Inc)   Railsを使用したアプリケーション開発  

    gem_rbs_collectionのコントリビューター   プロジェクトへの型導入を進めている   Kaigi on Rails Organizer
  2. ×

  3. 用語の紹介 基本的なものだけ紹介 RBS Rubyの型を書くための言 語の名称。Ruby Likeな 書き方ができるため理解 やすい。 Steep Rubyの静的型解析機。

    steep checkコマンドで Rubyファイルとrbsファ イルの型検査ができる。 ジェネレーター この発表では「プロダク トコードをもとにRBSの コードを自動生成するも の」として話します。
  4. newbie 心の叫び どこに何が定義され ているのかわからな い。モデル同士の関 連どうなってるの? 「簡単な修正」って issue 振ってもらっ たけど…どこから手

    をつければいいの? メソッドの処理が複 雑すぎて最終的にど うなるのかわから ん!!! コードジャンプ候補 に同名メソッドがた くさん出てきてどれ が正しいのかわから ない。。。
  5. newbie 心の叫び どこに何が定義され ているのかわからな い。モデル同士の関 連どうなってるの? 「簡単な修正」って issue 振ってもらっ たけど…どこから手

    をつければいいの? メソッドの処理が複 雑すぎて最終的にど うなるのかわから ん!!! コードジャンプ候補 に同名メソッドがた くさん出てきてどれ が正しいのかわから ない。。。
  6. 型生成プロセス 良いサイクルが生まれます 調査 メソッドの構造 (引数の型、返 り値の型)や使 われ方を調査す る。 型定義 調査結果をもと

    に型を定義して いく。このとき gem の型定義 の不足や誤りが 判明することも 実装の確認 起こっているエ ラーが型定義の 誤りなのかそう でないのかは、 gem の実装を 見る必要がある 反復 型定義はこれら の繰り返し。繰 り返しやってい るうちに実装を 見るのが日常に なる。 成果物 プロジェクトの 型定義はもちろ ん、場合によっ ては OSS にコ ントリビュート できることも。
  7. OSS