Skip to content

Instantly share code, notes, and snippets.

@Kuniwak
Last active December 28, 2015 13:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Kuniwak/7505631 to your computer and use it in GitHub Desktop.
Save Kuniwak/7505631 to your computer and use it in GitHub Desktop.
東京Node学園祭2013のノート。 http://nodefest.jp/2013/

東京Node学園祭2013のノート

The future of programing on Node.js

Isaac氏がぶちあげたらしい。 The Future of Programming in Node.js(原文)

Callback

Isaac氏:

  • Callbackはデファクト(キリッ
  • Promiseはユーザー拡張の領域でし

Stream

Domain

エラーハンドリングが糞。でもしょうがない。

Erlangのエラーハンドリングがいいらしい。

Module System

モジュールは変更の予定無し。

AltJS

TypeScript、CofeeScriptはコアには取り入ない。

Binary Addon

V8のAPIが変更された関係でバイナリアドオンは動いていない。いま対処中。

New Language Features

V8の仕様拡張を自動的にenableにするつもりはない。 ただ、エラーメッセージは親切にするよ。

VM module

contextfyモジュールがコアに取り入れられる。

Child Process

できるようになったよ!

Roadmap

バグ修正+パフォーマンスでv1.0

OSS

従いたくなければ、フォークしな。

Yeoman, Grunt, Bower

  • 発表者:@yosuke_furukawa さん

  • スライド

  • Yeoman

    • Yo

      テンプレートジェネレータ。賢い!のか?

      generator-generatorなるものをつかって、generatorをつくる。 たぶん、googkitを置き換えられる。テンプレートは、プロジェクトの雛形というニュアンス。

    • Bower

      クライアントサイドのパッケージマネージャ。

Node.jsを選ぶとき、選ばないとき

誤解集

言語統一してるんでやりやすい???

クライアントサイド vs サーバーサイドでAPIが共通な部分が非常に少ない。

サーバーサイドとクライアントサイドでコードが共有できる???

そんなことはない。共有できるコードは意外に少ない。

Node.jsはスケール出来る???

スケールを意識して設計しないとNGになる。

サーバをAPI化すればJSON返すだけですむ???

結局、認証関係などで状態管理が入り、うまくいかない。

リアルタイムはNode.js???

選択肢は他にもある。

ES6で変わるNode.jsプログラミング

Syntax

  • Classのシンタックスシュガー
  • let, const, function decl
  • Template Literal Syntax = ヒアドキュメント
  • Arrow Function Syntax ev => { this.onClicked(ev) }
  • Object Syntax = obj = { [name]() { } }
  • Object Syntax Short-hand = var x = 0, y = 0; var obj = {x, y}
  • Generator = yield
  • Default Parameter = function(a=0) {}
  • Promise!!
  • Thenable objects
  • yeild + Promise = 最強 (Q.asyncを見よ)
  • Collection(Map, Set, WeakMap, WeakSet) Weakは参照カウントがつきればプロパティが消える
  • Symbol(RubyのSymbolと同じ。visibility管理に使える)

LT

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment