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
【リジェクトConライク】Re:cycle〜Kaigi on Rails 2025編〜 登壇資料
Search
Hiromi Kai
October 09, 2025
Programming
62
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
【リジェクトConライク】Re:cycle〜Kaigi on Rails 2025編〜 登壇資料
(株)タイミーの主催枠として発表したものです。
Hiromi Kai
October 09, 2025
More Decks by Hiromi Kai
See All by Hiromi Kai
#kaigieffect LT大会 at RubyKaigi2024 登壇資料
hiromikai
0
130
OOC2024 登壇資料
hiromikai
0
160
西区プログラミング勉強会発表資料
hiromikai
0
84
Other Decks in Programming
See All in Programming
SlackアプリとLambdaの 連携を構築した話
pawn_4_s
1
120
型も通る、synthも通る、それでも危ない 〜AIのCDKの権限とコストを機械で検証する〜 / It Passes Type Checks, It Passes Synth Checks, but It’s Still Risky — Automatically Verifying Permissions and Costs in AI’s CDK —
seike460
PRO
1
570
Jindong: Introducing Declarative Haptics in Compose Multiplatform
l2hyunwoo
0
120
仕様書を書く前にハーネスを作る - Agent Native開発は「探索を速く、判定を固く」
gotalab555
4
1.7k
複数の Claude Code が"放置"されてしまう問題をCLI ダッシュボードを自作して解決した話
sumihiro3
1
700
170k Jobs a Day on GKE: Scaling Mercari's CI Platform - and What's Next for AI-Native Development
junyaokabe
0
110
Go言語とトイモデルで学ぶTransformerの気持ち / fukuokago23-transformer
monochromegane
0
180
使いながら育てる Claude Code — 開発フローの1コマンド化 × 繰り返し指摘の自動仕組み化
shiki_kakaku
0
1.8k
源内ハンズオン概要編
hideg
0
190
夏だ!祭りだ!祭りとはドメインモデリングでは?
ryugen04
0
310
「人を評価する AI」の設計と実装
ryoyanara
0
210
Cloudflare is Agents
chimame
0
170
Featured
See All Featured
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
240
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
390
A Soul's Torment
seathinner
6
3.4k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.6k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
650
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.8k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
We Have a Design System, Now What?
morganepeng
55
8.3k
My Coaching Mixtape
mlcsv
0
240
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
Transcript
2025/10/07 甲斐 宏味 RSpec Style Guide VS 俺
目次 • 自己紹介 • RSpec Style Guideとは • 規約と自分との戦い
1 自己紹介
自己紹介 名前:甲斐 宏味(かい ひろみ) 所属:エンジニアリング本部 プロダクトエンジニアリング部 職種:バックエンドエンジニア(Rails) 経歴:SE → (転職失敗して紆余曲折)
→ Webスタートアップ数社 → タイミー SNS:やってますが技術の話はしません 得意:ボトムアップアプローチ 苦手:リーダーシップ
2 RSpec Style Guideとは
RSpec Style Guide - RSpecを記述するうえでの望ましいスタイルを記述したもの - いろんな組織が自分流をまとめているため、同名のガイドがいくつか存在する - https://github.com/willnet/rspec-style-guide -
https://rspec.rubystyle.guide/ - https://github.com/rubocop/rspec-style-guide - 弊社はウィルネット版を推奨 - 以前の職場ではこれらをフォークしてアレンジしていた
主な規約 - describeとcontextの使い分け - FactoryBotのデフォルト値をランダムにする - FactoryBotでbelongs_to以外の関連をデフォルトで作成しない - 日付をなるべく相対時間でテストする -
beforeとlet(let!)の使い分け - 控えめなDRY - スコープの外でテストデータを定義しない - updateでデータを変更しない - allow_any_instance_ofを避ける
主観的好き嫌い - describeとcontextの使い分け - FactoryBotのデフォルト値をランダムにする - FactoryBotでbelongs_to以外の関連をデフォルトで作成しない - 日付をなるべく相対時間でテストする -
beforeとlet(let!)の使い分け - 控えめなDRY - スコープの外でテストデータを定義しない - updateでデータを変更しない - allow_any_instance_ofを避ける ☺ 🧐 🧐 🤕 🫡 🤯 🤯 🤯 ☺
遵守結構きつい!
正直嫌い!
ここで冷静になろう
この好き嫌いに普遍性はあるのか?
同僚に聞いてみた
特に気にならない 設計に問題がある サイン 積極的に違反する のはよくない
賛同ゼロ
異常者の相手は疲れた
お前や
3 規約と自分の戦い
昔から「見やすい」「見づらい」という 主観的評価は同僚と意見が合わなかった
考え方は変えられるが 感性を変えるのは難しい
自分と他人の認知の違いは どこから発生しているのだろう
None
認知負荷理論のキーワード - 長期記憶 - 永続的な記憶を保持する - 短期記憶 - 電話番号を一時的に暗記したりするときに使う -
領域の絶対的容量の個人差は少ない - 「チャンク」と呼ばれる意味的なまとまりの形成単位が知識・経験によって変わってくる - 既知の内容はより大きい単位でチャンクを形成できるので保持しやすくなる - ワーキングメモリ - 長期記憶・短期記憶を取り出して実際の思考を司る領域 - 研究によっては短期記憶と混同されていたりするらしい
自分の短期記憶やワーキングメモリが 優れているから複雑なコードを書いて しまう可能性
軽くテストしてみたが普通にダメだった 記憶能力が高いわけではない
「チャンクの認識単位が違う」 ならもしかしたらあるかもしれない
自分の担当ドメインは詳しいから チャンクの認識単位が広くなっている説
ドメインに詳しいと多くのコンテキスト を少ないチャンクに押し込めるから コードの記述量は少ないほうが多くの情 報を処理できる
でも読む人がそうとは限らない
ドメイン知識を活かして 少ない工数で書きたい VS 詳しくない人でも読みやすくしたい
さらにスタイルガイドを読み直してわ かったこと
「describe 外にテストデータを置かない」は 許容パターンが存在してある (前職で同僚と争ったときの認識を更新でき てなかった)
そう考えると受け入れられないスタイルは 結構限定される
工数に余裕がなくていつも焦っている 俺が単に自分本位なだけな気がしてきた
結論があまりにもショボい 聴衆にもっと有意義な 情報を与えられないのか
弊社のテストを片っ端から インプットしてみよう
まずはランダム抜き打ちチェック
一つ一つ調べてみると案外逸脱してる
でもそこまで読むのは苦じゃない
「読みづらいテスト」を探してみよう
おいDevin! スタイルガイドの逸脱性が高いテスト 教えてくれ!
肥大したモデルのテストは早々にワー キングメモリをはみ出してまともに全 容把握できなかった(メソッド単位な らなんとか追える)
読みづらさと量が単純比例する感触
しかし全容が把握できないから設計の 細分化もできずに太り続ける という悪循環
道のりは全然見えてないけど いずれ討伐したい
まとめ - 自分が抱いているスタイルガイドへの不満は「スムーズにテストが書けな い」というフラストレーションがもたらしている - さらにその原因を深堀りすると、スプリントの終盤で工数に余裕がない焦り であったり、ドメイン知識を利用してできるだけ記述量を減らしてチャンク を圧縮したいというインセンティブが働いていることかもしれない - 前職で喧嘩に近い議論をしたせいで冷静さを失っており、但し書きの内容を
利用していくことで適応の道筋がある程度見いだせる - スタイルガイド以前に記述量が多いテストはシンプルに読解が難しい。太っ たモデルは頑張って再設計して負債解消するのがよさそう
結論
どう考えてもスタイルガイドの勝ち!
色々考えてみたけど やっぱりショボかった
落とされて正解だった 次はもっと有意義なアウトプットを 目指す
おしまい