オブジェクト・属性の命名方法

オブジェクトの命名規則

 AppleScriptにおけるオブジェクトの命名方法は、スタンダードが確立していないのですが、本Tipsでは「AaaBbb式にして大文字から始める」ということにします。
 ただ、スクリプトオブジェクトの場合、クラスとインスタンスの区別が弱く、スクリプトオブジェクト名は自動的に変数名ともなってしまうので、必ずしも利点に溢れているというわけではありません。
 ただ、AaaBbb式は、JavaでもObjective-Cでも一般的に習慣として使われています。これらの本格的なオブジェクト指向プログラミング言語を使う時に、混乱しないようにしておいた方がいいだろう、との判断で採用しました。
 例として、定義部分を書いておきます。

script ObjectX
end script

 オブジェクト=モノ、であり目的語となるものですから、名詞であることが望ましいと言えます。
 単語の組み合わせが思い浮かばない時は、分りやすいように「名詞+Obj」としておくといいでしょう。例えば「MailObj」といった感じです。
 とは言え、名詞でないとエラーになるわけではないですから、名詞にこだわらず、分りやすいモノを選んでいけばいいでしょう。

属性の命名規則

 基本的な部分は「変数の命名方法」と同じです。
 色々と方針に紆余曲折があり、悩みましたが、本Tipsでは「aaaBbb式にして小文字から始め、最後にアンダースコアをつける」という方針で統一することにしました。
 見た目にもさほど格好悪くなく、可読性も上がことも理由ですが、何と言っても、単語一つでも最後にアンダースコアがあるので衝突がまずおきない、というのが大きな理由です。
 変数と違って、属性は既にオブジェクト名で修飾されているので、複雑な名前は必要ありません。ですから、単語一つだけで大丈夫な命名法は実に便利なのです。
 例として、定義部分のスクリプトを書いておきます。

property name_:"テストオブジェクト"

 属性は、オブジェクトの持つ性質を表しますから、形容詞的なものを使っていくのがいいでしょう。「weight(重さ)」「length(長さ)」みたいなやつですね。
 無理に形容詞的なものにする必要はありませんから、とにかく分りやすい識別子をつけることを心掛けましょう。

属性の命名における注意点

 まず、属性(property)の名前が変数と名前がぶつかる事もあるので、そこに気を付けて命名する必要があります。
 属性の場合は、有効範囲がスクリプトオブジェクト内に限定され、外部から参照する場合は、「属性 of スクリプトオブジェクト名」としなければいけないので、大域変数よりも比較的安全です。
 特に、大域変数と属性の名前が同じだと、内容が共有されてしまうという恐ろしいことになるので、属性と同時に大域変数を使う場合は細心の注意が必要です。というより、大域変数を使わないことを強く推奨します。その方が楽です。
 詳しくは「大域変数の有効範囲」や「用語の衝突」を参照して下さい。

定義済みの属性を使う

 一つの方法としては、既にAppleScript本体で定義済みの属性を使う手があります。
 属性として使う限りは、おかしな動作もなく、スクリプトも分かりやすくなりますが、あまり試してないので、意外な問題があるかもしれません。
 個人的には、一時は積極的に使ってみていたのですが、問題が起こらないとも限らないので、定義済みの属性を使うのは止めました。でも、分りやすさは魅力ではあります。定義済みの識別子は、スクリプト編集プログラムではスタイルも変わって見やすいですし。

property name:"テストオブジェクト"

 とにかく、スクリプトオブジェクトと属性の識別子に関しては、アプリケーションのオブジェクトや属性の名前に似せて作るのが、手っ取り早く分りやすい方法です。

定数として属性を使う場合

 AppleScriptには定数を定義する方法が用意されていないので、スクリプト属性を定数が割に使うことが多いのですが、その場合本Tipsでは、全て大文字で書き単語の切れ目にはアンダースコアを使います。
 これは、定数をあらわす場合にCやJavaでは一般的な命名規則です。

property MAX_PEOPLE_NUMBER:100

 もちろん、このような書き方をしたからといって、代入が不可能になるわけではないのですが、スクリプトの見やすさはかなり上がります。また、スクリプトの見やすさを維持するためにも、大文字だけの命名をした属性は、絶対に値を変えないことを心掛けましょう。


2002-01-06 2002-11-24 2004-12-13