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 "all" stats
Search
ykpythemind
December 10, 2024
1
190
rails "all" stats
https://andpad.connpass.com/event/337371/
の資料です
ykpythemind
December 10, 2024
Tweet
Share
More Decks by ykpythemind
See All by ykpythemind
OmniAuthから学ぶOAuth2.0 [Kaigi on Rails 2024]
ykpythemind
6
5k
Featured
See All Featured
Done Done
chrislema
181
16k
Thoughts on Productivity
jonyablonski
67
4.4k
RailsConf 2023
tenderlove
29
940
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
2
170
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
247
1.3M
Art, The Web, and Tiny UX
lynnandtonic
298
20k
Become a Pro
speakerdeck
PRO
26
5k
YesSQL, Process and Tooling at Scale
rocio
169
14k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
28
4.4k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
59k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.6k
Transcript
2024/12/10 @ rails stats 2024 / ykpythemind rails “all” stats
ykpythemind (ゆきぽよ) STORES 株式会社 エンジニアリングマネージャ ・音楽制作 ・ホラー映像制作 ・苦手な食べ物が多いです
Kaigi on Rails 2024で発表しました 当日スライド: https://speakerdeck.com/ykpythemind/omniauthkaraxue-buoauth2-dot-0-kaigi-on-rails-2024
rails stats…
嬉しい…ですか???
rails statsに期待すること
rails statsに期待すること • 現在のコードベースの大きさがなんとなく分かって嬉しい • 現在のテスト量 (Code to Test Ratio)
が分かる 7 個人開発立ち上げたてのstats
(背景) rails stats、嬉しいような、嬉しくないような STORES ネットショップ STORES 予約 STORES ブランドアプリ 10年選手のRailsアプリ、だいたいそこそこ育っている
(背景) rails stats、嬉しいような、嬉しくないような 10年選手のRailsアプリ、だいたいそこそこ育っている STORES 予約 rails ? ? ほーん
もっと価値を得たい
rails stats : もっと価値を得たい • 今を知る ◦ 「コード行数」以外の定量的な情報を一覧できると良い。コードの歩き方が分かる。 • 過去を知る
◦ コードベースが歩んできた過程を知ることで”エモく”なれると良い • 未来を知る ◦ 自分たちがこのコードベースをどうしていけばいいのかのインサイトが得られると良い 11 rails “all” stats
rails stats: 今を知る
rails stats : 今を知る 13 ykpythemind/rails_all_stats ➜ $ ruby rails_all_stats.rb
/path/to/rails_app
rails stats : 今を知る • テーブル数 ◦ アプリケーションの複雑さはデータの複雑さ 14
rails stats : 今を知る • テーブル数 ◦ アプリケーションの複雑さはデータの複雑さ 15
rails stats : 今を知る • 主要クラス ◦ コアな事業ドメインは何か 16
rails stats : 今を知る • 主要クラス ◦ コアな事業ドメインは何か 17 ・予約!
・Resourceは予約ページのこと 🫣 ・アプリのバーコードを読み取ったりポイント付与したり… ・Push通知の雛形が ShopMessage
rails stats : 今を知る • 主要エンドポイント ◦ ユーザーが使うコンテキストが分かる 18 ※
railsプロジェクトの tmpディレクトリにスクリプトを転送 し、rails runner で実行させる ※ 雰囲気で集計する
rails stats : 今を知る • 主要エンドポイント ◦ ユーザーが使うコンテキストが分かる 19 ・設定画面が多い
・/adminは社内のオペレーション、振込業務など ・購入者が使う /api, /stores/:store_name ・設定画面が多い (予約ページの設定画面) ・購入者が使う /api/v2, /api/reservation_flow
rails stats : 今を知る • 設定より規約 ◦ Railsデフォルトから外れた独自の設定は何か 20 Rails
アップグレードガイド https://railsguides.jp/upgrading_ruby_on_rails.html
rails stats : 今を知る • 設定より規約 ◦ Railsデフォルトから外れた独自の設定は何か 21
rails stats : 今を知る • 設定より規約 ◦ Railsデフォルトから外れた独自の設定は何か 22 ちゃんとやるのは
色々大変そう 古いrailsアプリで対応されてないがちのbelongs_to_required_by_defaultはオンにしよう!
rails stats : 今を知る • テーブル数 ◦ アプリケーションの複雑さはデータの複雑さ • 主要クラス
◦ コアな事業ドメインは何か • 主要エンドポイント ◦ ユーザーが使うコンテキストが分かる • 設定より規約 ◦ Railsデフォルトから外れた独自の設定は何か 23 https://github.com/ykpythemind/rails_all_stats ➜
rails stats: 過去を知る
コードベースの過去から学べること
コードベースの過去から学べること • ない🤯 • 多くは、「過去にはそれが最適だったから」「知識と予算が無かったから」そ うなっているに過ぎない。 • いつだって今が大事 • 今のプロダクトとして価値を作れるよう模索するしかない
• では過去は無価値か・・・??? 26
エモ
コードの歴史を辿って”エモ”くなろう 28 ykpythemind/rails_all_stats ➜ $ ruby version_history.rb /path/to/rails_app => 日付
Railsバージョン コード行数 テストコード行数 「育ってきたな〜」 「このバージョンアップしんどかったな〜」 と振り返る
コードの歴史を辿って”エモ”くなろう 29 グラフにしちゃったりして
rails stats: 未来を知る
basecampのrails stats (2016) 31 https://x.com/dhh/status/761331241886978048
basecampのrails stats (2016) 32 これ以上のコード量は rails wayから外れていく 覚悟が必要 となると、だいたいみんな覚悟が必要ですよね?
Rails覚悟があった例
Shopifyのrails stats (2017) 34 http://web.archive.org/web/201701 26202449/https://twitter.com/tobi/ status/819246328211443713 7年前ですでに今のSTORESの規模
STORESの例 IPOを目指すRailsアプリがこれから何をするか??
STORESのRailsアプリ、これからどうしていくか 36 • すでに10年選手のRailsが3つ ◦ STORES ネットショップ/レジ, STORES 予約, STORES
ブランドアプリ • 1つの「STORES」へ • 被っているドメイン … 注文履歴、顧客、分析機能、振込、審査 etc…
STORESのRailsアプリ、これからどうしていくか 37 未来と戦うためにrails newをする。赤ちゃんのRails。
未来と戦うためにrails newをする。赤ちゃんのRails 38 赤ちゃんのRails • 👍 よくも悪くもコードベースのドメインが明確になる(例:顧客) • 👍 テストが軽い
• 🙁 社内の認証・認可の定型的な処理を書くのだるい • 🙁 デプロイ方法など運用を他アプリと統一したい
未来と戦うためにrails newをする。赤ちゃんのRails 39 赤ちゃんのRails • 楽なメンテナンスのための投資 https://github.com/Shopify/bootboot を使って未リリース版のRailsでCIを動かす
未来と戦うためにrails newをする。赤ちゃんのRails 40 👶 育ってきていますか??
rails statsとともに歩んで行こう
まとめ • 今を知る ◦ 「コード行数」以外の定量的な情報を一覧できると良い。コードの歩き方が分かる。 • 過去を知る ◦ コードベースが歩んできた過程を知ることで”エモく”なれると良い •
未来を知る ◦ 自分たちがこのコードベースをどうしていけばいいのかのインサイトが得られると良い 42 rails “all” stats
STORES 株式会社 の紹介 43 • お店の運営を支えるプロダクト群 (ECの会社 じゃないよ) • アカウント統合・データ統合たくさん
• 2025年もより磨き込んだプロダクト開発を!
ありがとうございました!