Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
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
0
41
【リジェクトConライク】Re:cycle〜Kaigi on Rails 2025編〜 登壇資料
(株)タイミーの主催枠として発表したものです。
Hiromi Kai
October 09, 2025
Tweet
Share
More Decks by Hiromi Kai
See All by Hiromi Kai
#kaigieffect LT大会 at RubyKaigi2024 登壇資料
hiromikai
0
120
OOC2024 登壇資料
hiromikai
0
150
西区プログラミング勉強会発表資料
hiromikai
0
71
Other Decks in Programming
See All in Programming
안드로이드 9년차 개발자, 프론트엔드 주니어로 커리어 리셋하기
maryang
1
110
Integrating WordPress and Symfony
alexandresalome
0
150
React Native New Architecture 移行実践報告
taminif
1
150
20 years of Symfony, what's next?
fabpot
2
360
まだ間に合う!Claude Code元年をふりかえる
nogu66
5
830
Cell-Based Architecture
larchanjo
0
120
Tinkerbellから学ぶ、Podで DHCPをリッスンする手法
tomokon
0
130
認証・認可の基本を学ぼう後編
kouyuume
0
240
MAP, Jigsaw, Code Golf 振り返り会 by 関東Kaggler会|Jigsaw 15th Solution
hasibirok0
0
240
大体よく分かるscala.collection.immutable.HashMap ~ Compressed Hash-Array Mapped Prefix-tree (CHAMP) ~
matsu_chara
2
220
俺流レスポンシブコーディング 2025
tak_dcxi
14
8.8k
Cap'n Webについて
yusukebe
0
130
Featured
See All Featured
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
36
6.2k
A designer walks into a library…
pauljervisheath
210
24k
Rebuilding a faster, lazier Slack
samanthasiow
84
9.3k
The Art of Programming - Codeland 2020
erikaheidi
56
14k
Java REST API Framework Comparison - PWX 2021
mraible
34
9k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.1k
The Language of Interfaces
destraynor
162
25k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.8k
The Cost Of JavaScript in 2023
addyosmani
55
9.4k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
10
730
Reflections from 52 weeks, 52 projects
jeffersonlam
355
21k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
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! スタイルガイドの逸脱性が高いテスト 教えてくれ!
肥大したモデルのテストは早々にワー キングメモリをはみ出してまともに全 容把握できなかった(メソッド単位な らなんとか追える)
読みづらさと量が単純比例する感触
しかし全容が把握できないから設計の 細分化もできずに太り続ける という悪循環
道のりは全然見えてないけど いずれ討伐したい
まとめ - 自分が抱いているスタイルガイドへの不満は「スムーズにテストが書けな い」というフラストレーションがもたらしている - さらにその原因を深堀りすると、スプリントの終盤で工数に余裕がない焦り であったり、ドメイン知識を利用してできるだけ記述量を減らしてチャンク を圧縮したいというインセンティブが働いていることかもしれない - 前職で喧嘩に近い議論をしたせいで冷静さを失っており、但し書きの内容を
利用していくことで適応の道筋がある程度見いだせる - スタイルガイド以前に記述量が多いテストはシンプルに読解が難しい。太っ たモデルは頑張って再設計して負債解消するのがよさそう
結論
どう考えてもスタイルガイドの勝ち!
色々考えてみたけど やっぱりショボかった
落とされて正解だった 次はもっと有意義なアウトプットを 目指す
おしまい