クラスファイルを置くディレクトリの階層構造について
こんにちは、kijimaです。
カヤックサイトが2年ぶりに リニューアルして社員紹介ページも一新されました。そのほかにも見所たくさんで、ちゃんと見よ うとするとあっという間に一日経ってしまいそうなボリューム感です。
思えば、前回の二年前のサイトリニューアルがきっかけでカヤックのことを知ったので、カヤ ックと僕の関係も今日でまる二年になります。
さて、今回はタイトルの通り、案件別フォルダのFlash関連ファイルをどう整理するかというこ となんですが、みなさんはどうしているのでしょうか?
自分がFlashを始めた頃は.flaファイルに直接スクリプトを書いていましたが、asファイルに分 けて書くようになってから、flaファイルのほかにasファイル、と管理するものが増えました。
しかしながら、とりあえずflaファイルを置いているディレクトリと同階層にすべてのasファイ ルを置いて、なおかつhtmlやjsファイルもすべて同じ階層に置いていたので、その中はぐちゃぐち ゃ、まさにカオス状態だったのです。
その当時の案件フォルダ内を見返した日には、二度といじりたくないな...と思ってしまうほど 。
こんな感じでとにかく視認性が悪いです。クラス命名の適当さも相成って、どのクラスが何の 役割をしているのかも、実際にファイルを開いてみないとわからないような状況。
「パッケージって何?それおいしいの?」という具合に、パッケージやクラスパスという概念 を知らなかったので、とにかく同じ階層につっこんでました。他の先輩Flasherが作った案件ファ イルを見て、自分のカオスフォルダと違ってきちんと整理されていることに愕然としたものです。
とそこで、ほかの多くのFlasherがそうしているように、asファイルは「classes」ディレクト リ内にまとめるのは理解できたんですが、その下階層になぜ「display」「events」「net」 「utils」といった名前でフォルダ分けをしているのかその理由がよくわかっていませんでした。
その人固有の名前の付け方なのかなーと思ってたんですが、flashのビルトインクラスと同じ名 前の付け方だったんですね。気がつきませんでした。flash.displayパッケージとか。
たしかに、display, display/buttons, events, commands, models, utils...など、あらかじめ クラスファイルを管理するフォルダを分けて置けば、コードを書くときにひとつのクラスにもたせ る役割も整理されますね。それに、抽象的な名前のクラスを作らないように心がけるようになるの で、ひとつのクラスファイル内にふたつもみっつも役割を持たせることがなくなります。
それって、いわゆるMVCの概念やらを理解するためのヒントになっているのかなぁ、と思いました 。(自分もまだそんなに理解していないんですが^^;)
あと、htmlファイルやjsファイルは「deploy」フォルダにまとめて、flaファイル関連は同階層 に「src」フォルダを作ってその中にまとめたり。
最近はProgressionのプロジェクトを生成したときに出来上がるディレクトリの構成とほぼ同じ 形で管理しているんですが、社内であらかじめ案件のファイル構成のフォーマットを決めておかな いと、引き継ぎや多人数による作業がうまくいかないのでは!と思いました。
今日はそんな、気づきの小ネタでした。
次回は、最近購入した「ActionScript3.0 デザインパターン」を読んで気づいたことでもメモ しようかと思います。それではまた次回!