Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Railsのコードを読んでみる vol.1
Search
Sho Nagata
July 31, 2019
Programming
500
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Railsのコードを読んでみる vol.1
Sho Nagata
July 31, 2019
More Decks by Sho Nagata
See All by Sho Nagata
速く作れるかではなく、速く学べるか ― 学習ループを回すパイロットの途中報告
nagata03
0
740
30→150人のエンジニア組織拡大に伴うアジャイル文化を醸成する役割と取り組みの変化
nagata03
0
1.1k
チームスローガンとその設計意図
nagata03
0
510
0→1フェーズのプロダクト開発のリアル
nagata03
0
340
スクラムマスターの悩みどころを赤裸々に告白します
nagata03
1
2k
SmartHRにおけるスクラムマスターへの道
nagata03
0
450
競技プログラミングにチャレンジ!
nagata03
0
480
1年間Rubyを使って印象的だったあれこれ
nagata03
0
520
コードを見る!書く!見てもらう!で爆速ステップアップ!!
nagata03
1
2.8k
Other Decks in Programming
See All in Programming
Python Lambdaにおけるテストしやすい設計とAI支援の活用 / Designing Testable Python Lambda Functions with AI
kitano_yuichi
1
290
LLM 101
dalinaum
0
470
PumaからFalconに移行したRailsアプリケーションでの実践
falcon8823
0
350
Materialが消えた日 〜真っ白なFlutterキャンバスにRenderObjectで絵を描く〜
umigishiaoi
0
150
graphql-ruby を Spinel で速くしようとした話
mtsmfm
0
140
全ての永続トークンを、生まれる前に消し去りたい!
sylph01
3
1.7k
SODA - FACT BOOK(EN)
sodainc
1
200
AIがコードを書いてくれる時代、我々は何を確かめるのか
yosuke_furukawa
PRO
13
5.6k
オーケストレーション記述言語 Katari
yukikurage
0
220
クラウドエージェントは、 何がそんなに便利なのか / what makes cloud agents so useful
rkaga
5
750
[JA] Domain Modeling with Vanilla Rails: 「操作」から再考するRailsの設計論
yasaichi
4
1.8k
AIが生成したコードは読むべきか?抽象化設計とコードの品質保証 / abstraction-design-and-quality
minodriven
16
8.5k
Featured
See All Featured
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
460
Google's AI Overviews - The New Search
badams
0
1.7k
So, you think you're a good person
axbom
PRO
2
2.2k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.7k
The Cost Of JavaScript in 2023
addyosmani
56
10k
Designing Experiences People Love
moore
143
24k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.9k
Practical Orchestrator
shlominoach
192
12k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
740
What does AI have to do with Human Rights?
axbom
PRO
1
2.5k
The Curious Case for Waylosing
cassininazir
1
610
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!!