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
450
Railsのコードを読んでみる vol.1
Sho Nagata
July 31, 2019
Tweet
Share
More Decks by Sho Nagata
See All by Sho Nagata
30→150人のエンジニア組織拡大に伴うアジャイル文化を醸成する役割と取り組みの変化
nagata03
0
800
チームスローガンとその設計意図
nagata03
0
460
0→1フェーズのプロダクト開発のリアル
nagata03
0
300
スクラムマスターの悩みどころを赤裸々に告白します
nagata03
1
1.8k
SmartHRにおけるスクラムマスターへの道
nagata03
0
400
競技プログラミングにチャレンジ!
nagata03
0
440
1年間Rubyを使って印象的だったあれこれ
nagata03
0
470
コードを見る!書く!見てもらう!で爆速ステップアップ!!
nagata03
1
2.7k
プログラミング歴半年のRubyistがGoを学び始めて戸惑った点
nagata03
1
960
Other Decks in Programming
See All in Programming
Grafana:建立系統全知視角的捷徑
blueswen
0
330
SourceGeneratorのススメ
htkym
0
200
AI Schema Enrichment for your Oracle AI Database
thatjeffsmith
0
280
「ブロックテーマでは再現できない」は本当か?
inc2734
0
980
なぜSQLはAIぽく見えるのか/why does SQL look AI like
florets1
0
460
AIによる開発の民主化を支える コンテキスト管理のこれまでとこれから
mulyu
3
270
AI時代の認知負荷との向き合い方
optfit
0
160
Fragmented Architectures
denyspoltorak
0
150
CSC307 Lecture 04
javiergs
PRO
0
660
今こそ知るべき耐量子計算機暗号(PQC)入門 / PQC: What You Need to Know Now
mackey0225
3
370
AIによるイベントストーミング図からのコード生成 / AI-powered code generation from Event Storming diagrams
nrslib
2
1.9k
Unicodeどうしてる? PHPから見たUnicode対応と他言語での対応についてのお伺い
youkidearitai
PRO
1
2.5k
Featured
See All Featured
Context Engineering - Making Every Token Count
addyosmani
9
660
Facilitating Awesome Meetings
lara
57
6.8k
How to Talk to Developers About Accessibility
jct
2
130
Accessibility Awareness
sabderemane
0
51
Measuring & Analyzing Core Web Vitals
bluesmoon
9
750
The Illustrated Children's Guide to Kubernetes
chrisshort
51
51k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
0
170
It's Worth the Effort
3n
188
29k
Google's AI Overviews - The New Search
badams
0
900
First, design no harm
axbom
PRO
2
1.1k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
170
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
190
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!!