文脈の共有

こんばんは、あおのです。

あまりこれといったブログのネタがなかったので 笑、今日外を歩いたりしている時に考えていたことでも書こうかと思います。

プログラマーはRubyやJavaといった「言語」でソースコードを書いてプロダクトを生み出していくわけですが、そうやって書かれたコードの中には、読みやすいもの・読みにくいもの両方があります。読みにくい(分かりにくい)コードはよく「クソコード」などと呼称され、書いた人が蔑視されます。…蔑視は大げさでした、コードレビューしてくれるメンバーから指摘されて注意を受けたりします。一方で、そういったクソコードが放置され、未来の自分や他のメンバーを泣かせることもあります。もちろん、自分一人だけで常にいじるコードであれば、そういったことはあまり気にしなくても良いんだとは思います。

読みにくいとはどういうことなのか。抽象的な表現にとどめておきますが、

文脈(コンテキスト)が分かりにくい

というのが、読みにくいコードの特徴として1つ挙げられるのかなと思います。

なぜその場所でそういった処理をおこなっているのか分からない、とか、
短く書きすぎていて逆に分からない、とか、
一度に把握しなければならない要素が多すぎて消化不良、とか。

ざっくりまとめてしまうと、どういう問題を解決しようとしてどういうことをしているのか読み手にとって分かりやすいのが良いコード、逆が悪いコードといったところでしょうか。
(まだまだ悪いコードばかり書いてしまうことが多いのでもっと精進せねば…)

で、こういうのってプログラミング言語だけの話でなく、人間同士が会話に使う自然言語でも同じことが起きているよなぁと思ったわけです。プレゼンテーション、チームメンバーへの報告や相談、営業トーク、日常の他愛もない会話、内容は何でも良いんですが、受け手が理解しやすい時というのは「文脈」がたぶん分かりやすいんだと思います。受け手と聞き手の間で、文脈を共有しやすい会話とでもいうのでしょうか。

自身にも思い当たることは多くあります。例えば、自分が当然だと思って話したことが相手にとっては当然でなく理解に苦しませてしまった時。自分にとって文脈の筋が通っていても、受け手にとっては違う。プログラミングでいうところのクソコードを書いてしまったのと同じです….

自分の頭の中を受け手にとって分かりやすい形でアウトプットするというのは、会話にせよプログラミングにせよ、そんなに簡単なことではない。ひょんなことから再認識させられました 笑

ふだん耳に入ってくる社内での業務報告なども人によって上手い下手があるなとなんとなく感じますし、そういった文脈の共有に関しては自分も含めなんらかの訓練で改善していかなければいけないポイントなのかもしれません。

プログラミングにおいてコードの見通しを良くする上で、まず最初の肝となるのは、手を動かす前の初期設計かなと思います。まだまだ実践できてないですが…
経験則ですが、いきなり書き始めると結構な確率で文脈の読めない悪いコードが誕生します。
会話でもそれは同じなのでしょう。

おまえは何を言っているんだ

↑文脈の分かりにくい報告を受けたときの、受け手の反応(イメージ)

これ以上は「ロジカルに話すことの重要性」みたいなありきたりな話になっていってしまいそうなので、このへんにします。(ありきたりといっても、すごく大事なことですが)

ぼんやり考えていたことを書いてみました。一見何を書いているか分からないプログラミング言語と日常的に話している自然言語、似てるところもありますね!笑
今回はこれにて終わりです。

ABOUTこの記事をかいた人

Yusuke Aono

2012年新卒入社のエンジニアです。ビジネスマッチングアプリ「yenta」の開発をしています