Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Lebab

qsona
February 09, 2016

 Lebab

東京Node学園 19時限目 飛び入りLT
(links)
lebab https://github.com/mohebifar/lebab
カジュアルJavaScript AST http://azu.github.io/slide/JSojisan/
qsona/xto6-let https://github.com/qsona/xto6-let
FiNCとマイクロサービス http://www.slideshare.net/fumiyashinozuka/finc-52564251

qsona

February 09, 2016
Tweet

More Decks by qsona

Other Decks in Technology

Transcript

  1. 東京 Node 学園 19 時限目 Lebab につ い て 株式会社

    FiNC 森 久太郎 Twitter/GitHub: @qsona 1 / 14
  2. 前回までの あ らすじ Node.js で普通の API サーバをガリガリ書 い てた 「

    フツウ 」 の サーバサイド開発に Node.js を採用しません か ? (-- Node 学園祭 2015 での発表 ) 2 / 14
  3. Lebab ( 旧 xto6) Babel の逆 ES5 までのコードを ES.next のコードに変換する

    既存の大量のコードを移行で き る 今 か ら一旦 ES5 で開発開始しても 、 後で移行で き る ここ 最近の開発で 、 使 え るプロダクトになって き て い る 10000 行程度に適用した 5 / 14
  4. Babel との比較 Babel Lebab 継続して使 う 基本一回だ け 速 い

    ほ うがいい 遅 く ても いい Regenerative Non-Destructive 6 / 14
  5. Source Transformation AST を利用し 、 ソースコードを書 き 換 え る技術

    参考 : カジュアル JavaScript AST http://azu.github.io/slide/JSojisan/ Non-Destructive / Regenerative ( 前者 ) 元のコードの情報を維持したまま 、 関心 があ ると こ ろ だ け を書 き 換 え る ex) Lebab ... 空白行と か を残した い ( 後者 ) 元のコードの情報を維持せず 、 新し いAST を作る ex) Babel, istanbul, など 7 / 14
  6. Non-Destructive 最初 (2015/11 まで ) は Regenerative だった escodegen =>

    recast にして Non-Destructive に 移行は超簡単だった 関係な い 修正は 3 行 く ら い AST 標準の おかげ 8 / 14
  7. 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
  8. 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
  9. チーム開発での移行 当然コンフリクトする 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