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
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Sho Nagata
July 31, 2019
Programming
0
450
Railsのコードを読んでみる vol.1
Sho Nagata
July 31, 2019
Tweet
Share
More Decks by Sho Nagata
See All by Sho Nagata
30→150人のエンジニア組織拡大に伴うアジャイル文化を醸成する役割と取り組みの変化
nagata03
0
820
チームスローガンとその設計意図
nagata03
0
470
0→1フェーズのプロダクト開発のリアル
nagata03
0
300
スクラムマスターの悩みどころを赤裸々に告白します
nagata03
1
1.8k
SmartHRにおけるスクラムマスターへの道
nagata03
0
400
競技プログラミングにチャレンジ!
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
2026/02/04 AIキャラクター人格の実装論 口 調の模倣から、コンテキスト制御による 『思想』と『行動』の創発へ
sr2mg4
0
660
go directiveを最新にしすぎないで欲しい話──あるいは、Go 1.26からgo mod initで作られるgo directiveの値が変わる話 / Go 1.26 リリースパーティ
arthur1
2
430
Claude Code の Skill で複雑な既存仕様をすっきり整理しよう
yuichirokato
1
220
株式会社 Sun terras カンパニーデック
sunterras
0
1.9k
TROCCOで実現するkintone+BigQueryによるオペレーション改善
ssxota
0
120
社内規程RAGの精度を73.3% → 100%に改善した話
oharu121
12
7.3k
LangChain4jとは一味違うLangChain4j-CDI
kazumura
1
130
猫の手も借りたい!ので AIエージェント猫を作って社内に放した話 Claude Code × Container Lambda の Slack Bot "DevNeko"
naramomi7
0
230
AHC061解説
shun_pi
0
290
米国のサイバーセキュリティタイムラインと見る Goの暗号パッケージの進化
tomtwinkle
1
370
あなたはユーザーではない #PdENight
kajitack
4
290
encoding/json/v2のUnmarshalはこう変わった:内部実装で見る設計改善
kurakura0916
0
100
Featured
See All Featured
Facilitating Awesome Meetings
lara
57
6.8k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
280
Fireside Chat
paigeccino
41
3.8k
How to train your dragon (web standard)
notwaldorf
97
6.5k
jQuery: Nuts, Bolts and Bling
dougneiner
65
8.4k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
770
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
117
110k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Evolving SEO for Evolving Search Engines
ryanjones
0
140
WCS-LA-2024
lcolladotor
0
470
How to make the Groovebox
asonas
2
2k
New Earth Scene 8
popppiees
1
1.7k
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!!