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
430
Railsのコードを読んでみる vol.1
Sho Nagata
July 31, 2019
Tweet
Share
More Decks by Sho Nagata
See All by Sho Nagata
30→150人のエンジニア組織拡大に伴うアジャイル文化を醸成する役割と取り組みの変化
nagata03
0
670
チームスローガンとその設計意図
nagata03
0
450
0→1フェーズのプロダクト開発のリアル
nagata03
0
280
スクラムマスターの悩みどころを赤裸々に告白します
nagata03
1
1.7k
SmartHRにおけるスクラムマスターへの道
nagata03
0
360
競技プログラミングにチャレンジ!
nagata03
0
420
1年間Rubyを使って印象的だったあれこれ
nagata03
0
460
コードを見る!書く!見てもらう!で爆速ステップアップ!!
nagata03
1
2.7k
プログラミング歴半年のRubyistがGoを学び始めて戸惑った点
nagata03
1
930
Other Decks in Programming
See All in Programming
11年かかって やっとVibe Codingに 時代が追いつきましたね
yimajo
1
260
AIに安心して任せるためにTypeScriptで一意な型を作ろう
arfes0e2b3c
0
340
Webinar: AI-Powered Development: Transformiere deinen Workflow mit Coding Tools und MCP Servern
danielsogl
0
100
Amazon Q CLI開発で学んだAIコーディングツールの使い方
licux
3
180
物語を動かす行動"量" #エンジニアニメ
konifar
14
4k
新世界の理解
koriym
0
130
大規模FlutterプロジェクトのCI実行時間を約8割削減した話
teamlab
PRO
0
460
Google I/O Extended Incheon 2025 ~ What's new in Android development tools
pluu
1
250
可変性を制する設計: 構造と振る舞いから考える概念モデリングとその実装
a_suenami
10
1.7k
decksh - a little language for decks
ajstarks
4
21k
STUNMESH-go: Wireguard NAT穿隧工具的源起與介紹
tjjh89017
0
300
PHPUnitの限界をPlaywrightで補完するテストアプローチ
yuzneri
0
400
Featured
See All Featured
Six Lessons from altMBA
skipperchong
28
3.9k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.5k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
6k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.6k
Scaling GitHub
holman
461
140k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
47
9.6k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
Designing for Performance
lara
610
69k
Testing 201, or: Great Expectations
jmmastey
45
7.6k
Writing Fast Ruby
sferik
628
62k
For a Future-Friendly Web
brad_frost
179
9.9k
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!!