こんにちは、しましまです。
今回は私がよく使っている問題解決の手法の紹介です。
私は普段から不明点があった場合は、「ひとりごと」をエディターに書き起こすということを行っています。
その理由は以下のとおりです。
- 理解度の確認
- 目的、やるべきこと、不明点の見える化
- 質問・解答時の時間削減
理由の説明は長くなってしまうので、説明は後にします。
どんなことを書いているか
次は実際にどんなことを書いているかというのをお見せします。
やべ、Cakephp の File APIなくなっちゃうじゃん
他のところでファイルの書き込みって何使ってんだろ?
SplFileObject なるものつかってた
普通にファイルの書き込みやってるな
公式のリファレンスも見てみよ
ファイルがつくれなかったときの処理って例外投げるようにするんだっけ?
今回はファイル生成失敗のログ出して処理終了する方針だった
ファイルがつくれなかったっていう判定はどうやってるんだ???
例外処理でいけるんだっけ
RuntimeExceptionで判定できそう
SplFileObeject に書き換えて使ってみよう
上の例は、CakePHP の File API が、バージョン5で削除されると知り、
既存の処理で File API を使用していた箇所を書き換えるための調査を行っていたときのものです。
ファイル操作を行う機能の開発は、経験が少ないこともあり、私には苦手意識があります。
必要な処理や注意点などが身についていないためです。
苦手意識のある処理や考えることが大変な処理にこそ「ひとりごと」の出番です。
なぜこんなことをするのか
前述した理由について説明します。
理解度の確認
開発作業をしているとソースコードや仕様の理解ができていないことがあり、
質問や調査をしたいが、何がわからないかわからないということがよくあります。
自分がどこまでわかっていて、どこからがわかっていないのかを明確にすることができます。
目的、やるべきこと、不明点の見える化
不明点が多い状態で調べ物をすると、調べ物の中でさらにわからないことが生まれることがあります。
それらが繰り返し行われると、元の目的から離れ、時間を無駄にしてしまうことがありました。
メモをするとわからないことを書いていくので、元をたどると当初の目的を思い出すことができます。
また、不明点を見える化することで、わからないことをそのままにしないという理由もあります。
質問・解答時の時間削減
これは経験談となりますが、質問中に解決策を思いつき、自己解決できたという経験が何度かありました。
これは、質問相手の時間も奪ってしまい、作業の邪魔をしてしまいます。
自分で言語化する際に解決策を思いつくことが多かったので、
ひとりごとをメモしていけば、そういった事例を減らせるのではと考え、採用しています。
アイディアが出やすい
できるだけ自分の考えていることをそのまま書き起こすため、
不便に感じることや不安に思っていることも見える化できます。
それらを言語化すると自然と改善案が出やすくなります。
最後に
私は極度のめんどくさがりです。
そんな私が「ひとりごと」を続けるにはとっつきやすいものにする必要がありました。
言語化でき、自分さえ理解できればそれでよかったので、口語で思ったことをそのまま書き連ねるようにしています。
楽しむために気分によって口調を変えたりもしています。
やってみると楽しいですが、不意にそのメモを見られると恥ずかしいため、人目には気をつけましょう。