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
390
Railsのコードを読んでみる vol.1
Sho Nagata
July 31, 2019
Tweet
Share
More Decks by Sho Nagata
See All by Sho Nagata
30→150人のエンジニア組織拡大に伴うアジャイル文化を醸成する役割と取り組みの変化
nagata03
0
200
チームスローガンとその設計意図
nagata03
0
420
0→1フェーズのプロダクト開発のリアル
nagata03
0
260
スクラムマスターの悩みどころを赤裸々に告白します
nagata03
1
1.5k
SmartHRにおけるスクラムマスターへの道
nagata03
0
320
競技プログラミングにチャレンジ!
nagata03
0
400
1年間Rubyを使って印象的だったあれこれ
nagata03
0
430
コードを見る!書く!見てもらう!で爆速ステップアップ!!
nagata03
1
2.6k
プログラミング歴半年のRubyistがGoを学び始めて戸惑った点
nagata03
1
880
Other Decks in Programming
See All in Programming
Djangoにおける複数ユーザー種別認証の設計アプローチ@DjangoCongress JP 2025
delhi09
PRO
4
500
DRFを少しずつ オニオンアーキテクチャに寄せていく DjangoCongress JP 2025
nealle
2
280
もう少しテストを書きたいんじゃ〜 #phpstudy
o0h
PRO
19
4.1k
Amazon Bedrockマルチエージェントコラボレーションを諦めてLangGraphに入門してみた
akihisaikeda
1
130
AIプログラミング雑キャッチアップ
yuheinakasaka
19
4.8k
Django NinjaによるAPI開発の効率化とリプレースの実践
kashewnuts
1
280
kintone開発を効率化するためにチームで試した施策とその結果を大放出!
oguemon
0
170
新宿駅構内を三人称視点で探索してみる
satoshi7190
2
120
パスキーのすべて ── 導入・UX設計・実装の紹介 / 20250213 パスキー開発者の集い
kuralab
3
910
お前もAI鬼にならないか?👹Bolt & Cursor & Supabase & Vercelで人間をやめるぞ、ジョジョー!👺
taishiyade
7
4.2k
.NET Frameworkでも汎用ホストが使いたい!
tomokusaba
0
200
Boos Performance and Developer Productivity with Jakarta EE 11
ivargrimstad
0
450
Featured
See All Featured
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Being A Developer After 40
akosma
89
590k
Building a Scalable Design System with Sketch
lauravandoore
461
33k
Facilitating Awesome Meetings
lara
53
6.2k
The Pragmatic Product Professional
lauravandoore
32
6.4k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
We Have a Design System, Now What?
morganepeng
51
7.4k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.7k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.3k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
45
9.4k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
227
22k
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!!