JavaScriptファイルやCSSファイルを圧縮して高速化する「YUI Compressor Online」 - GIGAZINE
でJavaScriptを圧縮して高速化するツールが紹介されていたので、圧縮についてちょっと調べてみた。
JavaScript圧縮ツールは、JavaScriptのプログラムからコード上本質的でないホワイトスペース(空白)や改行を除去する。
通常、空白や改行はコードを読みやすくしたり、ミスを少なくするために書かれるので、本来はなくても大丈夫。ただ;を改行ごとにつけていないと、改行が削除された時点でエラーが発生してしまう。(;は省略可能だが、同じ行に複数のコードを書くときは;で区切る必要がある。)
圧縮ツールは小さなスクリプトの場合は不要だが、Ajaxライブラリのように非常に大きなものには有用だ。
圧縮すると確かに高速化されるというメリットがあるが、問題点もある。
- もしエラーが起きたとき、圧縮されたコードのデバッグは困難。
- コードが読みにくいので、JavaScript開発者のコミュニティの「品質保証」を得て広く共有されることは不可能
※逆に共有を制限するため、圧縮に伴うコードの不明瞭化を理由に圧縮ツールを採用することもある。
圧縮ツールのオプションである程度の問題は解消できるみたいだが、そうするとその分圧縮率は下がるのでどっちをとるか考えないといけない。でもコードをさらしたくない場合は、圧縮し難読化することでコードをみられるのを防ぐこと出来る。