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
詰まったときのPEIAサイクル
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
daiki
April 14, 2021
Programming
0
4.4k
詰まったときのPEIAサイクル
daiki
April 14, 2021
Tweet
Share
Other Decks in Programming
See All in Programming
Xdebug と IDE による デバッグ実行の仕組みを見る / Exploring-How-Debugging-Works-with-Xdebug-and-an-IDE
shin1x1
0
210
Agentic AI: Evolution oder Revolution
mobilelarson
PRO
0
200
AI活用のコスパを最大化する方法
ochtum
0
340
夢の無限スパゲッティ製造機 -実装篇- #phpstudy
o0h
PRO
0
160
Fundamentals of Software Engineering In the Age of AI
therealdanvega
2
300
PHPで TLSのプロトコルを実装してみる
higaki_program
0
510
AI Assistants for YourAngular Solutions @Angular Graz, March 2026
manfredsteyer
PRO
0
110
KagglerがMixSeekを触ってみた
morim
0
330
The free-lunch guide to idea circularity
hollycummins
0
370
「接続」—パフォーマンスチューニングの最後の一手 〜点と点を結ぶ、その一瞬のために〜
kentaroutakeda
4
2k
ローカルで稼働するAI エージェントを超えて / beyond-local-ai-agents
gawa
0
110
Kubernetesでセルフホストが簡単なNewSQLを求めて / Seeking a NewSQL Database That's Simple to Self-Host on Kubernetes
nnaka2992
0
180
Featured
See All Featured
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
150
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
199
73k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
1
490
The Curse of the Amulet
leimatthew05
1
11k
Designing for Performance
lara
611
70k
How to make the Groovebox
asonas
2
2k
Building Applications with DynamoDB
mza
96
7k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
160
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
310
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.8k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
240
Ruling the World: When Life Gets Gamed
codingconduct
0
180
Transcript
詰まったときの PEIAサイクル
自己紹介 名前: カーミン エンジニア歴: 2年 (2019年新卒入社) 使用言語: Ruby (Rails), js (React) 大学での専攻: 経済、経営系 実務経験がほとんどない状態での入社
@d_murakami_0816
駆け出しエンジニアの苦悩 コードが大きい&複雑で読めない プロダクトのコードは難しくてすぐわからなくなる ・コード量が膨大 →数百、数千のファイルなんていきなり読めない ・メソッドでたらい回しにされる →「このメソッドはこのファイルで定義されてて...」 をひたすら追っていく ・ロジックが整理されていないと更に大変なことに →複雑な処理が続いてるコードは読みたくない
今回の内容 開発で詰まったときどう解決する? 対象: ・実務経験の少ないエンジニア ・実務経験の少ないエンジニアに教える人 目的: ・エラーやバグを自力で解決できるようにする ・最低限わからないところを明確にする ・教えるときに次の段階を示せるようにする
PEIAサイクル 詰まったときは挙動を見て解決する Partition (分割する) コードを分割して問題が起きている場所を明確にする Experiment (実験する) 該当箇所を色々書き換えて見て挙動の変化を確認する Infer (類推する)
挙動の変化をもとに該当箇所の内容を推測する Apply (応用する) 推測、理解した内容を他の箇所にも活かす
Partition (分割する) まずはどこがおかしいかを特定する スタート エラー発生 こんな処理の流れに対して スタート エラー発生 スタート エラー発生
正常 正常 エラー発生 中間地点を設けることでエラーの発生箇所を絞っていく
Experiment (実験する) とりあえずいろいろ入力・削除してみる ・入力変えてみる →表示やエラーメッセージの変化を見る →実は関係ないコード見てたりするかも ・コード一部省略してみる →失って初めて大切さがわかる
Infer (類推する) & Apply (応用する) A→BならA’→B’の形で予想する 2 3 5 5
8 14 ? 2 1
まとめ 詰まったときは挙動を見て解決する Partition (分割する) コードを分割して問題が起きている場所を明確にする Experiment (実験する) 該当箇所を色々書き換えて見て挙動の変化を確認する Infer (類推する)
挙動の変化をもとに該当箇所の内容を推測する Apply (応用する) 推測、理解した内容を他の箇所にも活かす