CureApp開発者ブログ

アプリで治療する未来を創造するCureApp, Inc. のエンジニアブログです

Node学園 21時限目 -ES Modules Meetup- に参加してきました !!

Node学園 21時限目 -ES Modules Meetup- に参加してきました !!

You don't know ES Modules by @teppeis さん

  • import / export するのが ES2015 の Modules とのこと
  • ES2015 Modules は静的な依存関係解決なのでブラウザーにやさしい
  • import xx from 'yy'yy の部分はどう書くべきかは仕様で決められていないそうです
  • Loader の仕様がブレブレとのこと
    • ブラウザー側は <script type="module"> で ES2015 Modules であることを明示できるという提案
    • 対して Node.js は .mjs という拡張子を提案…
    • package.json 内の module フィールドにエントリーポイントを定義する案もあってカオス
    • import / export しているなら ES2015 Modules として扱うという決めをしても、現在のところ import / export していなくても ES2015 Modules として扱えちゃうという問題がある

import / export しているモジュールだけを登録・ホスティングするサービスがあれば徐々に移行が可能なのかもしれないね、という話題が社内で持ち上がりました。ブラウザーから使う場合も HTTP/2 の server push 機能でロード時間はある程度緩和されるんじゃないかというようなハナシをしています。 CureApp は Universal JavaScript を応援しています !!

ECMAScript as a Living Standard by @azu さん

先日 ES2016 の仕様が発表されましたが、そういった意思決定はオープンなコミュニティで実施されているそうです。

参加のルール、議論のルールも決まっていて、自律した組織という印象を受けました。たとえば仕様の提案にあたっては次のロードマップにしたがえばよいようです。

呼び方 意味
Stage0 アイディア段階
Stage1 提案段階
Stage2 ドラフト段階
Stage3 仕様完成・フィードバック待ち段階
Stage4 取り込み待ち段階

また、 maximally-minimal 「問題を解決する最小の方法をとる」という議論パターンがあり、それが使われているそうです。

0 からはじめる Flow by @leader22 さん

JavaScript に型チェックを提供する flow のよさとつらさを紹介されていました。 CureApp でも flow を採用しているのでとても共感できる内容だった一方、知らないことも多くありとてもありがたい発表でした。

babel-register を高速にした話 by @yosuke_furukawa さん

babel のキャッシュは書き出し先がひとつしかないため、マルチプロセスで babel を使おうとするとキャッシュがヒットせずに遅くなってしまうそうです。そこで、キャッシュを共有することで速くなる仕組みを作ったとのこと。

Electron のセキュリティその後 by @hasegawayosuke さん

前回 から Electron も進化し、 Node.js を実行しないモードが親から伝播されるようになったそうです。そのためレンダラーで Node.js を使いたいときには preload 機能か、 IPC 通信で親に処理を移譲する方法をとる必要があるとのこと。 ただ、外部の広告を入れるときは相変わらず注意が必要で、 iframe の中ではなんでもできてしまうそうです。 JS を使って広告表示するのは危険ということでした。

懇親会

@leader22 さんはじめ、いろいろな方と flow 談義ができました。また、 @t_wada さんに power-assert を React Native で使う際、ハマった点について報告をさせていただきました。みなさまありがとうございました。