コーディング規約

最近アドビのコーディング規約を教えてもらった時に
色々発見があったので備忘録的に記事を書きたいと思います。

コーディング規約とは、
オープンソースFlexフレームワークコンポーネントを記述する際に
コードの記述方法に一貫性を持たせ、
視認性を高めようと定められた、ひとつの技術です。

今回は、Adobe Open Source に書かれている規約を要約して
記述書式 ( Formatting ) の Tips を投稿します。

[Tips]

その1.コードは1行あたり半角80字

diff ツールを使用したいときや、プロジェクターで投影したい時に
水平にスクロールする手間を掛けさせない為に決められました。

コードを横に長く書かない具体的なメリットはほぼ意識していなかったです。
ただ、実際のオープンソースライブラリ、Papervision3Dなどの場合 では、
ハードコーディングされている部分は80文字を上回っている方が多かったです。
その辺はケースバイケースですね。

その2.インデントは半角スペース4文字

タブではなくスペースを使用する事で、8文字インデントのメモ帳などでも書式を乱さずに表示できるようにする為です。

しかし、FlashCS5 や FlashDevelop などでフォーマットすると、初期設定ではスペースからタブに切り替わってしまいます。
この辺りは結局 IDE に合わせたほうが無難、という結論になりました。

その3.セクションセパレータは半角80文字と半角40文字

主要セクション
[sourcecode language=”as3″]
//————————————————————————–
//
// Overridden methods
//
//————————————————————————–
[/sourcecode]

二次セクション ( プロパティなど )

[sourcecode language=”as3″]
//———————————-
// visible
//———————————-
[/sourcecode]

僕は、FlashDevelop のスニペットに入れています。

その4.定数、変数および関数宣言の間には、縦方向のセパレータ
[sourcecode language=”as3″]
/**
* @private
* Holds something.
*/
var a:Number;
[/sourcecode]

[sourcecode language=”as3″]
/**
* @private
*/
var b:Number
[/sourcecode]

以上のような体裁です。

その5.配列の書き方

配列のインデックス
[sourcecode language=”as3″]
a[0] // 正
a[ 0 ] // 誤
[/sourcecode]

Array リテラル
[sourcecode language=”as3″]
a[ 0, 2, 3 ] // 正
a[0, 1, 2] // 誤
[/sourcecode]

このような書き方があると分かっておくことで
日常のちょっとした ”モヤっと” が解決できると思います。

参考としたサイト
Flex SDKコード記述に関する規則とベストプラクティス 日本語サイト(from Adobe Open Source [ja])
Flex SDK coding conventions and best practices 英語サイト(from Adobe Open Source [en])