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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Sho Nagata
July 31, 2019
Programming
480
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Railsのコードを読んでみる vol.1
Sho Nagata
July 31, 2019
More Decks by Sho Nagata
See All by Sho Nagata
速く作れるかではなく、速く学べるか ― 学習ループを回すパイロットの途中報告
nagata03
0
560
30→150人のエンジニア組織拡大に伴うアジャイル文化を醸成する役割と取り組みの変化
nagata03
0
970
チームスローガンとその設計意図
nagata03
0
490
0→1フェーズのプロダクト開発のリアル
nagata03
0
320
スクラムマスターの悩みどころを赤裸々に告白します
nagata03
1
1.9k
SmartHRにおけるスクラムマスターへの道
nagata03
0
430
競技プログラミングにチャレンジ!
nagata03
0
470
1年間Rubyを使って印象的だったあれこれ
nagata03
0
490
コードを見る!書く!見てもらう!で爆速ステップアップ!!
nagata03
1
2.8k
Other Decks in Programming
See All in Programming
信頼性について考えてみる(SRE NEXT 2026 miniLT)
hayama17
0
210
AI駆動開発を妨げる技術的負債の解消アプローチ / ai-refactoring-approach
minodriven
17
9.3k
霧の中の代数的エフェクト
funnyycat
1
430
えっ!!コードを読まずに開発を!?
hananouchi
0
260
【やさしく解説 設計編・中級 #6】良いアーキテクチャとは ~ 一本の登り道の、行き先 ~
panda728
PRO
0
180
これからAgentCoreを触る方へトレンドはGatewayです
har1101
6
510
【SRE NEXT 2026 Lunch Session】一人目専任SREの立ち上げを加速する ― AIと進めたオンボーディングで2分を0.04秒にした話
pkshadeck
PRO
0
3.1k
【やさしく解説 設計編 #1】「ドメイン駆動」と「実装駆動」ってなに? 〜設計の考え方を、たとえ話で学ぼう〜
panda728
PRO
1
130
Prismを使った型安全な暗号化_関数型まつり2026
_fhhmm
0
150
PostgreSQL 18で考えるUUID主キー
kazuhiro1982
0
400
PHP に部分適用が来るぞ!……ところで何それ?おいしいの? #phpcon / phpcon-2026
shogogg
0
370
「正の参照」と 「負の導出」で組む ハーネスエンジニアリング
cottpan
1
150
Featured
See All Featured
How GitHub (no longer) Works
holman
316
150k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Balancing Empowerment & Direction
lara
6
1.2k
BBQ
matthewcrist
89
10k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.7k
Ethics towards AI in product and experience design
skipperchong
2
330
Into the Great Unknown - MozCon
thekraken
41
2.6k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
560
GraphQLとの向き合い方2022年版
quramy
50
15k
ラッコキーワード サービス紹介資料
rakko
1
4M
Amusing Abliteration
ianozsvald
1
240
The agentic SEO stack - context over prompts
schlessera
0
850
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!!