20221203
Ruby/Rails のコードリーディングのベストプラティクス
grep
rails console で $ を使う
動かした方がわかりやすい
rails template を使って動作確認環境を一発で作る
社のリポジトリとかだと依存が多くて使いにくい
rbs どう
ひとまずやりたいことは Rails アプリケーションで動くこと
型パズルを頑張る気はない
TSは型を表すための型関数がいっぱいある
ユーザーにめんどくさいことをさせたくない、開発もしたくない
Matz が見ている世界は型を書かずにいい感じになる世界
30年後ならあり得る、10年後でも難しい気が...
sorbet と迷ってる?
なぜ型をかきたい?
マイクロサービスとかで何が返ってくるかをわかりたい
エディタと一番距離が近いテスト。このメソッドになにが返ってくるかわかるぐらいのコードベースならいらないと思う
最近は型がある言語を書く人が多いので、みんな無いと怖いというのがある
バックエンドは型がなくてもなんとかなる
Rails がなんとかなる
View には
フロントエンドはあまりクラスを作らないので
モチベがなかったら使わなくても良いと思います
activerecord
merge の挙動が変わった
元々は and ではないらしい
Hash のマージ
load_async
直列から並列に変えれる
rdb のコネクションを食い潰さないように
scaffold で作られたような rails アプリは
Add ActiveRecord::QueryMethods#in_order_of.
invert_where
絶対使いたくない
default_scope と使ったら地獄
Add ActiveRecord::QueryLogs.
Rails が用意したMVC以外のレイヤー
moneyforward は app 下に20個
8年前のコードをフォークして開発している
良い設計を作ったぞ、をやり切れ
極力使わない、Form ぐらいかな。
MVC以外を使うのがむずい、チーム全体で浸透することはない。
増やしてもコストがある
User がする作業が多い
module をめっちゃ include する
module ごとにドメイン境界が分かれている
サービス層、複数のモデルを使って何かをする
サービスを絶対に使わないといけないという流れになってくる。それは良くない