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
MechanicalSympathy からくりからのフィードバック
Search
jx.matsushita
September 06, 2026
7
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
MechanicalSympathy からくりからのフィードバック
jx.matsushita
September 06, 2026
More Decks by jx.matsushita
See All by jx.matsushita
コードレビューと私の過去と未来
jxmtst
0
890
TestProf 遅いテストを診断して改善する
jxmtst
0
70
プチモブから始めてみよう(XP祭り2023)
jxmtst
0
1.3k
Featured
See All Featured
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
4
600
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
710
Into the Great Unknown - MozCon
thekraken
41
2.7k
Agile that works and the tools we love
rasmusluckow
331
22k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
450
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
870
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6.1k
We Have a Design System, Now What?
morganepeng
55
8.3k
Thoughts on Productivity
jonyablonski
76
5.4k
The Curious Case for Waylosing
cassininazir
1
500
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
320
Transcript
からくりからのフィードバック Mechanical Sympathy @jxmtst XP 祭り 2026
松下 純 @jxmtst フリーランスのプログラマ Rubyが好き XPが好き OSTが好き コミュニティ活動 - Scrum
Master’s Night Scrum Developers Night XP祭り スクラム祭り
ハードウェアは目覚ましい進歩を遂げてきた
ハードウェアは目覚ましい進歩を遂げてきた
ではソフトウェアは?
ハードウェアの進歩が、そのまま体感速度になるわけではない “ コンピュータソフトウェア業界の最も驚くべき偉業は、コンピュータハー ドウェア業界が成し遂げた着実かつ驚異的な進歩を、相次いで帳消し にし続けていることである。 – Henry Petroski
その原因は「機械的共感 の欠如」にある A lack of Mechanical Sympathy. ソフトウェア開発者として、ハードウェアの友人たちの素晴らしい成果にふさわしいソフ トウェアを作成したい。 –
Martin Thompson https://mechanical-sympathy.blogspot.com/2011/07/why-mechanical-sympathy.html
MECHANICAL SYMPATHY 機械的共感とは? “ レーシングドライバーになるのにエンジニアである必要はないが、 機械に対する共感力は必要だ。 ― Sir Jackie Stewart,
F1 World Champion(1969, 1971, 1973)
プログラマには車への共感はいらないけど
コンピューターのからくりを知ったうえで設計する 回路設計の専門家になる データはどこに置かれるか 命令セットを暗記する 並行処理は何を奪い合うか すべてを低レイヤーで書く OSはプロセスをどう扱うか
LMAXアーキテクチャ( Disruptor パターン ) 注⽂の処理によって市場状況が変化するため、マルチ スレッドではこれらの状況をキューを介して共有する 必要がある。 しかしそのオーバーヘッド(予測不可能な⼀時停⽌) がボトルネックとなっていた。 最適なキャッシュ動作を実現するために、リングバッ
ファを⽤意して、シングルスレッドで書き込むことで それを解決。 600万件/秒の注⽂を処理するシステムになった。 https://martinfowler.com/articles/lmax.html
Javaコミュニティでは「低レベルのことは忘れて、設計に集中すべきだ」という意見が多かった。 “ 計算機科学に焦点を当てたことで、従来の(キューや処理ノードといった)アプ ローチに内在する関心の混同が、マルチスレッド実装において競合を引き起こす ことが分かった。 https://mechanical-sympathy.blogspot.com/2011/09/modelling-is-everything.html
Modelling Is Everything “ パフォーマンスや可⽤性といったクロスファンクショナル要件(横断的要件)が成功の鍵を 握る場合において、最も重要なのは、あらゆる階層においてドメインのモデルを正しく構築 することであると、私は経験上実感しています。 つまり、DDD(ドメイン駆動設計)の原則を取り⼊れ、コードがそれぞれのドメインを適切 に反映したものになるようにするのです。ビジネスアプリケーションのドメインであれ、イ ンフラストラクチャとのインタラクションのドメインであれ、モデリングこそがすべてなの
です。 https://mechanical-sympathy.blogspot.com/2011/09/modelling-is-everything.html
ゲーム開発ではメモリ階層に合わせてデータを配置する データ指向設計 (Data-Oriented Design) が発展し、これもメカニカルシンパシーの一形態とされる https://gamesfromwithin.com/data-oriented-design/ https://tech.cygames.co.jp/archives/2843/
None
予測可能なメモリアクセス ランダムに読むより、連続‧順番にデータを処理する。CPUキャッシュが効きやすくなる。 キャッシュラインを意識する 複数スレッドが同じキャッシュラインへ書き込む「偽共有」を避ける。 Single Writer(書き⼿を1つにする) 同じデータやリソースへの書き込みは1スレッドに任せ、他のスレッドは⾮同期メッセージで依頼す る。ロック競合や競合状態が減る。 Natural Batching(⾃然なバッチ処理)
データが届いたらすぐ処理を始め、キューが空になるか上限に達した時点でまとめて実⾏する。固定 件数やタイマー待ちより低遅延になります。 CPU‧メモリ‧並⾏処理の実際の動きに合わせ、局所性を⾼め、共有書き込 みと待ち時間を減らすことでハードウェアの性能が引き出せる
Prioritize observability before optimization, before applying these principles measure performance
and understand your goals. 最適化の前にまず 計測可能 にし 目標となる性能指標を決めること
メカニカルシンパシーと新人教育
66 回の社内勉強会 OS Database 設計 抽象化 Architecture Security GUI 法令
8/66 回がメカニカルシンパシー OS Database 設計 抽象化 Architecture Security GUI 法令
メカニカルシンパシー
Ruby Kaigi
Ruby Kaigi Bootcamp 2~3年目のエンジニアが新卒に 向けてRubyInternalのLTをす るイベント GC Build 並行処理 JIT
Parser Unicode クラス実装 etc..
メカニカルシンパシーが働いた事例1
https://kaigionrails.org/2024/talks/izumitomo/
新卒一年目が Workerが正常終了しないという障害を プロセスの挙動にローカルとクラウドで差分があることを見つけて解 決した。
メカニカルシンパシーが働いた事例2 02
https://developers.techouse.com/entry/RubyKaigi-2024-k0kubun-day3
None
AIは増幅器 自分たちの興味関心がある方向にしかプログラムは育たない 本当に良いプロダクトを作るためには コードの外にあるからくり(システム)への理解とそのフィードバック を受けた改善が今まで以上に必要なのではないか?
実装の美しさ・人にとっての読みやすさや抽象に価値があることを認めながら からくりの中でプロダクトがどう動いているかを観察し、 そのフィードバックを感じる感性を育てることにより価値を見出すこと それこそがプログラマにしかできない eXtremeViveCoding なのでは?
ご清聴ありがとうございました。 02
References https://mechanical-sympathy.blogspot.com/ https://martinfowler.com/articles/mechanical-sympathy-principles.html https://martinfowler.com/articles/lmax.html https://kanatoko.wordpress.com/2014/12/31/why_lmax_disruptor_is_insanely_fast/ https://koder.ai/ja/blog/di-chi-yan-disruptor-patan-yu-ce-ke-neng-nariarutaimushe-ji https://tech.cygames.co.jp/archives/2843/ https://kaigionrails.org/2024/talks/izumitomo/ https://developers.techouse.com/entry/RubyKaigi-2024-k0kubun-day3
余談 ⾃⾝最後のレースとなるF1通算100戦⽬の予選で後継者として期待を寄せていた愛弟⼦セベールが事故死 にショックを受けて引退 1972年⼤英帝国勲章OBE、2001年にはナイト爵を授かっている。 強烈な速さを備えていると同時に、レース全体の流れを⾒て無理をせずにポイントを稼ぐ頭脳もあり、後 のニキ‧ラウダやアラン‧プロストと似た知性派のチャンピオンだった。 レース界のご意⾒番として安全性を⾼めるためのスポークスマン活動をした。 かつてのレース界では「レーサーは命をかけて⾛るのが使命で、安全について語るのは臆病者の証拠」と いった意識も存在したが、スチュワートはそういった因習に⽴ち向かった新時代のドライバーの元祖と⾔ える。
学校の成績が悪く退学させられた経験を持つが、レーサー引退後に失読症であることが判明した。その後 は学習障害に関する知識が正しく理解されるよう⽀援活動を⾏っており、2009年にはスコットランド議会 で議員向けの演説を⾏った。 16歳で⽗のガレージで整備⼠⾒習い 失読症のおかげで型にはまらない思考ができたと語っている。 スチュワート本⼈はテレビ解説の原稿すら読み上げるのに苦労したという逸話がある。