運用 - EmploymentLast-modified: 2010-03-04 (木) 01:03:34 このページについてAngelScript(以下AS)を実際にチームで運用するときの使用例や気を付けるべきことについて書きます。 AngelScript(以下AS)を実際にチームで運用するときの使用例について書きます。 コーディング規約・運用ルールの例チームでASを使う場合,コーディング規約をある程度決めておいた方がよいでしょう。 ちなみに,ここで使用している例は筆者が使っているルールです。 キャメルとは例の説明中に「キャメル」という言葉を使っています。 スクリプトファイル名
スクリプトファイル
列挙型・列挙型の要素
クラス
インターフェース
メンバ変数・メンバ関数
グローバル変数・関数
関数の引数の修飾子
名前空間を示す接頭辞ASコードではC++コードの名前空間(namespace)に該当する機能がありません。(*moduleは別の機能です) また,C++バインドしたクラス名は頭にAppという接頭辞をつけています。 使用例 - シーンごとにエンジン作成publicメンバ変数およびプロパティアクセサを積極的に使用ASコードではC#やD言語でおなじみのプロパティアクセサを使用できます。 プロパティアクセサがあると
という流れが可能になります。 そのため,C++コードでは手間がかかるアクセサ記述を最小限に留めることができます。 この流れの例を示します。 Moveクラスはspeedというメンバ変数を持っているとします。 このspeedは読み書き可能なメンバ変数なのでpublicなメンバ変数として宣言します。
ある日,Moveクラスのspeedに0以上の値しか設定できないように仕様を変更することになりました。 この仕様をプロパティアクセサを使用して実装します。
Moveクラスの仕様変更をしましたが,プロパティアクセサを使ったため既存のコード(Move_UnitTest)を変更せずにすみました。 IDisposableの導入ASのクラスのインスタンスのデストラクタが走るタイミングは ガベージコレクションの都合で変わるため不確定と考えた方がいいでしょう。 そのため,メモリリソースを破棄するなど,タイミングを狙って後始末をしたい処理をデストラクタに書くべきではありません。 「タイミングを狙って後始末」という仕組みを実現するため C#でおなじみのIDisposableインターフェースを用意し, 後始末が必要なクラスはこれを実装するようにしました。
|