Slide 1

Slide 1 text

詰まったときの PEIAサイクル

Slide 2

Slide 2 text

自己紹介 名前:     カーミン エンジニア歴: 2年 (2019年新卒入社) 使用言語:   Ruby (Rails), js (React) 大学での専攻: 経済、経営系   実務経験がほとんどない状態での入社 @d_murakami_0816

Slide 3

Slide 3 text

駆け出しエンジニアの苦悩 コードが大きい&複雑で読めない プロダクトのコードは難しくてすぐわからなくなる ・コード量が膨大 →数百、数千のファイルなんていきなり読めない ・メソッドでたらい回しにされる →「このメソッドはこのファイルで定義されてて...」  をひたすら追っていく ・ロジックが整理されていないと更に大変なことに →複雑な処理が続いてるコードは読みたくない

Slide 4

Slide 4 text

今回の内容 開発で詰まったときどう解決する? 対象:     ・実務経験の少ないエンジニア  ・実務経験の少ないエンジニアに教える人 目的:  ・エラーやバグを自力で解決できるようにする  ・最低限わからないところを明確にする  ・教えるときに次の段階を示せるようにする

Slide 5

Slide 5 text

PEIAサイクル 詰まったときは挙動を見て解決する Partition (分割する) コードを分割して問題が起きている場所を明確にする Experiment (実験する) 該当箇所を色々書き換えて見て挙動の変化を確認する Infer (類推する) 挙動の変化をもとに該当箇所の内容を推測する Apply (応用する) 推測、理解した内容を他の箇所にも活かす

Slide 6

Slide 6 text

Partition (分割する) まずはどこがおかしいかを特定する スタート エラー発生 こんな処理の流れに対して スタート エラー発生 スタート エラー発生 正常 正常 エラー発生 中間地点を設けることでエラーの発生箇所を絞っていく

Slide 7

Slide 7 text

Experiment (実験する) とりあえずいろいろ入力・削除してみる ・入力変えてみる →表示やエラーメッセージの変化を見る →実は関係ないコード見てたりするかも ・コード一部省略してみる →失って初めて大切さがわかる

Slide 8

Slide 8 text

Infer (類推する) & Apply (応用する) A→BならA’→B’の形で予想する 2 3 5 5 8 14 ? 2 1

Slide 9

Slide 9 text

まとめ 詰まったときは挙動を見て解決する Partition (分割する) コードを分割して問題が起きている場所を明確にする Experiment (実験する) 該当箇所を色々書き換えて見て挙動の変化を確認する Infer (類推する) 挙動の変化をもとに該当箇所の内容を推測する Apply (応用する) 推測、理解した内容を他の箇所にも活かす