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
210
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
7
5.4k
Featured
See All Featured
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.1k
What's in a price? How to price your products and services
michaelherold
244
12k
The Invisible Side of Design
smashingmag
299
50k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
3
360
Fashionably flexible responsive web design (full day workshop)
malarkey
406
66k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.8k
How to train your dragon (web standard)
notwaldorf
89
5.8k
Documentation Writing (for coders)
carmenintech
67
4.5k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
Java REST API Framework Comparison - PWX 2021
mraible
28
8.3k
Practical Orchestrator
shlominoach
186
10k
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年もより磨き込んだプロダクト開発を!
ありがとうございました!