Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Martin Heidegger
6,789 views
NodeFest2014 - Transpiler
Slides to the presentation that I held on the 2014 NodeFest conference.
Software
◦
Related topics:
Node.js Development
•
Read more
5
Save
Share
Embed
Embed presentation
Download
Download to read offline
1
/ 54
2
/ 54
3
/ 54
4
/ 54
5
/ 54
6
/ 54
7
/ 54
8
/ 54
9
/ 54
10
/ 54
11
/ 54
12
/ 54
13
/ 54
14
/ 54
15
/ 54
16
/ 54
17
/ 54
18
/ 54
19
/ 54
20
/ 54
21
/ 54
22
/ 54
23
/ 54
24
/ 54
25
/ 54
26
/ 54
27
/ 54
28
/ 54
29
/ 54
30
/ 54
31
/ 54
32
/ 54
33
/ 54
34
/ 54
35
/ 54
36
/ 54
37
/ 54
38
/ 54
39
/ 54
40
/ 54
41
/ 54
42
/ 54
43
/ 54
44
/ 54
45
/ 54
46
/ 54
47
/ 54
48
/ 54
49
/ 54
50
/ 54
51
/ 54
52
/ 54
53
/ 54
54
/ 54
More Related Content
PDF
Ansible入門
by
Daiki Hayakawa
PDF
Ansible入門...?
by
shirou wakayama
PDF
お手軽並列処理
by
博文 斉藤
PPTX
Ansibleで始めるサーバ管理勉強会(2014年10月1日)
by
CLARA, Inc.
PDF
Processing LTSV by Apache Pig
by
Taku Miyakawa
PDF
Ansible 入門 #01 (初心者向け)
by
Taro Hirose
KEY
Fabricでサーバー管理をDRYにしよう
by
max747
PDF
Webサーバのチューニング
by
Yu Komiya
Ansible入門
by
Daiki Hayakawa
Ansible入門...?
by
shirou wakayama
お手軽並列処理
by
博文 斉藤
Ansibleで始めるサーバ管理勉強会(2014年10月1日)
by
CLARA, Inc.
Processing LTSV by Apache Pig
by
Taku Miyakawa
Ansible 入門 #01 (初心者向け)
by
Taro Hirose
Fabricでサーバー管理をDRYにしよう
by
max747
Webサーバのチューニング
by
Yu Komiya
What's hot
PDF
SmartNews TechNight Vol5 : SmartNews AdServer 解体新書 / ポストモーテム
by
SmartNews, Inc.
PDF
Fabric Essentials
by
Yoshinari Takaoka
PDF
【PHPカンファレンス福岡】PHP 5.3 + CakePHP 1.3 → PHP 7 + CakePHP 3 移行を決めた話
by
Yuki Kanazawa
PDF
Serverspecを自分好みにアレンジ スクリーンショットで証跡保存を撲滅-
by
Daisuke Ikeda
PDF
2日間Fabricを触った俺が 色々解説してみる
by
airtoxin Ishii
PDF
Ansible 2.0 のサマライズとこれから
by
Takeshi Kuramochi
PDF
Weeklycms20120218
by
Yoshi Sakai
PPTX
Itamae-Serverspec入門
by
辰徳 斎藤
PPTX
Powershell勉強会 v5 (こちらが最新です。)
by
Tetsu Yama
PDF
Aerospike紹介-LT用
by
Joongjin Bae
PPTX
Powershell 超絶基礎 勉強会 v1 (もっと新しいバージョンがあります)
by
Tetsu Yama
PDF
Webサーバ勉強会03
by
oranie Narut
PPTX
Powershell勉強会 v2 (もっと新しいバージョンがあります)
by
Tetsu Yama
PPTX
Powershell勉強会 v3 (もっと新しいバージョンがあります)
by
Tetsu Yama
PPTX
CMSとPerlで遊ぼう
by
Daiki Ichinose
PPTX
中小規模サービスのApacheチューニング
by
勲 國府田
PPTX
Powershell基礎_20180521用
by
Tetsu Yama
PDF
serverspecでサーバ環境のテストを書いてみよう
by
Daisuke Ikeda
PPTX
Powershell勉強会 v4 (もっと新しいバージョンがあります。)
by
Tetsu Yama
PDF
serverspecみんなで集めて(゚Д゚)ウマー?
by
Sho Hashimoto
SmartNews TechNight Vol5 : SmartNews AdServer 解体新書 / ポストモーテム
by
SmartNews, Inc.
Fabric Essentials
by
Yoshinari Takaoka
【PHPカンファレンス福岡】PHP 5.3 + CakePHP 1.3 → PHP 7 + CakePHP 3 移行を決めた話
by
Yuki Kanazawa
Serverspecを自分好みにアレンジ スクリーンショットで証跡保存を撲滅-
by
Daisuke Ikeda
2日間Fabricを触った俺が 色々解説してみる
by
airtoxin Ishii
Ansible 2.0 のサマライズとこれから
by
Takeshi Kuramochi
Weeklycms20120218
by
Yoshi Sakai
Itamae-Serverspec入門
by
辰徳 斎藤
Powershell勉強会 v5 (こちらが最新です。)
by
Tetsu Yama
Aerospike紹介-LT用
by
Joongjin Bae
Powershell 超絶基礎 勉強会 v1 (もっと新しいバージョンがあります)
by
Tetsu Yama
Webサーバ勉強会03
by
oranie Narut
Powershell勉強会 v2 (もっと新しいバージョンがあります)
by
Tetsu Yama
Powershell勉強会 v3 (もっと新しいバージョンがあります)
by
Tetsu Yama
CMSとPerlで遊ぼう
by
Daiki Ichinose
中小規模サービスのApacheチューニング
by
勲 國府田
Powershell基礎_20180521用
by
Tetsu Yama
serverspecでサーバ環境のテストを書いてみよう
by
Daisuke Ikeda
Powershell勉強会 v4 (もっと新しいバージョンがあります。)
by
Tetsu Yama
serverspecみんなで集めて(゚Д゚)ウマー?
by
Sho Hashimoto
Viewers also liked
PDF
Node-v0.12のTLSを256倍使いこなす方法
by
shigeki_ohtsu
PPTX
Nodeで操るKurentoメディアサーバー ( Kurento + WebRTC + Node.js )
by
mganeko
PDF
power-assert, mechanism and philosophy
by
Takuto Wada
PDF
Node.jsでブラウザメッセンジャー
by
Yahoo!デベロッパーネットワーク
PDF
「新しい」を生み出すためのWebアプリ開発とその周辺
by
Yusuke Wada
PDF
Real-time Bus Location System using by node.js
by
Yahoo!デベロッパーネットワーク
KEY
Lev
by
Kazuya Kawaguchi
PDF
Promiseでコールバック地獄から解放された話
by
Sota Sugiura
PPTX
決定版:サービスの盛り上がり具合をユーザの数(DAU)から読み解く方法
by
Daisuke Nogami
PPTX
DAUを評価指標から捨てた会社の話 #tokyowebmining
by
Tokoroten Nakayama
PPTX
スマホマーケットの概要と、マーケティングの失敗例と改善 (アナリティクス アソシエーション 特別セミナー)
by
Tokoroten Nakayama
Node-v0.12のTLSを256倍使いこなす方法
by
shigeki_ohtsu
Nodeで操るKurentoメディアサーバー ( Kurento + WebRTC + Node.js )
by
mganeko
power-assert, mechanism and philosophy
by
Takuto Wada
Node.jsでブラウザメッセンジャー
by
Yahoo!デベロッパーネットワーク
「新しい」を生み出すためのWebアプリ開発とその周辺
by
Yusuke Wada
Real-time Bus Location System using by node.js
by
Yahoo!デベロッパーネットワーク
Lev
by
Kazuya Kawaguchi
Promiseでコールバック地獄から解放された話
by
Sota Sugiura
決定版:サービスの盛り上がり具合をユーザの数(DAU)から読み解く方法
by
Daisuke Nogami
DAUを評価指標から捨てた会社の話 #tokyowebmining
by
Tokoroten Nakayama
スマホマーケットの概要と、マーケティングの失敗例と改善 (アナリティクス アソシエーション 特別セミナー)
by
Tokoroten Nakayama
More from Martin Heidegger
PPTX
20190813 - UX Vienna - questions for the audience
by
Martin Heidegger
PPTX
私の OSS 道について
by
Martin Heidegger
PDF
20170624 GraphQL Presentation
by
Martin Heidegger
PPTX
Presentation of the KansaiScene API at #kansaimashapp
by
Martin Heidegger
PPTX
JAWS Osaka July 2014, Opsworks + Node.js
by
Martin Heidegger
PPTX
英語コーダー大阪 ー 初めての英語コーダー教室
by
Martin Heidegger
20190813 - UX Vienna - questions for the audience
by
Martin Heidegger
私の OSS 道について
by
Martin Heidegger
20170624 GraphQL Presentation
by
Martin Heidegger
Presentation of the KansaiScene API at #kansaimashapp
by
Martin Heidegger
JAWS Osaka July 2014, Opsworks + Node.js
by
Martin Heidegger
英語コーダー大阪 ー 初めての英語コーダー教室
by
Martin Heidegger
NodeFest2014 - Transpiler
1.
ならば... Node Transpilerをいかに改善できるか。 すべての Node Transpilerが がひどい!
2.
Source → Source
Compiler = Transpiler
3.
Dart TypeScript CoffeeScript JSX (React) JSX Browserify UglifyJS → JavaScript
4.
→ HTML EJS Marked Handlebars Jade
5.
Transpiler → CSS Less Stylus Sass
6.
色々あるのに... 皆がよく使っているのに... なんで悪いの? Transpiler
7.
• パーフォマンス • 設定システム •
ノティフィケーション • CLI ごっちゃごっちゃ • 合成 理由がたっぷり
8.
Static Site Generator
の 待つ時間がながい! Transpiler パーフォマンス
9.
Transpiler パーフォマンス a-/sync?
10.
Transpiler パーフォマンス SYNC ASYNC
IMPORT CoffeeScript ✓ ✕ ✕ CoffeeScript Redux ✓ ✕ ✕ TypeScript ✓ ✕ import x = … JSX ✓ ✕ import x JSX (React-tools) ✓ ✕ ✕
11.
Transpiler パーフォマンス smallA.jade bigA.jade smallB.jade bigB.jade ASYNC smallA.jade
bigA.jade smallB.jade bigB.jadeSYNC 例:TypeScript: smallA.ts → bigA.ts + smallB.ts → bigB.ts
12.
Transpiler パーフォマンス SYNC ASYNC
IMPORT EJS ✓ ✕ render(…) Marked ✓ ✕ ✕ Handlebars ✓ ✕ ✕ Jade ✓ ✕ include x
13.
Transpiler パーフォマンス SYNC ASYNC
IMPORT Less ✓ ✓ @import “…” Stylus ✕ ✓ @import “…” Sass ✓ ✕ ✕ Node-Sass ✕ ✓ @import “…”
14.
Transpiler パーフォマンス require(“transpiler”); のスピード
15.
Transpiler パーフォマンス CoffeeScript 53ms CoffeeScript
Redux 63ms TypeScript 55ms JSX 235ms JSX (React-tools) 75ms EJS 4ms Marked 5ms Handlebars 24ms Jade 270ms Less 131ms Stylus 121ms Sass 3ms Node-Sass 13ms
16.
Transpiler パーフォマンス import caching
17.
import caching 例 library.jade
(120kb) home.jade (2kb + include library.jade) team.jade (3kb + include library.jade) Transpiler パーフォマンス 310ms 10ms 10ms
18.
Import Caching (なし) Transpiler
パーフォマンス home.jade team.jade home.jade (2x) library.jade library.jade library.jade
19.
Import Caching (あり) Transpiler
パーフォマンス home.jade team.jade home.jade (2x) library.jade
20.
(.........設定システムを検索中です…………………) Transpiler 設定システム
21.
Transpiler 設定システム 一般的な設定 言語専用設定 環境設定 (ファイル設定) (ユーザー設定) 設定の名前システム
22.
Transpiler 設定システム 一般的な設定 言語専用設定 環境設定 (ファイル設定) (ユーザー設定) - source-map -
target-encoding (utf8) - pre/post processing - output file(s) - input files(s) ちなみにI/O piping - config-check only - import paths - plugins
23.
Transpiler 設定システム 一般的な設定 言語専用設定 環境設定 (ファイル設定) (ユーザー設定) - no-header
(CoffeeScript) - prefix (Stylus) - inline (Stylus) - strict-math (Less) - url-args (Less) - relative-urls (Less) - doctype (Jade) - obj (Jade)
24.
Transpiler 設定システム 一般的な設定 言語専用設定 環境設定 (ファイル設定) (ユーザー設定) Production? Staging? Development?
25.
Transpiler 設定システム 一般的な設定 言語専用設定 環境設定 (ファイル設定) (ユーザー設定) - lintのコードスタイル -
問題の設定をはすずため - コンパイラバーション
26.
Transpiler 設定システム 一般的な設定 言語専用設定 環境設定 (ファイル設定) (ユーザー設定) - エンバイロンメント変数 -
エラー言語(英語・日本語)
27.
Transpiler 設定システム jade --out
file.jade 設定入力システム
28.
Transpiler 設定システム jade --conf
config.json { “output”: “file.jade” } 設定入力システム
29.
jade --conf config.yaml Transpiler
設定システム output: file.jade 設定入力システム
30.
Transpiler 設定システム env JADE_OUTPUT=file.jade
jade 設定入力システム
31.
Transpiler 設定システム jade --conf
config.xml <xml> <output>file.jade</output> </xml> 設定入力システム
32.
Transpiler 設定システム jade --out
file.jade --save-conf conf.yaml 設定の保存方法
33.
まだ良いほう(?) のwatch Transpiler ノティフィケーション
34.
http://youtu.be/R808-qxBt_E
35.
Transpiler ノティフィケーション test.jade dep.jade watch:
Stage 1 just main file
36.
Transpiler ノティフィケーション test.jade dep.jadedep.jade watch:
Stage 2 import
37.
watch: Stage 3 pattern
import Transpiler ノティフィケーション test.jade dep.jadedep.jade lib/*.jade
38.
Transpiler ノティフィケーション test.jade dep.jadedep.jade lib/*.jade inline.js watch:
Stage 4 cross compiler
39.
watch: Stage 3 pattern
import watch: Stage 4 cross compiler watch: Stage 1 just main file watch: Stage 2 import Transpiler ノティフィケーション test.jade dep.jadedep.jade lib/*.jade inline.jsconfig.json watch: Stage 5 config
40.
watch: Stage 3 pattern
import watch: Stage 4 cross compiler watch: Stage 1 just main file watch: Stage 2 import Transpiler ノティフィケーション test.jade dep.jadedep.jade lib/*.jade inline.jsconfig.json watch: Stage 5 config watch: Stage 6 piping test.min.html.gz compressor
41.
coffee --pipe --out ??? Transpiler
のCLI ごっちゃごっちゃ
42.
Transpiler のCLI ごっちゃごっちゃ handlebars
-d --data lessc --global-var="VAR=VALUE" jade -O --obj stylus --import データインポート
43.
Transpiler のCLI ごっちゃごっちゃ coffee
--debug ts --noImplicitAny marked --silent 出力の量
44.
Transpiler のCLI ごっちゃごっちゃ 引数なし? REPL? PIPE? USAGE? ERROR? VERSION? ? ? ? ? ?
45.
Transpiler のCLI ごっちゃごっちゃ エラーコードやフォマッティング Syntax
Error Config Error Unexpected Error I/O Error
46.
Transpiler 合成 <html> <script> → JavaScript
Transpiler </script> <style> → CSS Transpiler </style> <body> → HTML Transpiler </body> </html> var a = “→ HTML Transpiler”, b = “→ CSS Transpiler”, c = → JavaScript Transpiler; head { … } → CSS Transpiler index.html main.js screen.css
47.
どうして、 このテーマ?
48.
Awareness 認知度
49.
Eco-System 生態系
50.
Discussion 議論
51.
どうして、 私?
52.
Martin Heidegger ハイデッガー マルティン オーストリア(ヨーロッパ) 全般技術社 @leichtgewicht martinheidegger
53.
どうして、 今日?
54.
github.com/better-compiler/member gitter.im/better-compiler
Download