Kaigi on Rails _2022_ new - Kaigi on Rails | Doorkeeper https://kaigionrails.doorkeeper.jp/events/143639 での発表資料です
1Rails のコードを読むのは楽しいよtanaken0515 / GMO PEPABO inc.2022.10.09 Lightning Talks @ Kaigi on Rails _2022_ new
View Slide
2アジェンダ1. 今日伝えたいこと2. これを覚えてほしい!3. ↑を使った具体例
31. 今日伝えたいこと
4“ Rails のコードを読もう ”今日伝えたいこと読んでみると楽しいよ
5● Before○ 「Railsのコードを読んだことがない」○ 「読みたくてもどこを読めばいいか分からない」● After○ 「読みはじめることができそう!」今日のゴール今日伝えたいこと
62. これを覚えてほしい!
7from: https://docs.ruby-lang.org/ja/latest/method/Method/i/source_location.htmlMethod#source_locationこれを覚えてほしい!> ソースコードのファイル名と行番号を配列で返します。> その手続オブジェクトが rubyで定義されていない(つまりネイティブである)場合は nil を返します。
8from: https://github.com/banister/method_source#example-display-method-sourceMethod(MethodSource::MethodExtensions)#sourceこれを覚えてほしい!Rails(railties)に含まれているmethod_source gemによってMethodクラスが拡張されている戻り値は Stringそれを Object#display で標準出力している
93. 具体例
10“Rails の to_json には便利なオプションを渡せるよ - tanaken’s blog"https://tanaken0515.hatenablog.com/entry/2020/04/24/231922いまからは話すことは、このブログに書いてあります具体例
11[経緯] レビューで「to_json メソッドの only: オプションが便利だよ」と言われた具体例←必要な attributes だけに絞れて便利←すべての attributes が対象になっちゃう
12● https://api.rubyonrails.org/ を “to_json” で検索してみる● ActiveStorage::Filename#to_json だけヒット○ いやこれじゃないでしょ● あたし、“to_json” のこと、なにも知らなかった...(急に不安になってきた)[疑問] only: 以外のオプションもあるの??具体例今回の to_json がどこで定義されていて、どんなオプションを指定できるのか知りたい!
13[解決策] Method#source_location と Method#source を使おう!具体例
14● to_json は ActiveSupport::ToJsonWithActiveSupportEncoder のメソッド● to_json には as_json (ActiveModel::Serializers::JSON) のオプションが渡せる● as_json のオプションはとても便利[結果] 調べてわかったこと(調査過程は割愛)具体例to_json のことがわかった!安心して使える!!詳しい調査過程はブログをご覧くださいhttps://tanaken0515.hatenablog.com/entry/2020/04/24/231922
15まとめ
16● Rails のコードを読むときはこの2つが便利○ Module#source_location○ Method(MethodSource::MethodExtensions)#source● Rails のコードを読めると○ 謎が解けて楽しい○ 安心してコードが書ける今日お話ししたことまとめ
17“ Rails のコードを読もう ”まとめご静聴ありがとうございましたEnjoy Rails!!
SUZURI事業部 プロダクトチーム エンジニアリングリード2018年 中途入社18このLTは tanaken0515 がお送りしました田中 健太郎 Kentaro Tanaka● 犬とRubyが好きなソフトウェアエンジニアです● インターネット上ではたなけん(@tanaken0515)という名前で活動しています● 愛犬の名前は「ラテ」です