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
読まないコードリーディング術
Search
菊本 久寿
March 02, 2025
Programming
330
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
読まないコードリーディング術
主にプログラマー脳のお話
菊本 久寿
March 02, 2025
More Decks by 菊本 久寿
See All by 菊本 久寿
Rubyの黒魔術
hisaju
0
270
モメンタムマーケティング
hisaju
1
230
人生を救ってくれたエンジニアという生き方
hisaju
1
2.7k
ワークシフト
hisaju
0
350
サラリーマンのススメ
hisaju
0
2.1k
つくらないキャリアの作り方
hisaju
0
1.7k
キャリアにつなげる副業のやり方
hisaju
2
2.1k
若手や未経験者を育てるときのメンターの心構え
hisaju
0
630
Other Decks in Programming
See All in Programming
信頼性について考えてみる(SRE NEXT 2026 miniLT)
hayama17
0
190
Apache Hive: Toward a Cloud Native Lakehouse
okumin
0
130
『コードを書く以外の』エンジニアリング〜課金基盤移行プロジェクト推進のためのTips4選
yuriko1211
0
500
「正の参照」と 「負の導出」で組む ハーネスエンジニアリング
cottpan
1
140
琵琶湖の水は止められてもNet--HTTPのリトライは止められない / You might be able to stop the water flow of Lake Biwa but you can't stop Net::HTTP retries
luccafort
PRO
0
390
壊れたパーサから始める関数型設計と構成的なパーサ #fp_matsuri
raiga0310
2
230
act2-costs.pdf
sumedhbala
0
110
なぜ関数型プログラミングで「型」と「証明」が語られるのか #fp_matsuri
kajitack
3
950
SREは、MCPとSRE Agentをこう使え!
kazumax55
0
150
Honoでのサプライチェーン侵害対策 〜 3つのライブラリに学ぶ
yusukebe
7
1.9k
気圧・高度・GPSを記録&可視化するアプリ「Koudo」を作った話
hjmkth
1
360
ビデオ通話が繋がる0.2秒で何が起きているのか
supurazako
2
150
Featured
See All Featured
Balancing Empowerment & Direction
lara
6
1.2k
Prompt Engineering for Job Search
mfonobong
0
380
Deep Space Network (abreviated)
tonyrice
0
230
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
201
75k
How GitHub (no longer) Works
holman
316
150k
How STYLIGHT went responsive
nonsquared
100
6.2k
Embracing the Ebb and Flow
colly
88
5.1k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Leo the Paperboy
mayatellez
8
1.9k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
180
Reality Check: Gamification 10 Years Later
codingconduct
0
2.2k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Transcript
読まない コードリーディング術 ひさじゅ
01 自己紹介 02 プログラマー脳のおさらい 03 ベテランエンジニアの記憶の使い方 04 読まないコードリーディング術 05 まとめ
CONTENTS
自己紹介 01
ひさじゅ エンジニアをはじめて25年ほど経 ちます。ずっとその時代のスタン ダードな言語やフレームワークを学 んだり仕事で扱ってきました。その 中で一番読みやすくて書きやすい言 語がRubyです。 今までやった言語 自己紹介 C、C++、ColdFusion、SQL、PL/SQL、
VBA、Object Pascal、bash、Java、 Groovy、Perl、PHP、Python、Ruby 、サーバーサイドJavaScript (Node.js)、Lua、Go、JavaScript (ES5)、ActionScript、CoffeeScript、 JavaScript(ES6)、GoogleAppScript、 TypeScript 今全部書けるわけではないですが、読めたり はします。あとJS関連はこんな感じで振り回 されてきました。それはまた別の話で。 自己紹介
プログラマー脳のおさらい 02
長期記憶 長期記憶は、プログラミングで使用する アルゴリズム、デザインパターン、プロ グラミング言語の文法、経験則などの知 識が蓄積される場所。 頻繁に使う知識やパターンを長期記憶に 定着させることで、作業中に思い出す労 力が軽減され、効率的な問題解決が可能 になる。 短期記憶
短期記憶は、一時的に情報を保持するた めの領域。 保持できる情報の量は限られており、通 常は数個程度の情報しか同時に扱えない。 ワーキングメモリー ワーキングメモリーは、短期記憶の情報 を基に、実際の思考や計算、情報統合を 行う「作業領域」として機能。 長期記憶から必要な知識を呼び出し、短 期記憶に一時的に保持しながら、問題解 決やアルゴリズムの適用、コードの設計 といった作業を行う。 それぞれの記憶領域
チャンクとは 複数の個別の情報をひとまとまりにグループ 化した単位。プログラミングの文脈で考える と、個々の関数やアルゴリズム、デザインパ ターンなどが、使い慣れることでひとつのチ ャンクとして扱えるようになる。 繰り返しと実践 繰り返しコードを書くことで、特定のパター ンや手法がチャンクとして定着します。実際 に手を動かすことが、チャンク化の促進につ
ながります。 関連情報の整理 新しい概念を学んだとき、類似の知識や既に 習得しているチャンクと関連付けることで、 より効率的に情報を整理できます。 チャンクとは? チャンク
ベテランエンジニアの記憶 の使い方 03
なぜベテランエンジニアはプログラミングが速いのか ベテランエンジニアが プログラミングが速い理由 プログラマーは、頻繁に使用する知識を意識的に長 期記憶に定着させ、短期記憶やワーキングメモリー に頼りすぎない工夫をすることが求められます。こ れにより、作業中の認知負荷が軽減され、コードの 理解や問題解決がより効率的に行えるようになりま す。 長期記憶の知識スタック
サーバーサイド フロントエンド コンピューター・ネットワー ク・プロトコル・インフラ OS ミドルウェア 言語・アルゴリズム フレームワーク・オブジェク ト志向・デザインパターン ライブラリ プロジェクトコード ブラウザ、Web技術 レンダリング技術(HTML・ CSS・JavaScript) フレームワーク・デザインパ ターン ライブラリ プロジェクトコード 長期記憶化 つながりを チャンク化
なぜRailsの開発が速いの コンピューター・ネットワー ク・プロトコル・インフラ OS ミドルウェア 言語・アルゴリズム フレームワーク・オブジェク ト志向・デザインパターン ライブラリ プロジェクトコード
設定より規約 DRY(Don’t repeat yourselef) The One Person Framework RailsWay mixin Rack Railsは、他の言語やフレームワークとは異なり、独自のカルチャーを背景 に、フレームワークの制約の上に「RailsWay」と呼ばれる緩やかな概念・ ルールを取り入れています。これにより、プロジェクトや会社をまたいだ 場合でも同様のルールが用いられることが多く、長期記憶を活用しやすい ため、他の言語・フレームワークと比較してプロジェクトコードですら キャッチアップコストが低くなります。
読まないコードリーディング術 04
目的のメソッドを見つける 全部読もうとしない なんのためにコードを読むのかを忘れない 目的の処理を見つける 読まないコードリーディング術
実践
実践
実践
まとめ 05
01 プログラマー脳は必読 02 長期記憶を活用してコードリーディングを素早くする 03 物理スタックに合わせた知識スタックでチャンク化 04 コードリーディングは短期記憶をなるべく使わない 05 優秀なエンジニアになるにはRailsが最適
まとめ
ありがとうございました!