2011年10月14日(金)Stay Living.

最近は自分のサイトのバックグラウンドを修正修正また修正。以前のスクリプトの書き方が冗長な上に負担を掛ける。
間違ってはいないが負担を掛けると言う意味では相応しいやり方とは言えない。可能な限り負荷を掛けない内容へと書き換える。

一体「どこ」を書き換えたのか。

1:余計なタグは吐かない。出力されたソースがシンプルな物となり、転送量の削減に貢献出来る。 
2:foreachよりもwhileの方が高速動作でサーバーのメモリも使われにくい。高速動作が可能な記述に置き換える。 
3:文字列を配列に納めた場合、使いもしない配列を持ち続けても仕方がない。array_sliceで必要な部分だけを残して残りは切り捨てる。

以上のやり方で高速化が可能なソースへと書き換えていた。上記3つの展開は全て「高速化」の為にある。

PHPとは不思議な言語で、似た様な動作をさせても実行速度がまるで異なる事になる。可能な限り「高速に動作が完了する様なやり方」を採用する。
その方が日記の投稿などに代表される文字列の処理なども高速に終了する。以前に書いた日記更新スクリプト。新しく書き直した日記更新スクリプト。

動作速度の違いはこれまでのスクリプトの速度を1とした場合、新しく書き直したスクリプトの速度は2/3で完了する。

体感速度からして若干早くなっている。例えばこうした違いはサイト更新の楽しさ楽しくなさにも影響を及ぼす事になる。
以前と比較して更新完了までの速度が素早くなったのでその分日記の執筆もしくは投稿に掛ける時間も小さくなった。例えばそう言う効果も存在している。

PHPでコーナーごとにサイトを構築していると1人で5つも6つもホームページを持っている様な気分になってくる。
ある程度ソースを流用出来た方が修正も簡単に行く。しかし変数の命名ルールが異なっていた場合、あるコーナーでは最終的な出力を命令している変数が
別のコーナーでは途中の置換を命令している変数になっていたりと言う事がある。そうすると流用出来ない。自分ルールで整理出来ない。流用と整理の不可。

これは不便になる。変数とは「ドル記号を付けたあとで、アルファベットと数字の組み合わせで『ここにこう言う命令を入れておきますよ』と指定された物」を表す。

自分の場合、「a」は「arrayのa」としているので、例えば「a1 = array〜」の様相で書いていたりもする。「aa = array〜」の様相で書いていたりもする。
どちらにしても「a」で始まっていれば「array絡みの変数を指定している」事になっているのでこうすれば他のコーナーを構築しているスクリプトでも
同じ様な展開が使えるので流用や、あるいはこのソースをこっちでも使えば以前と比べて高速化出来るぞ?と思った時にも移植が容易になったりする。

一部その変数指定の命名ルールとして採用している「どのアルファベットにどの意味を持たせるか」が異なっていた。従って「統一する必要がある」。
テキストファイルの文字列置換ソフトを使って置換と比較の繰り返し。古いソースであればあるほど「えっ?どうしてここにこんな指定でこの変数が?」
と思う事もしばしばだったので、そこの部分的な内容だけをコピーして白紙のテキストエディタ(TeraPad)に貼り付けた上で大規模修正を掛けて部分的に戻す。

そんな風にして移植と修正を繰り返しながら、時にはソースを全面的に書き換えて「以前書き換えた物と比較したら全然動作が違っていたりする」事もありました。
そんな事を何回も行って、5つも6つもホームページを持っている様な、各種コーナーごとに分かれている複数の膨大なPHPスクリプトに記載されている
変数の命名ルールは次々と統一化を果たす事となり、もしくはソースの書き換えによって高速化も果たされる事になって、流用や整理も簡潔な行為となりました。

そうした展開も踏まえた今回の大規模な「自分のサイトを構築しているスクリプトの高速動作と変数の命名ルールが分断されている事による命名ルールの統一化」。
その2つを主な目的としての「サイトを構築しているスクリプトをコーナーごとに全て見直して書き直した行為」。そう言う事をしてました。それが最近の今日この頃。

2011年10月14日(金)03時39分57秒