goog.require()を
手書きしていいのは
   小学生まで
           @teppeis
   2012/11/08 ありえるミニ勉強会 #4
   http://connpass.com/event/1214/
自己紹介
• 佐藤鉄平 @teppeis
• サイボウズでkintoneっていう
 サービスを作っています。
 参考: 大規模UIをJavaScriptで実現するためのテクニック、サイボウズkintone開発の
 現場から。デブサミ2012 − Publickey



• フロントからバックエンドまでやって
 ます。
JS連載中!
!!
jQueryなど
世を忍ぶ仮の姿に過ぎない。
Closure歴2年ちょっと
好きなClosure Toolsは
Closure Templatesと
fixjsstyleです!
好きなクラスは
goog.Disposableです!
※本題とはそれますが
• Closure Libraryは、
 Closure Compilerの能力を
 最大限に引き出すために作られたFWです

• Closure Compilerが大前提です。
• それを踏まえて使用を検討しましょう。
本題
みなさん、
goog.require()とか、
書くの面倒じゃないですか?
Java(とEclipse)で
import文を手書きしてたら
「え?」ですよね。
fixclosure:
goog.require/provideの過不足をチェックして
コードに挿入/削除するコマンドを作って、
vimと連携してみた。
Demo
最初はどこでも動くように
bashで書きました。
どの環境でもすぐ動いた。
CIにも組み込めた。
(requireが漏れてたらビルドを落とす)
ところが、
sed地獄
Mountain Lionで使えない...




              http://www.dirtdon.com/?p=14
拡張もメンテもきつい。。
そこで、
Esprima!
Esprimaベースでリライト!
Esprimaベースなら、
柔軟な拡張が可能。
例えば、
disposeInternalメソッド内での
goog.base呼び忘れ(リソース漏れの大惨事)
をチェックするとか、
より柔軟なLint&Fixが実現できる。
$ npm install -g fixclosure

https://github.com/teppeis/fixclosure


先ほど無理矢理publishしたalpha版のため、
ご利用の際はご注意ください:)
ありがとうございました!

goog.require()を手書きしていいのは小学生まで