タグ

ブックマーク / azu.github.io (18)

  • Promise Error Handling

    Promise Error Handling 約束されたエラー Promiseとエラーの基 Promise内で起きた例外は自動でキャッチされる エラー処理は.catch(fn)で行う var promise = new Promise(function(){ throw new Error("例外"); }); promise.catch(function(error){ // 例外をキャッチできる }); よくある問題 .catch(fn) をしないとエラーログも出せない .catch(fn) をしわすれてエラーの握りつぶしが起きる = unhandled rejection (.catchをしてないpromise) 4.6. Promise.prototype.done とは何か? 現状のunhandled rejectionへの対応 unhandled rejectionが発生した

  • TC39 Process: Stage · ECMAScriptとは何か?

    TC39 Process: Stage詳しくはThe TC39 Processを読む。 Stageは条件を満たすと1つずつアップする Stage 0: Strawman アイデア Stage 1: Proposal プロポーザルの目的や解決方法を示す Polyfillやデモ等を用いて解説する Stage 2: Draft いわゆるドラフト ECMAScript標準と同じルールでAPIや構文、セマンティックについて説明していなければならない Stage 3: Candidate 仕様は完成した状態 実装や外部のフィードバックを求める状態 レビュアはその仕様策定者以外ならだれでもなれるが専門的な知識を持っている必要がある ECMAScriptのエディタがチェックする必要があり Stage 4: Finished 2つの実装(not Polyfill)が必要 ECMAScriptへ取り込まれる準

  • 考えながらクライアントサイドのウェブアプリケーションを作る話

    autoscale: true 考えながらクライアントサイドのウェブアプリケーションを作る話 自己紹介 Name : azu Twitter : @azu_re Website: Web scratch, JSer.info このスライドは Faao - ドメイン駆動設計で作るGitHub Issue Client - を改定したものです。 過去に作ったやつ azu/GithubReader: Github Notifications Client for OS X azu/github-reader: [node-webkit] GitHub client app - Viewer for Notifications and News Feed. azu/github-issue-teev: [NW.js] GitHub Issue Manager(Viewer) Faao Faao -

  • Webpagetestから始める継続的パフォーマンス改善

    autoscale: true Webpagetestから始める継続的 パフォーマンス改善 ページロードタイム編 :hourglass: 自己紹介 Name : azu Twitter : @azu_re Website: Web scratch, JSer.info Create: textlint, Almin アジェンダ パフォーマンス改善は指標を決めて行わないと迷子になる パフォーマンス改善を行うには継続的な計測を行う 今回はページロードについて、ランタイムは範囲外 パフォーマンス改善のアプローチ 継続的なパフォーマンス計測とリグレッションの検知 ^ 目的はパフォーマンス改善には計測が必要という事実を知ること ^ パフォーマンス計測は継続的に行う必要がある ^ パフォーマンス改善は何を目的、指標にして改善するかを決めないと迷子になる ^ 目的をもって継続的にパフォーマンス改善を行い

  • カジュアルJavaScript AST

    今日の概要 実は使われてるJavaScript AST JavaScript AST(Abstract Syntax Tree)とは? JavaScript ASTを使ったツール紹介 使うだけじゃなくて書いてみよう browserify Node.jsで書かれたものをブラウザ向けに変換するツール Node環境で開発 -> browserifyでビルド -> ブラウザで動く JavaScriptのコードを 変換 する ≒ JavaScript ASTを見て変換 する 体の色々な部分、transform pluginなどでASTを使ってる

  • 複雑なJavaScriptアプリケーションを考えながら作る話

    autoscale: true theme: Plain Jane,5 複雑なJavaScriptアプリケーションを考えながら作る話 自己紹介 Name : azu Twitter : @azu_re Website: Web scratch, JSer.info #jsprimerを書いています JavaScript入門書に興味ある人はウォッチ :star: :warning: 注意 :warning: 作成するアプリケーションによって必要な構造は異なります 今回の話はある程度の規模で複雑性を持つクライアントサイド ライブラリ抜きで数万LOC >= 長期的にメンテンナンスや変更が発生するアプリケーション サーバサイドレンダリングはしないクライアントアプリケーション 3行でOK 複雑なJavaScriptアプリケーションを作るにあたりドメインモデルをどう実装するか悩んだ 色々と試行錯誤した

  • ECMAScript as a Living Standard

    autoscale: true ECMAScript as a Living Standard 自己紹介 Name : azu Twitter : @azu_re Website: Web scratch, JSer.info 伝えたいこと ECMAScriptの仕様策定は特別なプロセスではない そこへ参加する/見ていくのはむずかしいものではない^x 伝えたいこと ECMAScriptの仕様策定はただの大きな(GitHub)プロジェクト 普通のプロジェクトと大きな違いはない ^y フォーマルに物事が進む分 普通より分かりやすい どのように進めれば物事が進むかのパターンを学べる ES2016 リリース :tada: その前にES2015では何があったんだっけ? 一番大きな変化 ES2015からは1年毎のリリースサイクルに変更される ES2015はその早いリリースサイクルを適応できるだけの基盤

  • JavaScript情報ってなんだっけ?

    autoscale: true JavaScript情報ってなんだっけ? JSer.info 5周年記念イベント アジェンダ 情報の定義 JavaScript情報は欲しい、でも溢れてる 選択肢が多すぎる問題を切り分けする話 ライブラリコミュニティの読み方 ^ アジェンダとしては以下のような感じになっています。 JavaScriptの場合よっぽどエッジな事じゃない限り、基的に何らかは検索すると出てくると思います。逆にここで出てくる情報が多すぎてノイズが多いとも言われます。 そういう時に何を基準に情報を分けていくのかという話をします。 最初に書いておくが答えはない ^ このスライドで何か新しい情報を得られたりはしないと思うので、若干退屈な内容になっていると思います。なので期待せずに聞きましょう 「情報」って何? ^「情報」「情報」と連呼しているので、最初にここでの「情報」の定義についてお話し

  • 10分で実装するFlux

    10分で実装するFlux 自己紹介 azu @azu_re Web scratch, JSer.info Flux /flˈʌks/ Fluxとは Facebookが提唱したSmalltalk MVCの焼き直し CQRS(Command Query Responsibility Segregation)と類似 データが一方通行へ流れるようにするアーキテクチャ ウェブUIについてそれを適応する 今日の目的 小さなFluxの実装を作りながらFluxついて学ぶ Fluxの特徴: Unidirectional data flow 当にデータが一方通行に流れるのかを確認する Fluxでよく見る図 登場人物 何か色々いる Action Creators, Dispatcher, Store, React Views... Dispatcher = EventEmitterと今回は考える もっと実装的

  • Introduction · ECMAScriptとは何か?

    Introduction ECMAScriptとは何か?ECMAScriptの嘘は嘘と見抜けるように results matching "" No results matching ""

  • どうやってECMAScript 6を学び始めるか

    どうやってECMAScript 6を学び始めるか ^ 自分でちゃんと見て読んで大丈夫というものしか出してないので、かなり最小限の紹介です。 ^ azuです。JSer.infoなどをやっています。 ES6的にはPromiseを書いたり、日のISO/IEC JTC 1 SC22でES6のレビューに参加してます。 ECMAScript 5を知る ^ ES6の話をする前にES5の話です。 ES6 の前に ES5 大丈夫? Property Descriptor Object.create() Strict Mode Thinking About ECMAScript 5 Parts - Tech.pro ^ ES5はマイナーアップデート的な感じなので増えた機能としてはそこまで多くはありませんが、Object.definePropertyなどかなり重要な機能が増えています。 Speaking J

  • Meta Weekly

    Meta Weekly is a collection of weekly newsletter and Website, etc.

  • JavaScript Promiseの本

    この書籍はCreative Commons Attribution-NonCommercialの ライセンス で公開されています。 また、PDFとしてレンダリングしたバージョンは以下からダウンロードすることができます。

    JavaScript Promiseの本
  • 最近のASTパーサの動き

    最近のASTパーサの動き 自己紹介 azu @azu_re Web scratch, JSer.info Esprima Owner: @ariya Spidermonkey Parser APIのASTを元に実装したJavaScriptパーサ JavaScriptパーサのデファクト的な立ち位置 Esprimaの問題 Spidermonkey AST自体にはES6等の対応がない(ES6はまだだったので) Harmony Branchで実装FirstでES6対応をやっていた 微妙にパーサ間でES6のASTに齟齬がでてきた 加えて@ariyaが忙しいので対応に遅れがでてきた (@ariyaは後述するShift ASTを推奨する方向) Esprima-FB Owner: Facebook JSX/FlowTypeサポート Esprima/Harmony Branchのfork Esprima/H

  • #JavaScript忘年会

    #JavaScript忘年会 今年で忘れていいもの YUI Library :ghost: YUI Important Announcement Regarding YUI | Yahoo Engineering YUIの開発は終了 Yetiも開発終了? - Future of YETI? · Issue #90 · yui/yeti Pure.cssは継続 - YUI is going away - what does this mean for Pure? · Issue #373 · yahoo/pure iframeでクロスドメインハック :ghost: => postMessage :star: window.nameを使った方法 <iframe src="http://example.com/" name="message"> iframe内からはwindow.nameで"me

  • 世界のJavaScriptを読もう @ 2014

    世界のJavaScriptを読もう @ 2014 ^目的: ウェブの世界は絶対変化するもの 変化する前提の行動が求める それをどうやって見ていくか、それを知ってどうするか ^ JavaScriptやブラウザ周りのリリースの状況はウェブの変化にあわせるように変化してきている。 どのように変化してきたか知り、どうやって変化を見ていくのか、そしてわたしたちはどう変化していくのかを考えよう。 アジェンダ 世界のJavaScriptを読もう @ 2012 の続編的なものです ブラウザやJavaScriptのリリースは変化してきている 私たちはどのように変化を知り見ていくのか そして私たちはどのように変化していくのか [fit] 世界のJavaScriptを見る話 [fit] JSer.info 開始 2011年〜 ^ JSer.infoを始めた2011年を一つの基準として考えて、 そこからブラウザや

  • 5minで分かるpower-assert

    power-assert 5分ぐらいでわかるpower assert power-assert power assert assert(a === b); のような単純なアサーションのみ必要十分 Assert失敗時(テストが通らなかった時)に分かりやすい情報を表示 沢山のアサーションを使い分けしなくていいというメリット そもそも何故アサーションの種類が豊富なのか? 例) Chaiのexpect 33コもアサーションメソッドが存在 expect('foobar').to.contain('foo'); contain 含んでないから失敗した 失敗した時に何故失敗したのかを表示することが出来る どうやって動いてるの? power assert !== アサーションライブラリ コードを変換したりするのでツールに近いテストツール Work flow テストコードをpower-assert用に変換し

  • Promises Starter

    Promise API Overview Constructor var promise = new Promise(function(resolve, reject) { /* (非同期)処理 */ }); Instance Method promise.then(onFulfilled, onRejected); promise.catch(onRejected); Static Method Promise.all() 、 Promise.resolve() などの便利メソッド系 Promiseのキホン的な流れ function asyncFunction() { return new Promise(function (resolve, reject) { setTimeout(function () { resolve('Async Hello world'); }, 16);

  • 1