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
340
Railsのコードを読んでみる vol.1
Sho Nagata
July 31, 2019
Tweet
Share
More Decks by Sho Nagata
See All by Sho Nagata
チームスローガンとその設計意図
nagata03
0
350
0→1フェーズのプロダクト開発のリアル
nagata03
0
230
スクラムマスターの悩みどころを赤裸々に告白します
nagata03
1
1.4k
SmartHRにおけるスクラムマスターへの道
nagata03
0
260
競技プログラミングにチャレンジ!
nagata03
0
350
1年間Rubyを使って印象的だったあれこれ
nagata03
0
390
コードを見る!書く!見てもらう!で爆速ステップアップ!!
nagata03
1
2.5k
プログラミング歴半年のRubyistがGoを学び始めて戸惑った点
nagata03
1
770
method_missingの黒魔術っぷりについて
nagata03
0
380
Other Decks in Programming
See All in Programming
3 Effective Rules for Success with Signals in Angular
manfredsteyer
PRO
0
120
SDCon2024: Enabling DevOps and Team Topologies thru architecture: architecting for fast flow
cer
PRO
0
780
DDDを志して3年経ったら「DDDの皮を被ったクリーンアーキテクチャ」になった話【デブサミ2024夏】
texmeijin
1
620
継続的な活動で築く地方エンジニアの道
myamashii
2
350
英語
s_shimotori
1
220
はしめてのプログラミングとロボット制御
watawatavoltage
0
290
「2024年版 Kotlin サーバーサイドプログラミング実践開発」の補講 〜O/Rマッパー編〜
n_takehata
2
260
Polarsの成長: v0.14からv1.0までの変遷と今後の展望
zerebom
1
350
Rust.Nagoya #1
codemountains
0
170
Architectures with Lightweight Stores: New Rules and Options
manfredsteyer
PRO
0
100
DynamoDB コスト最適化っぽいことの基本 with Terraform
kuro_kurorrr
2
250
Microservices rules (July 2024) : what good looks like
cer
PRO
0
1.6k
Featured
See All Featured
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
12
3.8k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
277
13k
Building Your Own Lightsaber
phodgson
101
5.9k
Creatively Recalculating Your Daily Design Routine
revolveconf
214
11k
A better future with KSS
kneath
231
17k
RailsConf 2023
tenderlove
16
720
Become a Pro
speakerdeck
PRO
15
4.8k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
360
22k
How GitHub Uses GitHub to Build GitHub
holman
471
290k
The Illustrated Children's Guide to Kubernetes
chrisshort
39
47k
5 minutes of I Can Smell Your CMS
philhawksworth
200
19k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
155
14k
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!!