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
390
Railsのコードを読んでみる vol.1
Sho Nagata
July 31, 2019
Tweet
Share
More Decks by Sho Nagata
See All by Sho Nagata
30→150人のエンジニア組織拡大に伴うアジャイル文化を醸成する役割と取り組みの変化
nagata03
0
480
チームスローガンとその設計意図
nagata03
0
430
0→1フェーズのプロダクト開発のリアル
nagata03
0
270
スクラムマスターの悩みどころを赤裸々に告白します
nagata03
1
1.5k
SmartHRにおけるスクラムマスターへの道
nagata03
0
320
競技プログラミングにチャレンジ!
nagata03
0
400
1年間Rubyを使って印象的だったあれこれ
nagata03
0
440
コードを見る!書く!見てもらう!で爆速ステップアップ!!
nagata03
1
2.6k
プログラミング歴半年のRubyistがGoを学び始めて戸惑った点
nagata03
1
890
Other Decks in Programming
See All in Programming
ステートソーシング型イベント駆動の視点で捉えるCQRS+ES
shinnosuke0522
1
320
2025/3/18 サービスの成長で生じる幅広いパフォーマンスの問題を、 AIで手軽に解決する
shirahama_x
0
160
いまさら聞けない生成AI入門: 「生成AIを高速キャッチアップ」
soh9834
12
3.7k
アプリを起動せずにアプリを開発して品質と生産性を上げる
ishkawa
0
220
SLI/SLOの設定を進めるその前に アラート品質の改善に取り組んだ話
tanden
2
730
データベースエンジニアの仕事を楽にする。PgAssistantの紹介
nnaka2992
9
4.2k
CQRS+ES勉強会#1
rechellatek
0
390
エンジニア未経験が最短で戦力になるためのTips
gokana
0
210
Develop Faster With FrankenPHP
dunglas
2
2.4k
自分のために作ったアプリが、グローバルに使われるまで / Indie App Development Lunch LT
pixyzehn
1
120
php-fpm がリクエスト処理する仕組みを追う / Tracing-How-php-fpm-Handles-Requests
shin1x1
5
820
ローコードサービスの進化のためのモノレポ移行
taro28
1
330
Featured
See All Featured
Gamification - CAS2011
davidbonilla
81
5.2k
Rails Girls Zürich Keynote
gr2m
94
13k
Embracing the Ebb and Flow
colly
85
4.6k
Designing for humans not robots
tammielis
250
25k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.7k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
7.1k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
16
1.1k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
31
4.7k
Designing for Performance
lara
606
69k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
49k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
118
51k
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!!