CLIについてしゃべってきました。CLIについての説明と、今のプロジェクトでなぜ使おうと思ったのかその理由とを説明しました。このスライドの流れに沿ってしゃべった内容を書き留めておきます。CLIとは公式サイトには「大規模ウェブアプリ用CLIです」とキャッチコピーが書いてありますが、正直ナンのことやらです。以下でかみくだいて紹介します。bowerphantomはインテグレーションテスト用、bowerは言わずもがな、ブラウザコンポネントの管理に使われます。ember-cliこれだけです。コマンドおもなコマンドをざっと紹介。<app-name>に指定したディレクトリが作られ、以下にEmber.JSプロジェクトが生成されます。自動的に実行されます。フォルダ構成めんどくさいので公式サイトか、スライドの8,9ページを参照してください...Railsっぽい感じのレイアウトになってます。Modelなど、Ember.JSのオブジェクトをひな形をベースに生成するコマンドです。CLIではblueprintsと呼ばれます。Emberアプリ本体のtemplateとの呼び分けのためですね。作成中のウェブアプリを実行できます。ライブリロードも同時に立ち上がるので開発中はとりあえず実行しておくコマンドです。ちなみに、ここで立ち上がるサーバはnodeのexpressです。自分でミドルウェアを書けば挙動をカスタマイズできます。api-stubこのローカルサーバを使ってapi-stubが作れます。generateコマンドでも作れるようになっていてこれまたお手軽です。path/to/routeこれでapi-stubのひな形ができます。実行し直す必要があります。これを使うと実際に通信しながらapiのテストができるのでバックエンドいらずで開発を進められて大変便利です。testでQunitが実行されます。アセットの処理ビルド時にJSとかCSSとか画像とかのアセットがいい感じにまとまるのですが、そのルールは14ページ目を見てください。コマンドでだいたいできると、ここまで見たように、ウェブアプリのフロントを作るときにだいたい欲しいものが揃ってると思います。最近のフロントエンド開発だと、いちいち自分でgruntとかgulpのタスク書いて、apiスタブのサーバ用意して...とか結構めんどくさいのですごく便利です。頑張ればyeomanでもおそらく作れると思うんですが、公式に近い形でこういうものが提供されているというのが、ものぐさな私にはすごく響きました。Module構文と、ファイル名による命名規則でした。Transpilerを利用しています。CLIを利用する際のアプリケーションのソースコードはすべて、ES6のモジュール構文で書くことができます。最終的に出力されるJSはAMD形式に書き換えられるので、現行のブラウザでも問題なく実行できます。CLIではモジュール構文を活用してそれをファイル名によって解決する命名規則を取っています。「どういうグローバル変数名にするか」、から、「どこに保存するか」の命名規則になっているのです。良いのですごく楽です。メリットこのモジュールとファイル名の命名規則によるメリットですが、おもに以下かと思います。グローバル変数がいらない長い変数名付けなくていいファイル中に変数名が存在しないからリファクタが楽(フォルダ移動で終わり)命名規則に従うと勝手にフォルダ構造が綺麗に保たれるこれらによって、開発中の細かいストレスがすごく楽になると感じます。CLIを選んだ理由になります。いうプロダクト名なので、名前を聞くと「ただの便利コマンドでしょ?」、と思ってしまいがちですが、ただのCLI以上の働きをしてくれるツールです。大げさに「Ember.jsのフレームワークとしての完成度をより高めてくれるツール」くらいのことを言っていいんじゃないかとおもってます。興味が出てきたら、是非チャレンジしてみてください。Policytwitter(@esukei)。