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
56
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
82
Other Decks in Programming
See All in Programming
Laravel Boostに学ぶ、AIにPHPを書かせる技術 〜OSSの実装から蒸留するエージェント制御の王道〜
kentaroutakeda
3
410
act2-costs.pdf
sumedhbala
0
110
AIキャラアプリkaiwaの低遅延音声通話基盤をどう作ったか - AWS Gravitonで支える低遅延・低コストAI Agent基盤
mogamit
0
170
言語を使う側から、作る側へ。 自作 Lisp で得た新たな気づき。
andpad
0
120
壊れたパーサから始める関数型設計と構成的なパーサ #fp_matsuri
raiga0310
2
220
Snowflake Summitでの新機能 CoCo / CoWork / snowflake-summit-2026-overall-what-new-coco
tatsuhiro
1
230
SREは、MCPとSRE Agentをこう使え!
kazumax55
0
150
Foundation Models frameworkで画像分析
ryodeveloper
1
120
PHPだって関数型したい 〜できること、できないこと〜 / fp-in-php
jsoizo
0
210
技術記事、 専門家としてのプログラマ、 言語化
mizchi
14
7.5k
分散システム、なんですぐ死んでしまうん?耐障害性を高めたいあなたのためのレジリエンスパターン入門
mshibuya
7
6.1k
「正の参照」と 「負の導出」で組む ハーネスエンジニアリング
cottpan
1
140
Featured
See All Featured
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
300
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.7k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
610
エンジニアに許された特別な時間の終わり
watany
108
250k
Automating Front-end Workflow
addyosmani
1370
210k
Making the Leap to Tech Lead
cromwellryan
135
10k
sira's awesome portfolio website redesign presentation
elsirapls
0
300
Fashionably flexible responsive web design (full day workshop)
malarkey
408
67k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
HDC tutorial
michielstock
2
740
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
200
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! スタイルガイドの逸脱性が高いテスト 教えてくれ!
肥大したモデルのテストは早々にワー キングメモリをはみ出してまともに全 容把握できなかった(メソッド単位な らなんとか追える)
読みづらさと量が単純比例する感触
しかし全容が把握できないから設計の 細分化もできずに太り続ける という悪循環
道のりは全然見えてないけど いずれ討伐したい
まとめ - 自分が抱いているスタイルガイドへの不満は「スムーズにテストが書けな い」というフラストレーションがもたらしている - さらにその原因を深堀りすると、スプリントの終盤で工数に余裕がない焦り であったり、ドメイン知識を利用してできるだけ記述量を減らしてチャンク を圧縮したいというインセンティブが働いていることかもしれない - 前職で喧嘩に近い議論をしたせいで冷静さを失っており、但し書きの内容を
利用していくことで適応の道筋がある程度見いだせる - スタイルガイド以前に記述量が多いテストはシンプルに読解が難しい。太っ たモデルは頑張って再設計して負債解消するのがよさそう
結論
どう考えてもスタイルガイドの勝ち!
色々考えてみたけど やっぱりショボかった
落とされて正解だった 次はもっと有意義なアウトプットを 目指す
おしまい