19
Closure Tools 2013/08/24 LLまつり

Closure Toolsの紹介

  • Upload
    ama-ch

  • View
    567

  • Download
    2

Embed Size (px)

Citation preview

Page 1: Closure Toolsの紹介

Closure Tools2013/08/24 LLまつり

Page 2: Closure Toolsの紹介

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

Page 3: Closure Toolsの紹介

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

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

Page 4: Closure Toolsの紹介
Page 5: Closure Toolsの紹介
Page 6: Closure Toolsの紹介
Page 7: Closure Toolsの紹介
Page 8: Closure Toolsの紹介

kintoneの規模

• PG12名• JSは約21万行

Page 9: Closure Toolsの紹介

JSフレームワーク

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

Page 10: Closure Toolsの紹介

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

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

Page 11: Closure Toolsの紹介

Closure Compiler

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

Page 12: Closure Toolsの紹介

JSDocアノテーション

Page 13: Closure Toolsの紹介

エラーレポート

Page 14: Closure Toolsの紹介

ツール同士の連携

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

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

Page 15: Closure Toolsの紹介

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

Warning

連携なし

Page 16: Closure Toolsの紹介

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

Warning

連携なし

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

Page 17: Closure Toolsの紹介

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

Warningなし

連携あり

Page 18: Closure Toolsの紹介

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

Warningなし

連携あり

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

Page 19: Closure Toolsの紹介

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