yapcasia

yapc asia memo

yapcasiaに参加したときのメモを残します。

Effective ES6

denger

function Persion(name) {
  this.name = name
}

var p = Person('bob');
# p.name == undefined
# window.name = 'bob'
  • class

    • constractor
    • newナシで呼ぶとError
  • IE11 ES6は実装しない

  • transpiler

    • ES6 to ES5
  • polyfill

    • buildinのclassをjs環境で動かすようにする
  • Babel

    • core.js # polyfill toolsもあるよ
  • ES6 feature

    • new syntax

      • arrow function
      var add => (a,b) => {
          return a + b;
      }
      
      • class
      class Programmer extends Person {
          constracor(name ,language) {
              super(name);
              this.language = language;
          }
      }
      
      • module
      export var foo = 'foo';
      import (foo) from './module/path'
      
      • 'use strict'
        • 書かなくていい
      • block scope
      var a = 'outer'
      function bar() {
          console.log(a);
          a = 'inner';
      }
      bar(); # undefined
      
      • arguments
      function foo(...rest) {}
      
      function draw(x,y,{height:1,width:1} = {}) {
      }
      
      • template literal ` で文字列を囲むと改行付き文字列が定義できる
      • Promise
        • callback地獄回避
      • map/set
      • codePoint
        • 吉野家isvalid
    • trap

    if (a => 1) # if ( a >= 1 ) が正
    
    • balelっていこう

今フロントエンドで何が起こっているのか

  • htmlだけ返せばよかったような時代
  • ajaxの登場
    • google map etc
    • ECMAscript5
  • coffeescript
  • jQuery(from 2006)
  • backbonejs
  • nodejs(2009)
  • grunt(2012)
    • config
    • plugin base
  • typescript(2012)
  • AST
    • abstract syntax template
  • SPA
    • 問題
      • SEO
      • Performance
  • AngularJS(2009)
    • 2way data binding
    • fullstack
  • gulp
    • stream base
  • Browserify
  • ECMAscript 2015
    • Stateless
    • Composable
    • stream
  • babel (2014)
  • Service Workers
    • Intercept Requeest
      • offline / cahce
      • Background Sync
      • Push Notification
  • Extensible Web
  • Reactjs
    • Stateless Component
  • Flux
  • FRP
    • Rx.js, Bacon.js
  • Redux
    • Inspired by Flux and Elm

どうしてこうなったNode.jsとio.jsの分裂と統合の行方。これからどう進化していくのか

Node.jsの歴史 (Node.jsとは、Node.jsが生まれた背景)

  • 2001
    • C10K Problem
  • 2007
    • Web 2.0
  • 2009 ~ 2012
    • JSConf EU
      • Server-side JavaScript
      • Evented Non Blocking I/O
      • v8
    • EventLoop Model
      • libebb => libev/libeio & libuv (Windows向け)
      • netv8 => node
    • Joyent
    • 破壊と創造
      • APIがかなり深刻に変わる
    • BDFL (優しい終身の独裁者モデル)
  • 2012 ~ 2014
    • Socket.IO

Node/io.jsの機能的な違いと性能的な違い

  • 2014 ~
    • node forward
    • BDFL => community model
    • Technical committee
      • コアメンバー委員会
    • Collaborator
    • Working group
    • Semantic Versioning
      • major.minor.patch
    • オープンガバナーンスモデル
    • Feature Node.js
    • io.jsのこと
    • node Foundation
    • log term suport

Node/io.jsのロードマップ

  • ES6 compat % up
  • StrongScript
  • SimpleSteam
  • improve pref