※長文です!٩( 'ω' )و


プログラミングのエラー処理を考えてみる

占いアプリのたとえ話

誕生日を入力すると、占いをしてくれるアプリを開発するとします。

(いきなり何の話?と思うかもしれませんが笑)

その場合、生年月日は当然数字で入力しないといけませんね。


ですが、誕生日入力欄に、ひらがなやアルファベットなどが入力されたらどうしましょうか?

そのまま文字データが送られてしまったら、エラーが起きてしまいますよね。


この場合、エラーが起こらないようにするための、よくあるプログラミングでの対処法には、


・想定外の入力値が来ないよう制御する

-> プルダウンとか、カレンダー形式の入力フォームを設置することで、そもそも入力の段階で、数字以外入らないようにする


・想定外の入力値が来ても大丈夫にする

-> 数字以外が入力された場合、「数字を入力してください」などの文言を表示して、先に進めないように、条件分岐を仕込む


などがあります。



人間プログラミング

人の反応はプログラム処理のようなもの

さて、本題。

人間とは、ある入力値に対して、反応が出力されるプログラミングのようなものです




例えば、

「ネコを見る」という視覚情報が入ってきたら(入力値)、
「可愛い〜!」と感じる(反応)。

「パクチーを食べる」という味覚情報が入ってきたら(入力値)、
「美味しくない…」と感じる(反応)。

ちなみに私はネコ大好き。


人による出力結果の差

人によって、このプログラミングは様々なので、

同じ「ネコを見る」でも、
「うわっ、マジ無理」という反応が出力されることもあれば、

同じ「パクチーを食べる」でも、
「超最高〜!」という反応が出力されることもあるわけです。


みんな、色々な反応を出力する関数を持っているんですね。


キレやすい人の脳内プログラミングを考える

エラー発生!

ここで今度は、友人が待ち合わせに5分でも遅れると、めちゃくちゃキレてしまう癖がある人を、仮に考えてみましょう。

この人は待ち合わせ時間の入力値に制限があり、それを超えてしまうとキレる、というエラー反応を出すようなプログラミングがされています。


※ここでキレる=エラーと言っていますが、悪いこと、ダメなことと言いたいわけではありません。

(感情の)制御が効かなくなる、暴走する」という意味で、エラーと呼んでいます。



不正な処理を防ぐには?

ここで最初の誕生日占いアプリの話に戻ります。

5分遅刻という入力値は、その人にとって、誕生日入力欄にひらがなを突っ込むような不正な処理なわけです。


エラーを起こさないためには、どうしたら良かったかというと、

・想定外の入力値が来ないよう制御する

・想定外の入力値が来ても大丈夫にする

という対処法がありましたね。


つまり、この人が感情を暴走させないためには、

・5分遅刻させないよう制御する

・5分遅刻されても大丈夫にする

ことが必要になります。


コントロール可能なもの、不可能なもの

前者の、「他人が5分遅刻しないようにする」を、自分の方で100%制御するのは困難ですよね。
他人がどう振る舞うかは、自分のコントロールの範囲外なので。


一方で後者なら、自分でハンドリングできそうです。
時間の過ごし方を見つけたり、そもそもなぜ5分の遅刻すら許せないのかを分析してみたり。

想定外の入力値が来ても大丈夫な自分になるよう、自分をプログラミングし直すんですね。


今回の記事では、(長くなるので)どうプログラミングしたらいいのかという話には触れないのですが、

ポイントとなるのは、入力値は、入力を受ける側からは制御困難だ、という事です。



人の怒りとは

怒りという反応の出力

怒っている人を見ると、私の場合、反射的に

「自分が間違っていた、ダメだった」
「なんとか機嫌を取らないといけない」

と、すくみがちでした。


でも、ここまで考えてみたことを踏まえると、

怒る人は、ただその人のプログラミングに沿って、イライラや怒りという反応を出力しているだけなんですよね。


たまたま、自分の言動という入力値が、その人から怒りを出力しただけだったんだ(大発見)



人が絶対怒らないように制御する、ということはできない

先ほど書いたように、入力値は、入力を受ける側からは制御できません。


また、入力する側でも、相手の脳内プログラミングに当てはまるような入力値を、必ずしも入れられるとは限りません

相手の脳内プログラミングの仕様(=何をしたら、どんな感情になるか)を全て理解するのは困難なので。


ゲヘヘ、わざとアルファベットを入力してやろうな〜?(=故意に怒らせる)みたいな状況でなければ笑、

誕生日入力欄って気づかず、ひらがな入力しちゃった…(=うっかり

誕生日って書いてあるから、漢数字でもいいと思って…(=言葉の食い違い、認識の齟齬

みたいな入力ミスから、エラー(=相手の怒り)が出力されてしまうことは、いくらでもありうるわけです。


そう考えると、

・不正な入力をしないように(人の地雷を踏まないように)過剰に気を張る

・不正な入力をしてしまった(相手の怒りを引き出した)自分を過度に責める

ことで、苦しまなくていいのかもしれません。



まとめ

ふぅ、ようやく結論に辿り着きました笑


・他人に対して、自分の言動を入力すると、他人から感情や反応が出力される。

・入力値によってはエラーが出ることもある。つまり相手が感情を制御できなくなることがある。

・いくら入力値を適切なものにしようとしても、完璧には制御できない(いくら言動に気を遣っても、人の地雷を踏んでしまうことはある)

・よって、他人の反応をうかがったり、他人の感情的反応を引き起こしてしまったことに苦しんだりしなくてもいい。