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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Hiromi Kai
October 09, 2025
Programming
0
42
【リジェクト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
160
西区プログラミング勉強会発表資料
hiromikai
0
72
Other Decks in Programming
See All in Programming
React Native × React Router v7 API通信の共通化で考えるべきこと
suguruooki
0
100
LLM Observabilityによる 対話型音声AIアプリケーションの安定運用
gekko0114
2
440
16年目のピクシブ百科事典を支える最新の技術基盤 / The Modern Tech Stack Powering Pixiv Encyclopedia in its 16th Year
ahuglajbclajep
5
1k
登壇資料を作る時に意識していること #登壇資料_findy
konifar
4
1.7k
OSSとなったswift-buildで Xcodeのビルドを差し替えられるため 自分でXcodeを直せる時代になっている ダイアモンド問題編
yimajo
3
630
今から始めるClaude Code超入門
448jp
8
9.1k
AIによる高速開発をどう制御するか? ガードレール設置で開発速度と品質を両立させたチームの事例
tonkotsuboy_com
7
2.4k
CSC307 Lecture 08
javiergs
PRO
0
670
OCaml 5でモダンな並列プログラミングを Enjoyしよう!
haochenx
0
150
20260127_試行錯誤の結晶を1冊に。著者が解説 先輩データサイエンティストからの指南書 / author's_commentary_ds_instructions_guide
nash_efp
1
1k
AI Agent の開発と運用を支える Durable Execution #AgentsInProd
izumin5210
7
2.3k
Automatic Grammar Agreementと Markdown Extended Attributes について
kishikawakatsumi
0
200
Featured
See All Featured
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
0
140
So, you think you're a good person
axbom
PRO
2
1.9k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
55k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
470
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
2.1k
RailsConf 2023
tenderlove
30
1.3k
Ethics towards AI in product and experience design
skipperchong
2
200
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
90
エンジニアに許された特別な時間の終わり
watany
106
230k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
330
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
9.9k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2k
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! スタイルガイドの逸脱性が高いテスト 教えてくれ!
肥大したモデルのテストは早々にワー キングメモリをはみ出してまともに全 容把握できなかった(メソッド単位な らなんとか追える)
読みづらさと量が単純比例する感触
しかし全容が把握できないから設計の 細分化もできずに太り続ける という悪循環
道のりは全然見えてないけど いずれ討伐したい
まとめ - 自分が抱いているスタイルガイドへの不満は「スムーズにテストが書けな い」というフラストレーションがもたらしている - さらにその原因を深堀りすると、スプリントの終盤で工数に余裕がない焦り であったり、ドメイン知識を利用してできるだけ記述量を減らしてチャンク を圧縮したいというインセンティブが働いていることかもしれない - 前職で喧嘩に近い議論をしたせいで冷静さを失っており、但し書きの内容を
利用していくことで適応の道筋がある程度見いだせる - スタイルガイド以前に記述量が多いテストはシンプルに読解が難しい。太っ たモデルは頑張って再設計して負債解消するのがよさそう
結論
どう考えてもスタイルガイドの勝ち!
色々考えてみたけど やっぱりショボかった
落とされて正解だった 次はもっと有意義なアウトプットを 目指す
おしまい