Slide 1

Slide 1 text

東京 Node 学園 19 時限目 Lebab につ い て 株式会社 FiNC 森 久太郎 Twitter/GitHub: @qsona 1 / 14

Slide 2

Slide 2 text

前回までの あ らすじ Node.js で普通の API サーバをガリガリ書 い てた 「 フツウ 」 の サーバサイド開発に Node.js を採用しません か ? (-- Node 学園祭 2015 での発表 ) 2 / 14

Slide 3

Slide 3 text

近況 _人人人人人人人人人人人人人人人_ >  Ruby on Rails に魂売りました   <  ̄ Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y  ̄ 3 / 14

Slide 4

Slide 4 text

Lebab ( 旧 xto6) https://github.com/mohebifar/lebab 4 / 14

Slide 5

Slide 5 text

Lebab ( 旧 xto6) Babel の逆 ES5 までのコードを ES.next のコードに変換する 既存の大量のコードを移行で き る 今 か ら一旦 ES5 で開発開始しても 、 後で移行で き る ここ 最近の開発で 、 使 え るプロダクトになって き て い る 10000 行程度に適用した 5 / 14

Slide 6

Slide 6 text

Babel との比較 Babel Lebab 継続して使 う 基本一回だ け 速 い ほ うがいい 遅 く ても いい Regenerative Non-Destructive 6 / 14

Slide 7

Slide 7 text

Source Transformation AST を利用し 、 ソースコードを書 き 換 え る技術 参考 : カジュアル JavaScript AST http://azu.github.io/slide/JSojisan/ Non-Destructive / Regenerative ( 前者 ) 元のコードの情報を維持したまま 、 関心 があ ると こ ろ だ け を書 き 換 え る ex) Lebab ... 空白行と か を残した い ( 後者 ) 元のコードの情報を維持せず 、 新し いAST を作る ex) Babel, istanbul, など 7 / 14

Slide 8

Slide 8 text

Non-Destructive 最初 (2015/11 まで ) は Regenerative だった escodegen => recast にして Non-Destructive に 移行は超簡単だった 関係な い 修正は 3 行 く ら い AST 標準の おかげ 8 / 14

Slide 9

Slide 9 text

2015/11 の状態 割と使 い 物にならな か った f o r ( v a r i = 0 ; i < 3 ; i + + ) { . . . } ↓ f o r ( c o n s t i = 0 ; i < 3 ; i + + ) { . . . } 9 / 14

Slide 10

Slide 10 text

2015/12 の状態 少し直して 、「 使わな い よりはマシ 」 に f u n c t i o n a ( ) { v a r x = 0 ; } v a r x = 1 ; ↓ f u n c t i o n a ( ) { c o n s t x = 0 ; } l e t x = 1 ; ( 自分にとって大した問題じゃな いか ら放置した ) 10 / 14

Slide 11

Slide 11 text

2016/2 ( 現在 ) の状態 直ってる !! 有力な contributor が 出現してるぽ い 11 / 14

Slide 12

Slide 12 text

チーム開発での移行 当然コンフリクトする lebab か ますのは い つでもで き る lebab 以外の修正を全て優先し 、 最後に lebab し直す master に lebab 入った branch で g i t r e b a s e m a s t e r したらコンフリクト g i t c h e c k o u t f i l e - - t h e i r s => 再 lebab 12 / 14

Slide 13

Slide 13 text

チーム開発での移行 1 つずつ順番にやったほ うがいい ex: https://github.com/qsona/xto6-let var を const と let にするだ け の cli です 13 / 14

Slide 14

Slide 14 text

Thanks!! We are hiring!!! microservices FiNC とマイクロサービス オーケストレーション層を Node.js で作りた い( 計画中 ) React 機械学習 14 / 14