Enviar pesquisa
Carregar
プロパティディスクリプタとその拡張ライブラリ
•
Transferir como PPTX, PDF
•
1 gostou
•
1,207 visualizações
Yusuke Muraoka
Seguir
Tecnologia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 15
Baixar agora
Recomendados
20140930 anything as_code
20140930 anything as_code
Sugawara Genki
はじめての datadog
はじめての datadog
Naoya Nakazawa
Chiba pm#1 - ArangoDB for Perl
Chiba pm#1 - ArangoDB for Perl
Hideaki Ohno
200k/sec
200k/sec
Sugawara Genki
BMXUG つきじ#4
BMXUG つきじ#4
K Kimura
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発
emasaka
(きっと)あなたにも出来る!Hyperledger composer でブロックチェーンアプリを動かしてみた
(きっと)あなたにも出来る!Hyperledger composer でブロックチェーンアプリを動かしてみた
K Kimura
後期第三回ネットワークチーム講座資料
後期第三回ネットワークチーム講座資料
densan_teacher
Recomendados
20140930 anything as_code
20140930 anything as_code
Sugawara Genki
はじめての datadog
はじめての datadog
Naoya Nakazawa
Chiba pm#1 - ArangoDB for Perl
Chiba pm#1 - ArangoDB for Perl
Hideaki Ohno
200k/sec
200k/sec
Sugawara Genki
BMXUG つきじ#4
BMXUG つきじ#4
K Kimura
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発
emasaka
(きっと)あなたにも出来る!Hyperledger composer でブロックチェーンアプリを動かしてみた
(きっと)あなたにも出来る!Hyperledger composer でブロックチェーンアプリを動かしてみた
K Kimura
後期第三回ネットワークチーム講座資料
後期第三回ネットワークチーム講座資料
densan_teacher
Crawler Commons
Crawler Commons
chibochibo
ng-japan 2015 TypeScript+AngularJS 1.3
ng-japan 2015 TypeScript+AngularJS 1.3
Masahiro Wakame
Lightweight C#
Lightweight C#
将 高野
202003 functiontalkinnotesknowsworkshop20th
202003 functiontalkinnotesknowsworkshop20th
Satoru Abe
My misstake on Ansible’s lineinfile module
My misstake on Ansible’s lineinfile module
Yukiya Hayashi
202006 のの会@関数Talk 21st @function-talk-in-notesknows-workshop
202006 のの会@関数Talk 21st @function-talk-in-notesknows-workshop
Satoru Abe
Elixir Meetup #1 Loggerの構造と拡張
Elixir Meetup #1 Loggerの構造と拡張
Sugawara Genki
redashのプラベートカタログ作成してつまづいたアレやコレや
redashのプラベートカタログ作成してつまづいたアレやコレや
YASUKAZU NAGATOMI
Capistrano紹介 at kawasaki.rb #002 #kwskrb
Capistrano紹介 at kawasaki.rb #002 #kwskrb
Tsubasa Yumura
Web Workers
Web Workers
kaboccha
Jenkinsで行う並列テスト(公開用)
Jenkinsで行う並列テスト(公開用)
Yamamoto Kazuhisa
Ruby Sapporo Night Vol.4
Ruby Sapporo Night Vol.4
Koji SHIMADA
Ruby/Rails Benchmarking and Profiling with TDD
Ruby/Rails Benchmarking and Profiling with TDD
Yasutomo Uemori
Active job meets kubernetes
Active job meets kubernetes
Yasutomo Uemori
スクリプトエンジンをつくる話
スクリプトエンジンをつくる話
すずしめ
20161208 Classmethod Codenize Tools
20161208 Classmethod Codenize Tools
Kazuki Ueki
HerokuMeetupCuon
HerokuMeetupCuon
tomoya masuri
Cubby-2008-01-15 OT
Cubby-2008-01-15 OT
Agata Toshikata
Ruby風Swift NSOperation編
Ruby風Swift NSOperation編
Hisakuni Fujimoto
The Substance D - Plone Symposium Tokyo 2015
The Substance D - Plone Symposium Tokyo 2015
Yusuke Muraoka
Debug it-python-hack-a-thon-2011.02
Debug it-python-hack-a-thon-2011.02
Yusuke Muraoka
Django learning
Django learning
Yusuke Muraoka
Mais conteúdo relacionado
Mais procurados
Crawler Commons
Crawler Commons
chibochibo
ng-japan 2015 TypeScript+AngularJS 1.3
ng-japan 2015 TypeScript+AngularJS 1.3
Masahiro Wakame
Lightweight C#
Lightweight C#
将 高野
202003 functiontalkinnotesknowsworkshop20th
202003 functiontalkinnotesknowsworkshop20th
Satoru Abe
My misstake on Ansible’s lineinfile module
My misstake on Ansible’s lineinfile module
Yukiya Hayashi
202006 のの会@関数Talk 21st @function-talk-in-notesknows-workshop
202006 のの会@関数Talk 21st @function-talk-in-notesknows-workshop
Satoru Abe
Elixir Meetup #1 Loggerの構造と拡張
Elixir Meetup #1 Loggerの構造と拡張
Sugawara Genki
redashのプラベートカタログ作成してつまづいたアレやコレや
redashのプラベートカタログ作成してつまづいたアレやコレや
YASUKAZU NAGATOMI
Capistrano紹介 at kawasaki.rb #002 #kwskrb
Capistrano紹介 at kawasaki.rb #002 #kwskrb
Tsubasa Yumura
Web Workers
Web Workers
kaboccha
Jenkinsで行う並列テスト(公開用)
Jenkinsで行う並列テスト(公開用)
Yamamoto Kazuhisa
Ruby Sapporo Night Vol.4
Ruby Sapporo Night Vol.4
Koji SHIMADA
Ruby/Rails Benchmarking and Profiling with TDD
Ruby/Rails Benchmarking and Profiling with TDD
Yasutomo Uemori
Active job meets kubernetes
Active job meets kubernetes
Yasutomo Uemori
スクリプトエンジンをつくる話
スクリプトエンジンをつくる話
すずしめ
20161208 Classmethod Codenize Tools
20161208 Classmethod Codenize Tools
Kazuki Ueki
HerokuMeetupCuon
HerokuMeetupCuon
tomoya masuri
Cubby-2008-01-15 OT
Cubby-2008-01-15 OT
Agata Toshikata
Ruby風Swift NSOperation編
Ruby風Swift NSOperation編
Hisakuni Fujimoto
Mais procurados
(19)
Crawler Commons
Crawler Commons
ng-japan 2015 TypeScript+AngularJS 1.3
ng-japan 2015 TypeScript+AngularJS 1.3
Lightweight C#
Lightweight C#
202003 functiontalkinnotesknowsworkshop20th
202003 functiontalkinnotesknowsworkshop20th
My misstake on Ansible’s lineinfile module
My misstake on Ansible’s lineinfile module
202006 のの会@関数Talk 21st @function-talk-in-notesknows-workshop
202006 のの会@関数Talk 21st @function-talk-in-notesknows-workshop
Elixir Meetup #1 Loggerの構造と拡張
Elixir Meetup #1 Loggerの構造と拡張
redashのプラベートカタログ作成してつまづいたアレやコレや
redashのプラベートカタログ作成してつまづいたアレやコレや
Capistrano紹介 at kawasaki.rb #002 #kwskrb
Capistrano紹介 at kawasaki.rb #002 #kwskrb
Web Workers
Web Workers
Jenkinsで行う並列テスト(公開用)
Jenkinsで行う並列テスト(公開用)
Ruby Sapporo Night Vol.4
Ruby Sapporo Night Vol.4
Ruby/Rails Benchmarking and Profiling with TDD
Ruby/Rails Benchmarking and Profiling with TDD
Active job meets kubernetes
Active job meets kubernetes
スクリプトエンジンをつくる話
スクリプトエンジンをつくる話
20161208 Classmethod Codenize Tools
20161208 Classmethod Codenize Tools
HerokuMeetupCuon
HerokuMeetupCuon
Cubby-2008-01-15 OT
Cubby-2008-01-15 OT
Ruby風Swift NSOperation編
Ruby風Swift NSOperation編
Destaque
The Substance D - Plone Symposium Tokyo 2015
The Substance D - Plone Symposium Tokyo 2015
Yusuke Muraoka
Debug it-python-hack-a-thon-2011.02
Debug it-python-hack-a-thon-2011.02
Yusuke Muraoka
Django learning
Django learning
Yusuke Muraoka
Poolboy
Poolboy
Yusuke Muraoka
App Engineと非同期とテストと私
App Engineと非同期とテストと私
Yusuke Muraoka
Django learning Part2
Django learning Part2
Yusuke Muraoka
Destaque
(6)
The Substance D - Plone Symposium Tokyo 2015
The Substance D - Plone Symposium Tokyo 2015
Debug it-python-hack-a-thon-2011.02
Debug it-python-hack-a-thon-2011.02
Django learning
Django learning
Poolboy
Poolboy
App Engineと非同期とテストと私
App Engineと非同期とテストと私
Django learning Part2
Django learning Part2
Semelhante a プロパティディスクリプタとその拡張ライブラリ
HTML5&API総まくり
HTML5&API総まくり
Shumpei Shiraishi
BDD勉強会 第6回
BDD勉強会 第6回
zakihaya
JavaScriptから利用するFirebase
JavaScriptから利用するFirebase
Takuji Shimokawa
コンポーネント指向による、Reactのベストプラクティスとバッドプラクティス
コンポーネント指向による、Reactのベストプラクティスとバッドプラクティス
Kohei Asai
第4回REST勉強会 RequireJS編
第4回REST勉強会 RequireJS編
ksimoji
Elasticsearchの基本動作まとめ
Elasticsearchの基本動作まとめ
朋哉 池田
JSer Class #1
JSer Class #1
mizuky fujitani
HTML5最新動向
HTML5最新動向
Shumpei Shiraishi
Webフレームワークを作ってる話 #osakapy
Webフレームワークを作ってる話 #osakapy
Masashi Shibata
Integral - New O/R Mapper for Common Lisp
Integral - New O/R Mapper for Common Lisp
fukamachi
実践Realm
実践Realm
Yu Sugawara
Isomorphic web development with scala and scala.js
Isomorphic web development with scala and scala.js
TanUkkii
RestKitの紹介 - Webサービスのクライアント実装補助フレームワーク -
RestKitの紹介 - Webサービスのクライアント実装補助フレームワーク -
次朗 永島
Objective Front-End JavaScript
Objective Front-End JavaScript
Muyuu Fujita
Semelhante a プロパティディスクリプタとその拡張ライブラリ
(14)
HTML5&API総まくり
HTML5&API総まくり
BDD勉強会 第6回
BDD勉強会 第6回
JavaScriptから利用するFirebase
JavaScriptから利用するFirebase
コンポーネント指向による、Reactのベストプラクティスとバッドプラクティス
コンポーネント指向による、Reactのベストプラクティスとバッドプラクティス
第4回REST勉強会 RequireJS編
第4回REST勉強会 RequireJS編
Elasticsearchの基本動作まとめ
Elasticsearchの基本動作まとめ
JSer Class #1
JSer Class #1
HTML5最新動向
HTML5最新動向
Webフレームワークを作ってる話 #osakapy
Webフレームワークを作ってる話 #osakapy
Integral - New O/R Mapper for Common Lisp
Integral - New O/R Mapper for Common Lisp
実践Realm
実践Realm
Isomorphic web development with scala and scala.js
Isomorphic web development with scala and scala.js
RestKitの紹介 - Webサービスのクライアント実装補助フレームワーク -
RestKitの紹介 - Webサービスのクライアント実装補助フレームワーク -
Objective Front-End JavaScript
Objective Front-End JavaScript
Mais de Yusuke Muraoka
いかにして問題をとくか
いかにして問題をとくか
Yusuke Muraoka
Pythonistaで始めるiOSプロトタイプ開発
Pythonistaで始めるiOSプロトタイプ開発
Yusuke Muraoka
私のPythonとの関わりかた
私のPythonとの関わりかた
Yusuke Muraoka
Substance D world-plone-day-2017
Substance D world-plone-day-2017
Yusuke Muraoka
Pythonistaの使い方
Pythonistaの使い方
Yusuke Muraoka
Gunma.web #24 MySQL HA
Gunma.web #24 MySQL HA
Yusuke Muraoka
Pyramid Security
Pyramid Security
Yusuke Muraoka
Some about chef
Some about chef
Yusuke Muraoka
Can A Python Go Beyond The Python
Can A Python Go Beyond The Python
Yusuke Muraoka
Mais de Yusuke Muraoka
(9)
いかにして問題をとくか
いかにして問題をとくか
Pythonistaで始めるiOSプロトタイプ開発
Pythonistaで始めるiOSプロトタイプ開発
私のPythonとの関わりかた
私のPythonとの関わりかた
Substance D world-plone-day-2017
Substance D world-plone-day-2017
Pythonistaの使い方
Pythonistaの使い方
Gunma.web #24 MySQL HA
Gunma.web #24 MySQL HA
Pyramid Security
Pyramid Security
Some about chef
Some about chef
Can A Python Go Beyond The Python
Can A Python Go Beyond The Python
Último
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
sn679259
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Toru Tamaki
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Hiroshi Tomioka
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
atsushi061452
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
WSO2
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Último
(12)
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
プロパティディスクリプタとその拡張ライブラリ
1.
プロパティディスクリプ タとその拡張ライブラリ Gunma.web #14 発表
2.
お前誰よ? • 村岡友介 • @jbking •
Python! • Python!! • Python!!! • JavaScript • jQuery使い
3.
ECMA-262 5.1 ECMAScript Property Descriptor
4.
Property Descriptor? • オブジェクトごとの プロパティの挙動を 記述 • value •
writable • enumerable • configurable • setter/getter foo.bar オブジェクト プロパティ
5.
Object.defineProperty(foo, ‘bar’, { get:
function() { return ‘baz’; }, set: function(v) { console.log(v); } }); foo.bar ‘baz’ foo.bar = ‘qux’ qux // console.log ‘qux’ foo.bar ‘baz’ Property Descriptor? • オブジェクトごとの プロパティの挙動を 記述 • value • writable • enumerable • configurable • setter/getter
6.
ここまでが基本
7.
BeautifulProperties.js Hookable LazyInitializable Events Observable Versionizable https://github.com/monjudoh/BeautifulProperties.js/
8.
BeautifulProperties.LazyInitializable.define( object, ‘key’, { init: function ()
{ console.log(‘initialized’); return 1; } } ); object.key initialized // console.log 1 LazyInitializable • 初期化を遅延させる
9.
BeautifulProperties.Hookable.define( object, ‘key’, { beforeGet: function ()
{ console.log(‘beforeGet’); }, afterGet: function (v) { console.log(‘afterGet’, v); }, beforeSet: function (v, p) { console.log(‘beforeSet’, v, p); }, afterSet: function (v, p) { console.log(‘afterSet’, v, p); } } ); object.key beforeGet // console.log afterGet undefined // console.log undefined object.key = 10 beforeSet 10 undefined // console.log afterSet 10 undefined // console.log 10 Hookable • getter/setterの直前 と直後にそれぞれ フックを仕込める • 値の変更も
10.
BeautifulProperties.Events.on(object, ‘event1’, object, ‘event1’, function ()
{ console.log(‘event1 called’); } ); BeautifulProperties.Events.trigger(object, ‘event1’) event1 called // console.log undefined Events • オブジェクトに対し てイベントをはれる • jQ.on/jQ.triggerのよ うなもの • プロトタイ プへ伝播
11.
BeautifulProperties.Observable.define( object, ‘key’ ); BeautifulProperties.Events.on( object, ‘change:key’, function (_ev, v,
p) { console.log(‘key is changed’, v, ‘from’, p); } ); object.key = ‘foo’ key is change foo from undefined // console.log ‘foo’ Observable • プロパティの変更で イベントを発行でき る
12.
BeautifulProperties.Versionizable.define( object, ‘key’ ); object.key = ‘foo’ ‘foo’ object.key
= ‘bar’ ‘bar’ BeautifulProperties.Versionizable.getVersions( object, ‘key’) [ { value: ‘bar’, timestamp: 1379121665980 }, { value: ‘foo’, timestamp: 1379121662234 } ] Versionizable • プロパティの変更を 履歴として保存でき る • 履歴改変もできる
13.
一つのプロパティに対して 組み合わせられます Hookable LazyInitializable Events Observable Versionizable
14.
BeautifulProperties.Observable.define( object, ‘key’ ); BeautifulProperties.Versionizable.define( object, ‘key’ ); BeautifulProperties.Events.on( object, ‘change:key’, function () {
console.log(‘key is change’); } ); object.key = ‘foo’ key is changed // console.log ‘foo’ BeautifulProperties.Versionizable.getVersions( object, ‘key’) [ { value: ‘foo’, timestamp: 1379121662234 } ] 組み合わせ例 • プロパティの変更を 履歴取りながらイベ ント発行する
15.
以上。
Baixar agora