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
780
チームスローガンとその設計意図
nagata03
0
460
0→1フェーズのプロダクト開発のリアル
nagata03
0
300
スクラムマスターの悩みどころを赤裸々に告白します
nagata03
1
1.7k
SmartHRにおけるスクラムマスターへの道
nagata03
0
390
競技プログラミングにチャレンジ!
nagata03
0
440
1年間Rubyを使って印象的だったあれこれ
nagata03
0
470
コードを見る!書く!見てもらう!で爆速ステップアップ!!
nagata03
1
2.7k
プログラミング歴半年のRubyistがGoを学び始めて戸惑った点
nagata03
1
950
Other Decks in Programming
See All in Programming
生成AI時代を勝ち抜くエンジニア組織マネジメント
coconala_engineer
0
37k
公共交通オープンデータ × モバイルUX 複雑な運行情報を 『直感』に変換する技術
tinykitten
PRO
0
180
PostgreSQLで手軽にDuckDBを使う!DuckDB&pg_duckdb入門/osc25hi-duckdb
takahashiikki
0
230
CSC307 Lecture 03
javiergs
PRO
1
460
AI時代を生き抜く 新卒エンジニアの生きる道
coconala_engineer
1
500
それ、本当に安全? ファイルアップロードで見落としがちなセキュリティリスクと対策
penpeen
2
560
LLMで複雑な検索条件アセットから脱却する!! 生成的検索インタフェースの設計論
po3rin
4
1.1k
Claude Codeの「Compacting Conversation」を体感50%減! CLAUDE.md + 8 Skills で挑むコンテキスト管理術
kmurahama
1
700
從冷知識到漏洞,你不懂的 Web,駭客懂 - Huli @ WebConf Taiwan 2025
aszx87410
2
3.3k
AI Agent Dojo #4: watsonx Orchestrate ADK体験
oniak3ibm
PRO
0
120
React 19でつくる「気持ちいいUI」- 楽観的UIのすすめ
himorishige
11
2.3k
tsgolintはいかにしてtypescript-goの非公開APIを呼び出しているのか
syumai
7
2.4k
Featured
See All Featured
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
200
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
300
More Than Pixels: Becoming A User Experience Designer
marktimemedia
2
270
Testing 201, or: Great Expectations
jmmastey
46
7.8k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.1k
The Curious Case for Waylosing
cassininazir
0
200
Practical Orchestrator
shlominoach
190
11k
How to Think Like a Performance Engineer
csswizardry
28
2.4k
エンジニアに許された特別な時間の終わり
watany
106
220k
sira's awesome portfolio website redesign presentation
elsirapls
0
100
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.3k
Prompt Engineering for Job Search
mfonobong
0
140
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!!