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
320
Railsのコードを読んでみる vol.1
Sho Nagata
July 31, 2019
Tweet
Share
More Decks by Sho Nagata
See All by Sho Nagata
チームスローガンとその設計意図
nagata03
0
290
0→1フェーズのプロダクト開発のリアル
nagata03
0
210
スクラムマスターの悩みどころを赤裸々に告白します
nagata03
1
1.3k
SmartHRにおけるスクラムマスターへの道
nagata03
0
220
競技プログラミングにチャレンジ!
nagata03
0
320
1年間Rubyを使って印象的だったあれこれ
nagata03
0
370
コードを見る!書く!見てもらう!で爆速ステップアップ!!
nagata03
1
2.4k
プログラミング歴半年のRubyistがGoを学び始めて戸惑った点
nagata03
1
730
method_missingの黒魔術っぷりについて
nagata03
0
350
Other Decks in Programming
See All in Programming
見た目から始める生産性向上
ikumatadokoro
7
820
大規模Reactアプリのリアーキテクチャ~8万行のTanStack Query移行の軌跡~
kj455
4
950
Prepare for Jakarta EE 11 - Performance and Developer Productivity
ivargrimstad
0
720
Milestoner
bkuhlmann
1
410
入門 AWS Amplify Gen2 / Introduction to AWS Amplify Gen2
genkiogasawara
1
330
Rails と人魚の話/rails-and-mermaid
sanfrecce_osaka
0
100
Fragment Composition of GraphQL
quramy
3
550
⼤規模⾔語モデルの拡張(RAG)が 終わったかも知れない件について
nearme_tech
23
15k
ScalarDBを用いたマイクロサービスにおけるデータ管理 (Database Engineering Meetup #2)
scalar
0
110
Git Rebase
bkuhlmann
11
1.6k
Elm 0.19.0 Changes
bkuhlmann
0
490
OpenAPIを中心に考えるAPI開発入門 / Introduction to API Development with a Focus on OpenAPI
seike460
PRO
2
170
Featured
See All Featured
Optimizing for Happiness
mojombo
370
69k
Designing the Hi-DPI Web
ddemaree
276
33k
For a Future-Friendly Web
brad_frost
172
9k
Code Reviewing Like a Champion
maltzj
514
39k
Large-scale JavaScript Application Architecture
addyosmani
504
110k
Rebuilding a faster, lazier Slack
samanthasiow
73
8.2k
Embracing the Ebb and Flow
colly
80
4.1k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
155
14k
Intergalactic Javascript Robots from Outer Space
tanoku
266
26k
The Cost Of JavaScript in 2023
addyosmani
16
3.8k
Product Roadmaps are Hard
iamctodd
44
9.7k
Build your cross-platform service in a week with App Engine
jlugia
225
17k
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!!