Submit Search
Upload
まだ DOM 操作で消耗してるの?
•
26 likes
•
68,626 views
Yuki Ishikawa
Follow
(だいたい)新卒エンジニア向け技術交流会 vol.3 での発表内容です
Read less
Read more
Technology
Report
Share
Report
Share
1 of 50
Download now
Download to read offline
Recommended
コンポーネント指向による、Reactのベストプラクティスとバッドプラクティス
コンポーネント指向による、Reactのベストプラクティスとバッドプラクティス
Kohei Asai
RESTful API 入門
RESTful API 入門
Keisuke Nishitani
なぜ人は必死でjQueryを捨てようとしているのか
なぜ人は必死でjQueryを捨てようとしているのか
Yoichi Toyota
RESTful Web アプリの設計レビューの話
RESTful Web アプリの設計レビューの話
Takuto Wada
オブジェクト指向プログラミングの現在・過去・未来
オブジェクト指向プログラミングの現在・過去・未来
増田 亨
REST API に疲れたあなたへ贈る GraphQL 入門
REST API に疲れたあなたへ贈る GraphQL 入門
Keisuke Tsukagoshi
LibreOffice API について
LibreOffice API について
健一 辰濱
Scala、DDD、Akkaで立ち向かう 〜広告配信システムに課せられた100msの制約〜
Scala、DDD、Akkaで立ち向かう 〜広告配信システムに課せられた100msの制約〜
MicroAd, Inc.(Engineer)
Recommended
コンポーネント指向による、Reactのベストプラクティスとバッドプラクティス
コンポーネント指向による、Reactのベストプラクティスとバッドプラクティス
Kohei Asai
RESTful API 入門
RESTful API 入門
Keisuke Nishitani
なぜ人は必死でjQueryを捨てようとしているのか
なぜ人は必死でjQueryを捨てようとしているのか
Yoichi Toyota
RESTful Web アプリの設計レビューの話
RESTful Web アプリの設計レビューの話
Takuto Wada
オブジェクト指向プログラミングの現在・過去・未来
オブジェクト指向プログラミングの現在・過去・未来
増田 亨
REST API に疲れたあなたへ贈る GraphQL 入門
REST API に疲れたあなたへ贈る GraphQL 入門
Keisuke Tsukagoshi
LibreOffice API について
LibreOffice API について
健一 辰濱
Scala、DDD、Akkaで立ち向かう 〜広告配信システムに課せられた100msの制約〜
Scala、DDD、Akkaで立ち向かう 〜広告配信システムに課せられた100msの制約〜
MicroAd, Inc.(Engineer)
ASP.NET Core の パフォーマンスを支える I/O Pipeline と Channel
ASP.NET Core の パフォーマンスを支える I/O Pipeline と Channel
Joni
リッチなドメインモデル 名前探し
リッチなドメインモデル 名前探し
増田 亨
ドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解する
増田 亨
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
Yoshitaka Kawashima
君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?
Teppei Sato
コンポーネントの分割に関する考察
コンポーネントの分割に関する考察
Yahoo!デベロッパーネットワーク
Python におけるドメイン駆動設計(戦術面)の勘どころ
Python におけるドメイン駆動設計(戦術面)の勘どころ
Junya Hayashi
フロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjug
Itsuki Kuroda
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
Mikiya Okuno
RESTfulとは
RESTfulとは
星影 月夜
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
Yahoo!デベロッパーネットワーク
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
Koichiro Matsuoka
それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?
Yoshitaka Kawashima
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)
Yoshitaka Kawashima
インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方
Shohei Koyama
これからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきこと
土岐 孝平
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
Recruit Technologies
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
増田 亨
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
Web API入門
Web API入門
Masao Takaku
フロントエンド初学者がSPAに手を出してみた
フロントエンド初学者がSPAに手を出してみた
Kei Yagi
React を導入したフロントエンド開発
React を導入したフロントエンド開発
daisuke-a-matsui
More Related Content
What's hot
ASP.NET Core の パフォーマンスを支える I/O Pipeline と Channel
ASP.NET Core の パフォーマンスを支える I/O Pipeline と Channel
Joni
リッチなドメインモデル 名前探し
リッチなドメインモデル 名前探し
増田 亨
ドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解する
増田 亨
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
Yoshitaka Kawashima
君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?
Teppei Sato
コンポーネントの分割に関する考察
コンポーネントの分割に関する考察
Yahoo!デベロッパーネットワーク
Python におけるドメイン駆動設計(戦術面)の勘どころ
Python におけるドメイン駆動設計(戦術面)の勘どころ
Junya Hayashi
フロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjug
Itsuki Kuroda
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
Mikiya Okuno
RESTfulとは
RESTfulとは
星影 月夜
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
Yahoo!デベロッパーネットワーク
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
Koichiro Matsuoka
それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?
Yoshitaka Kawashima
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)
Yoshitaka Kawashima
インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方
Shohei Koyama
これからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきこと
土岐 孝平
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
Recruit Technologies
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
増田 亨
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
Web API入門
Web API入門
Masao Takaku
What's hot
(20)
ASP.NET Core の パフォーマンスを支える I/O Pipeline と Channel
ASP.NET Core の パフォーマンスを支える I/O Pipeline と Channel
リッチなドメインモデル 名前探し
リッチなドメインモデル 名前探し
ドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解する
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?
コンポーネントの分割に関する考察
コンポーネントの分割に関する考察
Python におけるドメイン駆動設計(戦術面)の勘どころ
Python におけるドメイン駆動設計(戦術面)の勘どころ
フロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjug
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
RESTfulとは
RESTfulとは
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)
インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方
これからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきこと
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
Web API入門
Web API入門
Viewers also liked
フロントエンド初学者がSPAに手を出してみた
フロントエンド初学者がSPAに手を出してみた
Kei Yagi
React を導入したフロントエンド開発
React を導入したフロントエンド開発
daisuke-a-matsui
SIROK技術勉強会 #1 「Reactってなんだ?」
SIROK技術勉強会 #1 「Reactってなんだ?」
Naoyuki Kataoka
今からでも遅くない! React事始め
今からでも遅くない! React事始め
ynaruta
エンジニアが幸せな人生を過ごすための学び方、関わり方、ありかた
エンジニアが幸せな人生を過ごすための学び方、関わり方、ありかた
Akira Kubo
HTML5のAPI群をただひたすらに触ってみた記録
HTML5のAPI群をただひたすらに触ってみた記録
Takuma Hanatani
今どきの若手育成にひそむ3つの思いこみ
今どきの若手育成にひそむ3つの思いこみ
Mariko Hayashi
React系(別言語含む)の サーバーサイドレンダリング について考えよう
React系(別言語含む)の サーバーサイドレンダリング について考えよう
Kazuhiro Hara
JustTechTalk#10 React開発における自動テスト実践
JustTechTalk#10 React開発における自動テスト実践
JustSystems Corporation
JustTechTalk#10windowsアプリでのテスト自動化事例
JustTechTalk#10windowsアプリでのテスト自動化事例
JustSystems Corporation
AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017
AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017
Carol Smith
Viewers also liked
(11)
フロントエンド初学者がSPAに手を出してみた
フロントエンド初学者がSPAに手を出してみた
React を導入したフロントエンド開発
React を導入したフロントエンド開発
SIROK技術勉強会 #1 「Reactってなんだ?」
SIROK技術勉強会 #1 「Reactってなんだ?」
今からでも遅くない! React事始め
今からでも遅くない! React事始め
エンジニアが幸せな人生を過ごすための学び方、関わり方、ありかた
エンジニアが幸せな人生を過ごすための学び方、関わり方、ありかた
HTML5のAPI群をただひたすらに触ってみた記録
HTML5のAPI群をただひたすらに触ってみた記録
今どきの若手育成にひそむ3つの思いこみ
今どきの若手育成にひそむ3つの思いこみ
React系(別言語含む)の サーバーサイドレンダリング について考えよう
React系(別言語含む)の サーバーサイドレンダリング について考えよう
JustTechTalk#10 React開発における自動テスト実践
JustTechTalk#10 React開発における自動テスト実践
JustTechTalk#10windowsアプリでのテスト自動化事例
JustTechTalk#10windowsアプリでのテスト自動化事例
AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017
AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017
Similar to まだ DOM 操作で消耗してるの?
HTML5でスマートフォン開発の理想と現実
HTML5でスマートフォン開発の理想と現実
Takumi Ohashi
HTML5時代のwebクリエイターに必要なこと
HTML5時代のwebクリエイターに必要なこと
Masakazu Muraoka
JavaScript 研修
JavaScript 研修
Yuki Ishikawa
HTML5でサイネージは作れる!!
HTML5でサイネージは作れる!!
Kazuya Hiruma
インタラクティブコンテンツにおけるHTML5とFlash
インタラクティブコンテンツにおけるHTML5とFlash
Yasunobu Ikeda
Html5制作の現在
Html5制作の現在
Masakazu Muraoka
F-site発表資料「Flashユーザーが今覚えておきたいHTML5」
F-site発表資料「Flashユーザーが今覚えておきたいHTML5」
Yasunobu Ikeda
Rdbms起点で考えると見えない世界 okuyama勉強会
Rdbms起点で考えると見えない世界 okuyama勉強会
Masakazu Muraoka
テスト
テスト
Masashi Sato
angular X designer - デザイナからみたAngularJS #ten1club
angular X designer - デザイナからみたAngularJS #ten1club
silvers ofsilvers
HTML5 ~よくわからないけど言葉だけはよく聞きます~
HTML5 ~よくわからないけど言葉だけはよく聞きます~
Yusuke Hirano
HTML5 ~よくわからないけど言葉だけはよく聞きます~
HTML5 ~よくわからないけど言葉だけはよく聞きます~
Yusuke Hirano
CSS Nite LP26 CodeKitで始める次世代Web制作
CSS Nite LP26 CodeKitで始める次世代Web制作
Maboroshi.inc
Web制作勉強会 #2
Web制作勉強会 #2
Moto Yan
HTML5とWeb開発に関する最新動向
HTML5とWeb開発に関する最新動向
Shumpei Shiraishi
( ゚∀゚)o彡° Flux! Flux!
( ゚∀゚)o彡° Flux! Flux!
Yuki Ishikawa
スクレイピングその後
スクレイピングその後
Tomoki Hasegawa
2014年メディア工房勉強会 第1章「Webの仕組みとHTML5」
2014年メディア工房勉強会 第1章「Webの仕組みとHTML5」
Takashi Endo
ブラウザにやさしいHTML/CSS
ブラウザにやさしいHTML/CSS
Takeharu Igari
Mochrom - スマートフォンビジネスサミット
Mochrom - スマートフォンビジネスサミット
Katsuaki Sato
Similar to まだ DOM 操作で消耗してるの?
(20)
HTML5でスマートフォン開発の理想と現実
HTML5でスマートフォン開発の理想と現実
HTML5時代のwebクリエイターに必要なこと
HTML5時代のwebクリエイターに必要なこと
JavaScript 研修
JavaScript 研修
HTML5でサイネージは作れる!!
HTML5でサイネージは作れる!!
インタラクティブコンテンツにおけるHTML5とFlash
インタラクティブコンテンツにおけるHTML5とFlash
Html5制作の現在
Html5制作の現在
F-site発表資料「Flashユーザーが今覚えておきたいHTML5」
F-site発表資料「Flashユーザーが今覚えておきたいHTML5」
Rdbms起点で考えると見えない世界 okuyama勉強会
Rdbms起点で考えると見えない世界 okuyama勉強会
テスト
テスト
angular X designer - デザイナからみたAngularJS #ten1club
angular X designer - デザイナからみたAngularJS #ten1club
HTML5 ~よくわからないけど言葉だけはよく聞きます~
HTML5 ~よくわからないけど言葉だけはよく聞きます~
HTML5 ~よくわからないけど言葉だけはよく聞きます~
HTML5 ~よくわからないけど言葉だけはよく聞きます~
CSS Nite LP26 CodeKitで始める次世代Web制作
CSS Nite LP26 CodeKitで始める次世代Web制作
Web制作勉強会 #2
Web制作勉強会 #2
HTML5とWeb開発に関する最新動向
HTML5とWeb開発に関する最新動向
( ゚∀゚)o彡° Flux! Flux!
( ゚∀゚)o彡° Flux! Flux!
スクレイピングその後
スクレイピングその後
2014年メディア工房勉強会 第1章「Webの仕組みとHTML5」
2014年メディア工房勉強会 第1章「Webの仕組みとHTML5」
ブラウザにやさしいHTML/CSS
ブラウザにやさしいHTML/CSS
Mochrom - スマートフォンビジネスサミット
Mochrom - スマートフォンビジネスサミット
More from Yuki Ishikawa
Introduction to GPU Programming in Python
Introduction to GPU Programming in Python
Yuki Ishikawa
新婚旅行を支える技術
新婚旅行を支える技術
Yuki Ishikawa
ラマダーン入門
ラマダーン入門
Yuki Ishikawa
ステージング環境のつくりかた
ステージング環境のつくりかた
Yuki Ishikawa
マッカレル de おうちハック
マッカレル de おうちハック
Yuki Ishikawa
スタートアップのくせになまいきだ
スタートアップのくせになまいきだ
Yuki Ishikawa
JavaScript over HTTP/2
JavaScript over HTTP/2
Yuki Ishikawa
コンポーネント時代の CSS 設計
コンポーネント時代の CSS 設計
Yuki Ishikawa
React+fluxを導入した話
React+fluxを導入した話
Yuki Ishikawa
闇の魔術に対する防衛術
闇の魔術に対する防衛術
Yuki Ishikawa
サーバを運用する時代は終わった
サーバを運用する時代は終わった
Yuki Ishikawa
Apple に依存する僕の生存戦略
Apple に依存する僕の生存戦略
Yuki Ishikawa
gulp芸
gulp芸
Yuki Ishikawa
アニメーションしたい
アニメーションしたい
Yuki Ishikawa
趣きのある Bot
趣きのある Bot
Yuki Ishikawa
Bot に家計を任せる
Bot に家計を任せる
Yuki Ishikawa
時をかけるほと
時をかけるほと
Yuki Ishikawa
peco活用術
peco活用術
Yuki Ishikawa
Botと対話する
Botと対話する
Yuki Ishikawa
端末ビジュアライゼーションのすゝめ
端末ビジュアライゼーションのすゝめ
Yuki Ishikawa
More from Yuki Ishikawa
(20)
Introduction to GPU Programming in Python
Introduction to GPU Programming in Python
新婚旅行を支える技術
新婚旅行を支える技術
ラマダーン入門
ラマダーン入門
ステージング環境のつくりかた
ステージング環境のつくりかた
マッカレル de おうちハック
マッカレル de おうちハック
スタートアップのくせになまいきだ
スタートアップのくせになまいきだ
JavaScript over HTTP/2
JavaScript over HTTP/2
コンポーネント時代の CSS 設計
コンポーネント時代の CSS 設計
React+fluxを導入した話
React+fluxを導入した話
闇の魔術に対する防衛術
闇の魔術に対する防衛術
サーバを運用する時代は終わった
サーバを運用する時代は終わった
Apple に依存する僕の生存戦略
Apple に依存する僕の生存戦略
gulp芸
gulp芸
アニメーションしたい
アニメーションしたい
趣きのある Bot
趣きのある Bot
Bot に家計を任せる
Bot に家計を任せる
時をかけるほと
時をかけるほと
peco活用術
peco活用術
Botと対話する
Botと対話する
端末ビジュアライゼーションのすゝめ
端末ビジュアライゼーションのすゝめ
まだ DOM 操作で消耗してるの?
1.
まだ DOM 操作で 消耗してるの? 2015.06.06 (だいたい)新卒エンジニア向け技術交流会
vol.3
2.
3.
!?
4.
こんばんは hoge17296 です!!!!!
5.
hoto 17296
6.
とうとうプログラマ歴 10 年目に突入
7.
8.
それでも 10 年で いろいろなものを見てきた
9.
クライアントサイド JS 近代史
10.
∼ 2004 年 •
JS は「 Web にちょっと動きを加えるもの」 • 「JSが動かない環境のことも 考えなきゃダメでしょ!!!」 • リッチなことは Flash でやれ
11.
12.
13.
14.
Flash 黄金時代
15.
人生の絶頂
16.
2005 年
17.
18.
Ajax の誕生 • 実は昔からあったけど知られていなかった XMLHttpRequest
が Google Maps によって 再発見されて一躍有名に • Ajax (Asynchronous JavaScript + XML) という 言葉が生まれる • しかしまだまだ敷居が高い
19.
2006 年
20.
21.
jQuery の衝撃 • クライアントサイドプログラミングの敷居を 圧倒的に下げた •
DOM 操作 • イベント処理 • クロスブラウザ • Ajax
22.
$()
23.
あまいあまい シンタックス シュガー
24.
jQuery 職人が社会問題に 「これグーグルみたいに ギュイーンって感じで できるよね?」
25.
26.
...とは言えない • なまじ jQuery
があればそこそこ出来てしまう • ちょっとググればプラグインが落ちてる • 出来るような気がしてしまう • 「出来て当たり前」として要求される
27.
なにがつらいか
28.
すべての DOM の状態管理 •
どの DOM が今どんな値を持っているか • どの DOM から何のイベントが発火するか • この値が変わったらどの DOM を 書き換えないといけないか
29.
コンポーネントが増えるたび 考えるべきことが 指数関数的に増えていく プログラミング
30.
一部の優れた職人にしか 成し得ない超絶技巧
31.
そして 2010 年
32.
Single Page Application
33.
Single Page Application •
HTML5 の history.pushState によって URL の動的書き換えが可能に • ページ遷移という概念を超越した クライアントサイドプログラミングの極地
34.
例 「SPAで作ってね!!!」 「でも history.back しても前のビューの スクロール位置保持してるの当然だし 情報も更新されてるよね!!!」
35.
もはや 人間業ではない
36.
こんなものが ”当たり前”として 要求される世の中は 絶対に間違っている
37.
俺は もう
38.
2014 年
39.
40.
React • Facebook 製の
UI ライブラリ • フレームワークじゃない • 特徴 • リアクティブプログラミング • Virtual DOM
41.
もう DOM 操作しなくていい •
変更があったら HTML 全体を書き換える • 常に最新の状態の DOM を レンダリングし続ければいいだけ • React が内部で diff / patch してくれるから 遅くない
42.
DEMO http://bit.ly/mtg_timer
43.
「事ある毎に最新の HTML を レンダリングする」 ???
44.
これって昔ページ遷移で やっていたことじゃないか
45.
シンプルで古い この概念こそ 正しかった
46.
ぼくたちは ちょっと歪んでいた だけだったんだ
47.
まとめ • ぼくたちは DOM
操作という 苦痛を強いられている • 麻薬 (jQuery) による対症療法も限界が来ている • React によってぼくたちは解放される
48.
楽しかったあの頃に戻ろう
49.
50.
まだ DOM 操作で 消耗してるの?
Download now