狠狠撸
Search
Submit Search
入门颁濒辞箩耻谤别厂肠谤颈辫迟
?
4 likes
?
3,365 views
S
sohta
2015/5/23に开催された颁濒辞箩耻谤别厂肠谤颈辫迟勉强会の入门セッション用资料です。
Read less
Read more
1 of 12
Download now
Downloaded 12 times
More Related Content
入门颁濒辞箩耻谤别厂肠谤颈辫迟
1.
?入门颁濒辞箩耻谤别厂肠谤颈辫迟 ClojureScript勉強会 2015/05/23 @HaLake @athos0220
2.
ClojureScriptとは ? JavaScriptにコンパイルされるClojure ? 正確には、Clojureと多くの共通点を持つ別言語 ?
すでにさまざまな企業で商用に使われている - CircleCI - Prismatic - Cisco - eBay - etc. https://github.com/clojure/clojurescript/wiki/Companies-Using-ClojureScript
3.
ClojureScriptの利点 ? immutableなデータ構造が使える 仮想DOMとの親和性 ? マクロが使える core.asyncなどの強力な抽象化 ?
Clojureとのデータとコードの共有 isomorphic Clojure 単なるイロモノでなく具体的な利点をもつAltJS
4.
【言語概論】Clojureとの共通点 ? 基本的なデータ型 (数値、文字列、シンボル、キーワード、関数) ?
コレクション型 (リスト、ベクタ、マップ、セット) ? ユーザ定義型 (deftype, defrecord, defprotocol) ? マルチメソッド ? 名前空間 ? Host Interop (コンストラクタ、メソッド呼び出し)
5.
【言語概論】Clojureとの相違点 ? Atom以外の参照型がない ? evalがない ?
マクロはClojureでしか定義できない ? Host Interop - js-obj - #js[], #js{} - clj->js, js->clj - js名前空間 - js*
6.
コンパイルパイプライン ? Clojureで書かれたコンパイラでJSコードを生成 ? 生成されたJSコードをClosure
Compilerで最適化 Closure Compiler: JSからJSへの最適化コンパイラ Stuart Sierra, Luke VanderHart (2012) “ClojureScript: Up and Running” O’Reilly Media
7.
Closure Compilerの最適化レベル ? WHITESPACE_ONLY 不要な空白、改行、コメントの削除 ?
SIMPLE_OPTIMIZATIONS WHITESPACE_ONLY + ローカル変数名書き換え等 ? ADVANCED_OPTIMIZATIONS SIMPLE_OPTIMIZATIONS + 以下を含む最適化 - よりアグレッシブなリネーム - デッドコード除去 - インライン化 https://developers.google.com/closure/compiler/docs/compilation_levels
8.
ClojureScriptのはじめかた ? Leiningen +
lein-cljsbuild でのやりかた 1. lein-cljsbuildを :plugins に追加 2. project.cljの :cljsbuild にオプションを設定 (defproject lein-cljsbuild-example “0.1.0-SNAPSHOT” :plugins [[lein-cljsbuild "1.0.6"]] :cljsbuild { :builds [{:source-paths ["src-cljs"] :compiler {:output-to "js/main.js" :optimizations :whitespace :pretty-print true}}]})
9.
:optimizationsオプション :optimizations 対応する最適化レベル :none (ClojureScriptコンパイラが出力した??? JSコードのみが生成される) :whitespace WHITESPACE_ONLY :simple
SIMPLE_OPTIMIZATIONS :advanced ADVANCED_OPTIMIZATIONS
10.
ClojureScriptのコンパイル ? lein cljsbuild
once 指定したパス中のClojureScriptファイルをコンパイル ? lein cljsbuild auto ファイルを監視して、変更があれば自動的コンパイルし直す
11.
ClojureScriptのREPL起動 ? lein cljsbuild
repl-rhino RhinoベースのREPLを起動 (ブラウザ機能は使えない) ? lein cljsbuild repl-listen 指定したポートでClojureScriptからの接続を待ち合わせるREPLを起動 ? lein cljsbuild repl-launch :repl-launch-commandsで指定したコマンドからブラウザREPLを起動 * 実際にはREPLを起動するときは lein trampoline 経由で呼び出す必要があります
12.
参考文献 ? Clojure: Up
and Running ? ClojureScript wiki ? lein-cljsbuild wiki
Download