2008年10月13日月曜日

スクリプトの話(7)〜間違いを減らすために……

さて、これまでスクリプトについて6回にわたって書いてきましたが、
殆どはそんなのは知ってる、という内容だったと思います。
実は本題は今回から。
ひとつには、どうやったら間違いを減らせるのか、
もう一つはどうみても間違ってなさそうなのに何故動かないか
その原因追求、トラブルシューティングの方法について
考えていってみたいと思います。

今回はまずその前半。
どうやったら間違いを減らせるか、です。
それはズバリ、スクリプトを見やすく書く、です。
では見やすいスクリプトとはどういうものでしょう。

実際のプログラムやアプリケーションの開発現場では、
一人でプログラムを全部書くということはありません。
大抵は部分部分分担してプログラムを作っていくことになります。
それから、実はよくあることですが、
あるプログラムを担当していた人が
急に別なプロジェクトに引き抜かれて
逆に別なプロジェクトにいた人がその人を引き継ぐ
なんてこともあります。
そうなると、一人一人が好きにプログラムを書いていたのでは
何が何だかわからなくなり、収集がつかなくなります。
少なくともプロジェクト内部の人間が見れば
誰でもすぐにわかるプログラムを書いておく必要があります。
そこで、大抵の場合、コーディング規約というものが作られます。
こういう時はこう書くんだよ、というルールですね。

この規約は、勿論、プロジェクトの数だけあると言っていいのですが、
大まかなところは大体世界的に共通していて、
リンデンが推奨しているスクリプトの書き方もほぼそれに準じてます。
スクリプトの場合は自分一人で書くわけですから、
自分の好きなように書いていいように思えますが、
実際は、何日もかけて書いているスクリプトだと
過去の自分も他人みたいなものです。
僕も動かなくてほったらかしにしてたスクリプトを
何ヶ月か後で見た時に
我ながらややこしいスクリプトだなぁ、と難儀した覚えがあります。w
こんなわけで、リンデンの推奨を参考に
自分なりの規約、スタイルを作っておくといいでしょうね。

このコーディング・スタイルということでは
これだけで本が1冊できるくらいのものですので、
ここでは簡単に要領だけ述べていきたいと思います。
その第一は、インデント、行の始まりを下げていく書き方です。

間違いで一番多いのが文法の誤りシンタックス・エラー
その中でも多いのがかっこが対になってないもの、
と前に書きましたが、これを防ぐ目的と。
それからその処理がどこからどこまで続いているか
一目でわかりやすくするために、
処理のまとまりを示す「[」「}」の単位で
行の始まりをどんどん右にずらしていく書き方です。
いつもの例で見ていきましょう。

【例1】
default
{
  state_entry()
  {
    llSay(0, "Hello, Avatar!");
  }

  touch_start(integer total_number)
  {
    llSay(0, "Touched.");
  }
}

【例2】
default {
  state_entry() {
    llSay(0, "Hello, Avatar!");
  }

  touch_start(integer total_number) {
    llSay(0, "Touched.");
  }
}

おわかりになりますか?
【例1】は、「[」を独立した行に書く書き方で、
これだと同じ階層に「[」と「}」がいるので、
対応関係は見やすいですね。
但し、難点もあって、
やたら縦に長く間延びすること。
スクリプトエディタの画面は小さいので
あまり長いと追うのが大変になってきます。

【例2】は、「[」をそのまとまりを示すキーワードの後に書くもので、
これだと随分とすっきりまとまって見えます。
慣れないうちはわかりにくいと思うかもしれませんが、
考えてみれば、終わりの「}」を忘れることはあっても、
始まりの「{」を忘れることはなく、
寧ろキーワードと終わりの「}」が対になっていることがはっきりして、
そのキーワードの処理がどこで終わってるか、
わかりやすいとも言えます。

どのくらい字を下げるか、ですが、
C言語のスタイルブックなどを見てみると
4文字下げがいいという人、
いや、2文字下げがいいという人様々ですが、
ここでは素直にタブキーを使って送ることにしましょう。
スクリプトエディターではタブを使うと
自動的に4文字下げるようです。

というわけで、まだやっていなければ、
【例1】でも【例2】でも
自分に合っている、わかりやすいと思う方法で
うまく字下げをして書いてみて下さい。
きっと見やすくなるはずですよ。

長くなりましたので、今日はこの辺で。
それでは、また!

No response to “スクリプトの話(7)〜間違いを減らすために……”

Leave a Reply