開発者ブログ
リファレンス(仕様詳細) » 基本的なファイルテンプレート

基本的なファイルテンプレート

Last modified by simdy on 2014/05/24, 16:59

hifiveでコードを書く際に使用するファイルテンプレートです。
特にコントローラやロジックを記述する際に有効です。
(基本的に、以下のテンプレート1つで1つのコントローラまたはロジックを記述します。)

  • ポイント
    • 全体を即時関数でくるむことにより、グローバルの汚染を防止しています
    • jQueryオブジェクトをキャプチャしているので、jQueryのバージョンによるAPI非互換性が発生した場合使用するjQueryを固定できます(jQueryを使用しない場合は先頭の$と最後のjQueryをなくしてください)
    • コントローラのプロパティに@memberOfタグ(JSDocタグ)をつけることで、エディタによるアウトライン表示や補完を助けます
      (例えば、EclipseのJSDTでコントローラのアウトラインが表示されるようになります)
      なお、@memberOfはいずれか1つのプロパティにつければエディタが認識することが多いので、他に問題がなければnameプロパティにだけつけておくのがよいでしょう。
      (もしコントローラのFQCNを変えることになった時にリネーム箇所を減らすため)
/**
 * (C) 2014
 */

(function($) {

   // =========================================================================
   //
   // 外部定義のエイリアス
   //
   // =========================================================================

   // TODO 別ファイルで定義されている定数・変数・関数を別の変数で使用する場合にここに記述
   // 例:var getDeferred = h5.async.deferred;

   // =========================================================================
   //
   // スコープ内定数
   //
   // =========================================================================

   // =========================================================================
   //
   // スコープ内静的プロパティ
   //
   // =========================================================================

   // =============================
   // スコープ内静的変数
   // =============================

   // TODO: このスコープで共有される変数を記述
   // 例:var globalCounter = 0;

   // =============================
   // スコープ内静的関数
   // =============================

   // TODO: このスコープで共有される関数(newせずそのまま呼び出す関数)を記述
   // 例:function myFunction() { /* ... */ }

   // =========================================================================
   //
   // スコープ内クラス
   //
   // =========================================================================

   // =============================
   // クラス1
   // =============================

   //TODO: このスコープ内でのみ使用するクラス(newでインスタンス化して使うコンストラクタ関数等)を
   //TODO: ここに記述(上部の「XYZクラス」のコメントブロックはクラスごとにつける)


   // =========================================================================
   //
   // メインコード(コントローラ・ロジック等)
   //
   // =========================================================================

   //TODO: コントローラやロジックを書く

   /**
     * @class
     */

   //var controller = {
   //    /**
   //     * @memberOf myapp.controller.SampleController
   //     */
   //    __name: 'myapp.controller.SampleController'
   //}

   // =========================================================================
   //
   // 外部公開
   //
   // =========================================================================

   //TODO: 他のファイルから参照できるようにしたいものを公開する
   //h5.core.expose(controller);
   //h5.u.obj.expose('sample.namespace', { obj: value });

})(jQuery);

Copyright (C) 2012-2017 NS Solutions Corporation, All Rights Reserved.