Closure Toolsの紹介

Preview:

Citation preview

Closure Tools2013/08/24 LLまつり

自己紹介•天野 祐介 (@ama_ch)•サイボウズ株式会社• kintone開発チーム•WEB+DB PRESSにてJS連載を執筆中「JavaScript活用最前線 ─ 大規模開発の現場から」

• webデータベース型のビジネスアプリを作成できるサービス

•ノンプログラミングで作れる•データベース + コミュニケーション

kintoneの規模

• PG12名• JSは約21万行

JSフレームワーク

• Closure Compiler• Closure Library• Closure Templates• Closure Linter + JSHint

Closure Library•フルスタックなJSライブラリ•クラスベースなオブジェクト指向•低レイヤな機能からUIコンポーネント, テストスイートまで

• Closure Compilerと一緒に使われることを想定

Closure Compiler

• JS圧縮・難読化ツール•高い圧縮率•詳細なエラーレポート• JSDocアノテーションによる型付け

JSDocアノテーション

エラーレポート

ツール同士の連携

• Closure Tools同士を一緒に使うと、さらに最適化される

• Closure CompilerがClosure Libraryの特定のコードを削除したり型推論したり

コンパイル前 コンパイル後

Warning

連携なし

コンパイル前 コンパイル後

Warning

連携なし

assertで要素の存在は確認しているのに、nullableだと怒られる

コンパイル前 コンパイル後

Warningなし

連携あり

コンパイル前 コンパイル後

Warningなし

連携あり

• CompilerがLibraryのassertを削除• Libraryのassertを見て型推論

Closure Toolsまとめ• Googleで使われている実績•フルスタックなライブラリ•高い圧縮率• JSDocアノテーションによる型付け•コンパイル時の詳細なレポート•ツール同士の連携

Recommended