2013年8月8日木曜日

[Titanium Mobile] Strict ModeとJSLintで統一性のあるCoding

titanium_strict-mode jslintTitanium Mobileの開発に慣れてきたところで、strict modeとJSLintを利用してコードを綺麗にしたときの覚書。

環境: Titanium SDK 3.1.1.GA

strict mode(厳格モード)はJavaScriptを書くときに曖昧な記述がエラー扱いになる。詳しくは下記。

Titanium SDK 3.0から対応しているらしい。使い方はファイルの先頭か関数ごとに宣言する。

(function() {
    'use strict';
    // something
}());

 

JSLintはJavaScriptの文法チェックと非推奨の書き方がされていないかチェックしてくれる。

Titanium Studioにも標準で実装されているので、Titanium Studioで開発していると自動的にWarningが表示される。

ただ、アンダーバー(_)で開始される関数名を許可する場合などは、ファイルの先頭でオプションを指定する必要がある。オプションの詳細は公式サイトで。

これらを踏まえ、一つの画面を実装するためのモジュール(ファイル)は下記のような感じにした。

 

< 2014/06/03 Modified >
この書き方はイケてない。今はNode.jsのCommonJSモジュールのように書いている。

 

/**
* Description
*/
/*jslint eqeq:true, nomen:true, devel:true, plusplus:true*/
module.exports = (function() {
    'use strict';

    /**
     * @constructor
     */
    var Index = function($, params) {
        var self = this;

        this.$ = $;

        //
        // Generate Window
        //
        this.window();

        //
        // Get data
        //
        this.win.addEventListener('open', function() {
            self.getData();
        });

        return this.win;
    };

    /**
     * Generate Window
     */
    Index.prototype.window = function() {
        var Window = require('/ui/common/window');

        this.win = new Window(this.$, {
            title: L('index')
        });
    };

    /**
     * Get data
     */
    Index.prototype.getData = function() {
        var self = this;

        //
        // Get data from server
        //
        this.$.network.post('get_data', {}, function(res) {
            self.handleDataDownloaded(res);
        });
    };

    return Index;
}());

 

「$」はアプリケーション全体で使いまわすグローバルオブジェクト。必ずオブジェクトを生成するときに渡すようにしてる。

普段はxyzzyでコーディングして、たまにTitanium StudioでWarningが出てないか確認している。

綺麗にしたあとは若干アプリの挙動もサクサクになった感じがする。

コーディング規約は公式サイトのを参考に。

 

< Related Posts >

コメントを投稿
Related Posts Plugin for WordPress, Blogger...

Blog Archives