Team development of JavaScript

I saw an entry about some practices of team development of JavaScript by amachang. While several years ago, I saw a similar blog post and I remember that’s very useful for me and I thought that I would post the summary in English, but I neglected them so far. Now I summarize them here for my personal study.

There are three points in the blog post.

  • How to share the code in a team though JavaScript is flexibile in the coding style
  • How to debug the code
  • Performance tuning

How to share the code in a team

  • Standardize basic library. (e.g., jQuery, Prototype.js, etc.) That means use one basic library in a page.
  • Have naming convention (for example, class name must be written in camel case, use prefix ‘opt_’ for arguments which is omissible.)
  • Delegate resolving dependency to library
  • Emphasize to illustrate concepts to understand it in the team (class oriented style should be good to illustrate the concept in UML)
  • Use same form, pattern of coding for complicated process (e.g., deferred)

In another blog ハタさんのブログ(復刻版) : Javascriptによる大規模開発の覚え書き, there are some other good practices in terms of team development.

  • Use JSON (hash) for arguments, so that you don’t have to care its order when you call the function
  • Write document with JsDoc (or other documentation tool like jsdoc-toolkit

How to debug

  • Use assertion. There is an example of function assert which call debugger when the precondition is not filled and its usage (sample) in the page.
  • Use conditional breakpoint instead of other debug (e.g., alert, console.log.)

Performance tuning

  • You don’t need to care about performance from the beginning
  • But don’t do make it much slower (e.g., scanning all DOM elements)
  • Focus sensible speed first (e.g., give the user enough feedback from the UI. Avoid too much animation.)
  • Use profiler (firebug, webkit) to figure out the point of performance problem

In ハタさんのブログ(復刻版) : Javascriptによる大規模開発の覚え書き, the author recommend to log the processing time at the first item of the post.

Advertisements
Team development of JavaScript

Touch Diamond (X04HT) に xdandroid

Touch Diamond で Android が使えるらしいので試した。Windows Mobile よりも使いやすい感じだったが、今のところ

  • カメラが使えない
  • バッテリーが持たない(フル充電して一晩置いといたら朝にはほとんど無くなってた)

ということで、残念ながらまだ常用できない感じ。

参照サイト

インストール

インストールしたのは、2.2 でファイルのバージョンは 2010/09/04 現在で最新のもの。

  1. ダウンロードサイトから次のファイルをダウンロード
    • XDANDROID.2.2.AOSP.29.7.10.RC2.1.7z
    • XDANDROID.2.2.AOSP.3.9.10.RC.2.2.system.7z
    • initrd-20100813-b11116a.gz
    • rootfs-20100828-c29a486.zip
  2. XDANDROID.2.2.AOSP.29.7.10.RC2.1.7z を解凍
  3. initrd-20100813-b11116a.gz を initrd.gz と置き換え
  4. rootfs-20100828-c29a486.zip を解凍して、rootfs.img と置き換え
  5. XDANDROID.2.2.AOSP.3.9.10.RC.2.2.system.7z を解凍、system.ext2 と置き換え
  6. STARTUP CONFIG の DIAMOND100 にある STARTUP.TXT をルートディレクトリにコピー
  7. Touch Diamond (X04HT) の内部ストレージに andboot ディレクトリとして保存

起動と終了

起動するときは、Windows Mobile のファイルエクスプローラなどから、andboot ディレクトリの HARET.EXE を実行。

終了するときは、リセット。(スタイラスの入ってる所にある小さな赤いボタンを押す)

その他

  • Softbank の MMS を使うには、上の参考サイトにある Mms.apk をダウンロードする。サイトには Root 化とか書いてあったが、単純にインストールしたら使えた(User Agent の設定などをする必要がある)
  • サスペンド中にタッチホイール部分が光るのが気になる場合は、Wheel Light Killing Battery にある LedEffects.apk を入れると、LED の動作を指定する事ができる
  • バッテリーを少しでも長持ちさせるためには、SetCPU でサスペンド中のクロック数を落とすなど。(xda-developers からのダウンロードは無料。xda-developers へのユーザ登録必要)

Android の設定で、勝手アプリ(?)のインストールを許可するようにして、apk ファイルを実行するとインストールできる。

Touch Diamond (X04HT) に xdandroid