カレンダー

2017/02
   
    
       

広告

Twitter

記事検索

ランダムボタン

十余年目の真実

by 唐草 [2017/02/15]



 ぼくは、仕事でいくつものプログラムを書いて納入しているし、自分の業務を補助するためにお手製の怪しいツールをいくつもこしらえてきた。本職のプログラマーというのは難しいかもしれないが、小規模な開発を多く請け負ってきた。
 Flash全盛期の頃は、Action Script使いとして局所的だが名を馳せていたこともあった。それも過去の話。
 結局、今はPHPを書くことが一番多い。やはりWeb界隈に腰を据えてしまったためだろう。ブラウザ経由で利用するWebアプリであったりデータベース操作をするためのプログラムをよく書いている。PHPがベストパートナーになるとは、予想していなかった展開だ。
 さて、もう十年以上書き続けているPHP。基本はあらかたマスターしたと思っていた。
 ところが、今日の今日までやり方を勘違いしていた超基本的事項があったことが発覚した。いつも妙に面倒だなぁと思いながらコードを書いていた内容が、ひとつの命令でできると知って椅子から転げ落ちそうなほど驚いてしまった。これを知らなかったばかりに、今までに書いたコードの中には百数十行に及ぶ妙なコードが眠っていることになる。
 ぼくが、勘違いしていたのは「配列の要素の一部削除」という基本操作。
 いつもarray_splice()関数を使って、空の要素と置き換えることで要素の一部削除を実現していた。連想配列の場合だと、さらに面倒なことになっていた。
 ところが、不必要な値を削除するunset()関数だけですべてを実現できたのだ。冷静に考えれば、至って当然。真実を知った今となっては、array_splice()関数よりずっと基本的な操作であるunset()関数の利用をどうして思いつかなかったのかが不思議でしかたない。
 今回の件は、解決に10年以上を要することとなった。でも、気がつけただけマシだ。きっとまだ気がついていない凡ミスがあるに違いない。でも、それを自力で発見することは極めて難しい。だって、ぼくが間違ったことを正しいと思い込んでしまっている訳だから。あぁ、思い込みって恐ろしい。