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
0
440
Railsのコードを読んでみる vol.1
Sho Nagata
July 31, 2019
Tweet
Share
More Decks by Sho Nagata
See All by Sho Nagata
30→150人のエンジニア組織拡大に伴うアジャイル文化を醸成する役割と取り組みの変化
nagata03
0
740
チームスローガンとその設計意図
nagata03
0
450
0→1フェーズのプロダクト開発のリアル
nagata03
0
290
スクラムマスターの悩みどころを赤裸々に告白します
nagata03
1
1.7k
SmartHRにおけるスクラムマスターへの道
nagata03
0
380
競技プログラミングにチャレンジ!
nagata03
0
430
1年間Rubyを使って印象的だったあれこれ
nagata03
0
460
コードを見る!書く!見てもらう!で爆速ステップアップ!!
nagata03
1
2.7k
プログラミング歴半年のRubyistがGoを学び始めて戸惑った点
nagata03
1
940
Other Decks in Programming
See All in Programming
三者三様 宣言的UI
kkagurazaka
0
360
問題の見方を変える「システム思考」超入門
panda_program
0
170
Inside of Swift Export
giginet
PRO
1
520
AI時代に必須!状況言語化スキル / ai-context-verbalization
minodriven
3
360
HTTPじゃ遅すぎる! SwitchBotを自作ハブで動かして学ぶBLE通信
occhi
0
220
AI 駆動開発におけるコミュニティと AWS CDK の価値
konokenj
5
360
予防に勝る防御なし(2025年版) - 堅牢なコードを導く様々な設計のヒント / Growing Reliable Code PHP Conference Fukuoka 2025
twada
PRO
33
10k
CSC305 Lecture 14
javiergs
PRO
0
250
Kotlinで実装するCPU/GPU 「協調的」パフォーマンス管理
matuyuhi
0
310
Functional Calisthenics in Kotlin: Kotlinで「関数型エクササイズ」を実践しよう
lagenorhynque
0
100
モテるデスク環境
mozumasu
3
1.4k
Node-REDのノードの開発・活用事例とコミュニティとの関わり(Node-RED Con Nagoya 2025)
404background
0
120
Featured
See All Featured
Building Applications with DynamoDB
mza
96
6.7k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
2.9k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.7k
Raft: Consensus for Rubyists
vanstee
140
7.2k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Docker and Python
trallard
46
3.6k
Facilitating Awesome Meetings
lara
57
6.6k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
10
920
Writing Fast Ruby
sferik
630
62k
Optimising Largest Contentful Paint
csswizardry
37
3.5k
KATA
mclloyd
PRO
32
15k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.3k
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!!