Closure Tools
2013/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アノテーションによる型付け
•コンパイル時の詳細なレポート
•ツール同士の連携

Closure Toolsの紹介