Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Railsのコードを読んでみる vol.1
Search
Sho Nagata
July 31, 2019
Programming
460
0
Share
Railsのコードを読んでみる vol.1
Sho Nagata
July 31, 2019
More Decks by Sho Nagata
See All by Sho Nagata
速く作れるかではなく、速く学べるか ― 学習ループを回すパイロットの途中報告
nagata03
0
120
30→150人のエンジニア組織拡大に伴うアジャイル文化を醸成する役割と取り組みの変化
nagata03
0
870
チームスローガンとその設計意図
nagata03
0
470
0→1フェーズのプロダクト開発のリアル
nagata03
0
310
スクラムマスターの悩みどころを赤裸々に告白します
nagata03
1
1.8k
SmartHRにおけるスクラムマスターへの道
nagata03
0
410
競技プログラミングにチャレンジ!
nagata03
0
450
1年間Rubyを使って印象的だったあれこれ
nagata03
0
480
コードを見る!書く!見てもらう!で爆速ステップアップ!!
nagata03
1
2.8k
Other Decks in Programming
See All in Programming
AWSコミュニティ活動は顧客のクラウド推進に効くのか / Do AWS community activities help customers adopt the cloud?
seike460
PRO
0
150
(Re)make Regexp in Ruby: Democratizing internals for the JIT
makenowjust
3
880
The Less-Told Story of Socket Timeouts
coe401_
3
780
TiDBのアーキテクチャから学ぶ分散システム入門 〜MySQL互換のNewSQLは何を解決するのか〜 / tidb-architecture-study
dznbk
1
200
Claude CodeでETLジョブ実行テストを自動化してみた
yoshikikasama
0
1k
AIエージェントで業務改善してみた
taku271
0
550
의존성 주입과 모듈화
fornewid
0
150
GoogleCloudとterraform完全に理解した
terisuke
1
160
GitHubCopilotCLIをはじめよう.pdf
htkym
0
290
属人化しないコード品質の作り方_2026.04.07.pdf
muraaano
0
270
From Formal Specification to Property Based Test
ohbarye
0
470
[RubyKaigi 2026] Require Hooks
palkan
1
250
Featured
See All Featured
Mind Mapping
helmedeiros
PRO
1
170
YesSQL, Process and Tooling at Scale
rocio
174
15k
Amusing Abliteration
ianozsvald
1
160
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.7k
Accessibility Awareness
sabderemane
1
110
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
280
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
70
39k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.2k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
160
What does AI have to do with Human Rights?
axbom
PRO
1
2.1k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Transcript
Railsのコードリーディング vol.1 2019.7.31 (Wed) Ebisu.rb#24 twitter: @s_naga03
Who am I? • Sho Nagata • Backend Engineer@カカクコム •
食べログのマイクロサービス化を推進中 • Ruby / Rails(歴は10ヶ月) ˏs_naga03 Sho Nagata nagata03
Railsのコード読んだことありますか?
今回チャレンジしたのは…
ActiveRecordの「バリデーション機能」
実はまだ読みきれていない…
今日は、Railsのコードを読んでみてわかったことや発見したことを お伝えします
Validation • オブジェクトをDBに保存する前にオブジェクトの状態を検証
Validation • 検証内容の定義例
Validation • 検証のトリガ • create, create!, save, save!, update, update!
• valid?, invalid?(DBに保存せず検証だけしたい時) → valid?メソッドから追ってみる
active_record/varidations.rb active_model/varidations.rb
active_model/varidations.rb active_support/callbacks.rb ʁ To Be Continued…
今回、Railsのコードリーディングを通してわかったことや発見したこと
その1:黒魔術は避けられない
その2:superよく使われる
その3:GitHubのコードジャンプ便利
その4:Methodクラスのメソッド便利
Method#source_location
Method#super_method
その5:初級レベルの人間が1人で読み解くのはキツい
まとめ • Railsのコードリーディング、ナメてかかると痛い目にあった • 業務で見るコードとは一味違うので、面白くもあり苦しくもある • コードを読み解く力は確実につく
今後 • バリデーション機能の実装を読み解く! • 仲間を集めて一緒に挑みたい • OSSにコミットしたい
Thank you!!