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
380
Railsのコードを読んでみる vol.1
Sho Nagata
July 31, 2019
Tweet
Share
More Decks by Sho Nagata
See All by Sho Nagata
チームスローガンとその設計意図
nagata03
0
420
0→1フェーズのプロダクト開発のリアル
nagata03
0
260
スクラムマスターの悩みどころを赤裸々に告白します
nagata03
1
1.5k
SmartHRにおけるスクラムマスターへの道
nagata03
0
320
競技プログラミングにチャレンジ!
nagata03
0
390
1年間Rubyを使って印象的だったあれこれ
nagata03
0
430
コードを見る!書く!見てもらう!で爆速ステップアップ!!
nagata03
1
2.6k
プログラミング歴半年のRubyistがGoを学び始めて戸惑った点
nagata03
1
880
method_missingの黒魔術っぷりについて
nagata03
0
420
Other Decks in Programming
See All in Programming
Linux && Docker 研修/Linux && Docker training
forrep
23
4.1k
Запуск 1С:УХ в крупном энтерпрайзе: мечта и реальность ПМа
lamodatech
0
990
Terraform で作る Amazon ECS の CI/CD パイプライン
hiyanger
0
110
traP の部内 ISUCON とそれを支えるポータル / PISCON Portal
ikura_hamu
0
230
バックエンドのためのアプリ内課金入門 (サブスク編)
qnighy
7
1.5k
ecspresso, ecschedule, lambroll を PipeCDプラグインとして動かしてみた (プロトタイプ) / Running ecspresso, ecschedule, and lambroll as PipeCD Plugins (prototype)
tkikuc
2
2.3k
ASP.NET Core の OpenAPIサポート
h455h1
0
160
2,500万ユーザーを支えるSREチームの6年間のスクラムのカイゼン
honmarkhunt
6
4.2k
Amazon Nova Reelの可能性
hideg
0
260
動作確認やテストで漏れがちな観点3選
starfish719
5
880
watsonx.ai Dojo #6 継続的なAIアプリ開発と展開
oniak3ibm
PRO
0
270
令和7年版 あなたが使ってよいフロントエンド機能とは
mugi_uno
12
6.1k
Featured
See All Featured
Fantastic passwords and where to find them - at NoRuKo
philnash
50
3k
How to Think Like a Performance Engineer
csswizardry
22
1.3k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
7k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
Why Our Code Smells
bkeepers
PRO
335
57k
The Cult of Friendly URLs
andyhume
78
6.2k
4 Signs Your Business is Dying
shpigford
182
22k
Become a Pro
speakerdeck
PRO
26
5.1k
Building Applications with DynamoDB
mza
93
6.2k
Embracing the Ebb and Flow
colly
84
4.5k
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!!