WebModule

JavaScript Module for Mobile Web Application

@uupaa - 2015-05-31 (ver 2.0)

WebModule

Motivation

Concept

シンプルで
テストがあり
どこでも動作し
品質が数値化され
仕様と実装が分離した
良質な部品群を量産するための
開発フローとフォーマットを提供する

Mosaic

Chrome + GitHub + npm + ClosureCompiler + ESLint + Plato + Travis-CI + Markdown

Feature

Host on GitHub and npm

  • モジュールのリポジトリを GitHub に置き
    npm に公開します

Separate Code and Spec

  • Spec(仕様)は Codeと分離し GitHub/wiki に置きます
  • Spec をオンラインで管理し履歴を見れるようにします

Lint, Validate and Coverage

  • 静的型チェック機能を提供しています(npm run lint)
  • 動的型チェック機能を提供しています($valid, $type ...)
  • 静的解析機能を提供しています(npm run score)
    • Plato で 品質が数値化され、履歴から状況が可視化されます

Test and Optimization

  • 速度とサイズを両立したビルドができます
    • ClosureCompiler の ADVANCED MODE でビルドします
  • ソースコードと最適化後のコードを同時にテストできます
    • 最適化後のコードが正しく動作する事を保証できます
    • 様々な環境で動作するテストランナーを提供しています
    • どこでも動作する事を保証できます
    • Node.js, Browser, WebWorker, NW.js
    • Travis CI, iPhone Simulator

Not Feature

No JavaDoc

  • WebModule ではSpec や API Spec を管理する
    新しい手法(オンラインリファレンス)を推奨しています
  • 古い手法(JavaDoc, JsDoc)は非推奨です

No Module Loader

  • WebModule は AMD や Common.js のような
    Module をロードする仕組み提供するものではありません