プログラムのパフォーマンスとは?サイバースペースをリアルに置き換えて考える

昔の職場で働いていたプログラマーさんの話

昔IT系の会社で働いていました。私自身は文系の出身で、数学は高校2年生の頃に卒業してしまっており、プログラムについては素人同然だったのですが、入社してすぐ3ヶ月間プログミング研修を受けて何とかプログラムというのがどういうものか程度にはわかるようになりました。

その時、システム開発の仕事の中で下請けのプログラマーさんと一緒に仕事をする機会がありました。

そのプログラマーさんが「このソース(ソースコード=プログラム)は汚い」とか、「パフォーマンスが悪い」とか、言っていたのですが、私には、きれいなソースコードと汚いソースコードの違いや、パフォーマンスがいいソースコードと悪いソースコードの違いがわかりませんでした。

プログラマーさんに教わってわかったこと

その人は非常に話しやすい人だったので、率直にきれいなソースコードと汚いソースコードの違いについて聞いてみました。

まず、きれいなソースコードはきれいに整理されたエクスプローラーのフォルダのようにきちんと階層に分かれていて、そのプログラムを書いた人以外が見てもすぐに何をしているのかわかるソースコードのことでした。

文章もそうですが、言いたいことが簡潔に無駄なく表現されていれば読みやすく、また話がいきなりあっちに飛んだりこっちに飛んだりしたらわかりにくいと思います。ソースコードにも同じことが言えるのだなと思いました。

もう一つ、パフォーマンスについては話を聞いてサイバースペースについての理解が非常に深まりました。

サイバースペースにはデータを格納している倉庫のようなもの(データベース)があり、プログラムを使って、その倉庫からデータを取ってきて作業するスペースに置く必要があります。

この、データを取ってきて作業するスペースに運ぶ作業の回数が多くなるとパフォーマンスが落ちます。また、いらないデータまで一緒に持ってこようとするとこれもまたパフォーマンスが落ちます。

これは、作業する人が何度も倉庫に取りに行ったり、いらないものを一緒に倉庫から持ってこようとしたりすると作業全体の時間が余計にかかるという現実の状況に置き換えると非常にわかりやすいと思います。

一見難しく見えることもそれほど複雑な話ではない

プログラミングはすべて文字列で表現されているため、データベースからデータを取ってくる様子を目で見ることはできません。目で見れば明らかに非効率なことをしているとわかるのですが、文字だけで想像するのは難しいと思います。

ただ、言っていることはそれほど難しい話ではなく、聞いてみれば当たり前に思える話です。私はこのプログラマーさんに率直に質問しなかったらいまだにわからなかったと思いますが、ほんのちょっと雑談のような話で聞いただけでかなり理解が深まりました。

以前ゲームの話でコミュニケーションが重要という記事を書きましたが、仕事をする上でも率直なコミュニケーションというのが大事な一例だと思います。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です