Slide 1

Slide 1 text

Railsのコードリーディング vol.1 2019.7.31 (Wed) Ebisu.rb#24 twitter: @s_naga03

Slide 2

Slide 2 text

Who am I? • Sho Nagata • Backend Engineer@カカクコム • 食べログのマイクロサービス化を推進中 • Ruby / Rails(歴は10ヶ月) ˏs_naga03 Sho Nagata nagata03

Slide 3

Slide 3 text

Railsのコード読んだことありますか?

Slide 4

Slide 4 text

今回チャレンジしたのは…

Slide 5

Slide 5 text

ActiveRecordの「バリデーション機能」

Slide 6

Slide 6 text

実はまだ読みきれていない…

Slide 7

Slide 7 text

今日は、Railsのコードを読んでみてわかったことや発見したことを お伝えします

Slide 8

Slide 8 text

Validation • オブジェクトをDBに保存する前にオブジェクトの状態を検証

Slide 9

Slide 9 text

Validation • 検証内容の定義例

Slide 10

Slide 10 text

Validation • 検証のトリガ • create, create!, save, save!, update, update! • valid?, invalid?(DBに保存せず検証だけしたい時) → valid?メソッドから追ってみる

Slide 11

Slide 11 text

active_record/varidations.rb active_model/varidations.rb

Slide 12

Slide 12 text

active_model/varidations.rb active_support/callbacks.rb ʁ To Be Continued…

Slide 13

Slide 13 text

今回、Railsのコードリーディングを通してわかったことや発見したこと

Slide 14

Slide 14 text

その1:黒魔術は避けられない

Slide 15

Slide 15 text

その2:superよく使われる

Slide 16

Slide 16 text

その3:GitHubのコードジャンプ便利

Slide 17

Slide 17 text

その4:Methodクラスのメソッド便利

Slide 18

Slide 18 text

Method#source_location

Slide 19

Slide 19 text

Method#super_method

Slide 20

Slide 20 text

その5:初級レベルの人間が1人で読み解くのはキツい

Slide 21

Slide 21 text

まとめ • Railsのコードリーディング、ナメてかかると痛い目にあった • 業務で見るコードとは一味違うので、面白くもあり苦しくもある • コードを読み解く力は確実につく

Slide 22

Slide 22 text

今後 • バリデーション機能の実装を読み解く! • 仲間を集めて一緒に挑みたい • OSSにコミットしたい

Slide 23

Slide 23 text

Thank you!!