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
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Sho Nagata
July 31, 2019
Programming
450
0
Share
Railsのコードを読んでみる vol.1
Sho Nagata
July 31, 2019
More Decks by Sho Nagata
See All by Sho Nagata
30→150人のエンジニア組織拡大に伴うアジャイル文化を醸成する役割と取り組みの変化
nagata03
0
860
チームスローガンとその設計意図
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.7k
プログラミング歴半年のRubyistがGoを学び始めて戸惑った点
nagata03
1
960
Other Decks in Programming
See All in Programming
Vibe하게 만드는 Flutter GenUI App With ADK , 박제창, BWAI Incheon 2026
itsmedreamwalker
0
540
Linux Kernelの1文字のミスで 権限昇格ができた話
rqda
0
2.3k
それはエンジニアリングの糧である:AI開発のためにAIのOSSを開発する現場より / It serves as fuel for engineering: insights from the field of developing open-source AI for AI development.
nrslib
1
830
RSAが破られる前に知っておきたい 耐量子計算機暗号(PQC)入門 / Intro to PQC: Preparing for the Post-RSA Era
mackey0225
3
120
安いハードウェアでVulkan
fadis
1
920
Kubernetes上でAgentを動かすための最新動向と押さえるべき概念まとめ
sotamaki0421
3
430
Coding as Prompting Since 2025
ragingwind
0
750
VueエンジニアがReactを触って感じた_設計の違い
koukimiura
0
160
Spec Driven Development: The End Of Vibe Coding | DevLand 2026
danielsogl
PRO
0
110
条件判定に名前、つけてますか? #phperkaigi #c
77web
2
970
PHP でエミュレータを自作して Ubuntu を動かそう
m3m0r7
PRO
2
170
感情を設計する
ichimichi
5
1.2k
Featured
See All Featured
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Ethics towards AI in product and experience design
skipperchong
2
250
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
260
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
500
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
250
The agentic SEO stack - context over prompts
schlessera
0
730
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
170
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
110
A better future with KSS
kneath
240
18k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.7k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
120
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
23k
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!!