Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
読まないコードリーディング術
Search
菊本 久寿
March 02, 2025
Programming
340
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
280
モメンタムマーケティング
hisaju
1
260
人生を救ってくれたエンジニアという生き方
hisaju
1
2.7k
ワークシフト
hisaju
0
360
サラリーマンのススメ
hisaju
0
2.1k
つくらないキャリアの作り方
hisaju
0
1.8k
キャリアにつなげる副業のやり方
hisaju
2
2.1k
若手や未経験者を育てるときのメンターの心構え
hisaju
0
640
Other Decks in Programming
See All in Programming
Embedded Swiftで作る自作USBデバイス によるiOSデバイスの自動テスト / iOSDC Japan 2026 glassfiber
glassfiber
0
290
手動確認はもう限界 〜XCUITestでCustom URL Schemeの遷移を起動種別ごとに自動テストする〜 / Testing Custom URL Schemes with XCUITest
otouto
0
390
phperだってパンチカードでコーディングしたい
o0h
PRO
0
200
When benchmarks go bad - what I learned from measuring performance wrong
hollycummins
0
130
SalesForceを内製化!? ~ HR事業を支える顧客管理基盤のインフラを大公開 ~
oku053
0
120
仕様駆動開発による爆速プロダクト開発 / Bakusoku Spec Driven Development
kobakei
0
180
UnityでSystem.Net.WebSocketsなWebSocketサーバが動かないのでUnity Monoのコードを覗いてみた / about implementing websocket server with unity mono
drumath2237
1
550
GitHubハンズオン講座 — 実務レベルのチーム開発のフローを身につけよう
junhat6
0
120
Domain-Driven Transformation
hschwentner
2
2.3k
iOS 27でニュースアプリはどう変わる!? 〜日経電子版の新機能対応と、開発事例から〜
lynnswap
7
13k
CodeRabbitの効果検証と過ごしてみた3ヶ月
armondando
0
140
[2026-09-26]空論ジェネリックプロセス~テスト資産とAIで紡ぐ、再現可能なパフォーマンスチューニングの話~
tosite
0
250
Featured
See All Featured
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.7k
Fashionably flexible responsive web design (full day workshop)
malarkey
409
67k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
2
930
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
260
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
The untapped power of vector embeddings
frankvandijk
2
1.9k
A Modern Web Designer's Workflow
chriscoyier
699
190k
Code Review Best Practice
trishagee
74
20k
Accessibility Awareness
sabderemane
1
230
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Building Flexible Design Systems
yeseniaperezcruz
330
41k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
2
2.2k
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が最適
まとめ
ありがとうございました!