Ti.includeに関する実験

  • インクルードしたファイルの内容がそこにそのまま挿入される
  • 何回でもインクルード可能

という特徴を確認するための実験をちょっとしてみた。

a.js
a += 1;
app.js
var a = 0;

Ti.include('a.js');
Ti.include('a.js');
Ti.include('a.js');
Ti.include('a.js');
Ti.include('a.js');

Ti.API.info(a);
// #=> a = 5 になっている 

なるほどねえ、といったかんじ。
これはつまり以下のコードと等価になる。

var a = 0;

a += 1;
a += 1;
a += 1;
a += 1;
a += 1;

Ti.API.info(a);

しかしTi.includeをコードの頭で必要なクラスなどを読み込む場合はいいとして、こんな風にコードの途中で処理を呼ぶ目的で使うのはカオスの予感だ。
処理が複雑になった場合、デバッグ時などにインクルードしたファイルの中で何が変更されているのか追っていくのは心を削る作業になるだろう。

長い一つのapp.jsを単なる処理の固まりごとに(クラスごとにというわけでもなく)複数ファイルに分割してTi.includeで読んでいるようなコードを見たことがあるけど、そういうことはやめた方がいいと思う。
そういう分割の仕方ならapp.jsに全部書いた方がまだマシかと。