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
480
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
590
30→150人のエンジニア組織拡大に伴うアジャイル文化を醸成する役割と取り組みの変化
nagata03
0
980
チームスローガンとその設計意図
nagata03
0
500
0→1フェーズのプロダクト開発のリアル
nagata03
0
330
スクラムマスターの悩みどころを赤裸々に告白します
nagata03
1
1.9k
SmartHRにおけるスクラムマスターへの道
nagata03
0
440
競技プログラミングにチャレンジ!
nagata03
0
470
1年間Rubyを使って印象的だったあれこれ
nagata03
0
500
コードを見る!書く!見てもらう!で爆速ステップアップ!!
nagata03
1
2.8k
Other Decks in Programming
See All in Programming
テーブルをDELETEした
yuzneri
0
140
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
610
Cloudflare is Agents
chimame
0
170
楽しそうなつよつよエンジニアと目が死んでる僕/A brilliant engineer having a blast, and dead-eyed me.
3l4l5
2
190
Laravel Boostに学ぶ、AIにPHPを書かせる技術 〜OSSの実装から蒸留するエージェント制御の王道〜
kentaroutakeda
3
710
Laravelで学ぶ Webアプリケーションチューニング入門/web_application_tuning_101
hanhan1978
4
1.9k
仕様書を書く前にハーネスを作る - Agent Native開発は「探索を速く、判定を固く」
gotalab555
4
1.7k
VibeCodingからAgenticWorkflowへ
starfish719
0
550
in-process GraphQL のすすめ #ginzajs
izumin5210
3
1.1k
Detecting Compromised CI with eBPF and Cilium Tetragon
lizrice
0
200
ソフトウェア設計に溶けるインフラ ― AWS CDK のインフラ認識論
konokenj
3
800
ソフトウェアエンジニアにとっての生成AI - 特性を知って使い倒す / generative ai for software enginner
kishida
5
1.8k
Featured
See All Featured
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.4k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
700
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
Design in an AI World
tapps
1
280
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
210
How to build a perfect <img>
jonoalderson
1
5.9k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
250
Bash Introduction
62gerente
615
220k
Navigating Team Friction
lara
192
16k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
430
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
56k
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!!