SlideShare una empresa de Scribd logo
1 de 40
Descargar para leer sin conexión
メディア・マーケティングソリューションズグループ
マーケティングソリューションズカンパニー
プロモーション広告開発本部 マーケッターPF開発部
UIエンジニアリング
岡本 和昭
ReactとImmutable.jsで
関数型を体験して思ったこと
2016/09/14 SCRIPTY#6
ヤフー株式会社
ちょっと自己紹介
岡本 和昭
 主に広告管理ツールのフロントエンドを開発
 現在の業務はほぼ「React + Redux」
 Immutable.jsはまだ業務で導入していない
所属:ヤフー株式会社
職種:フロントエンドエンジニア
今回の目的
1. JavaScriptにおける関数型のポイントを知る
2. 関数型を後押しするImmutable.jsの概要を知る
3. ReactにImmutable.jsを導入した場合の
メリットを知る
こんなメリットもあるよ!とかのご意見を
ハッシュタグにどんどん投稿してください!
今日やらないこと
 関数型への深い知識、JS以外の関数型言語
( Lisp, Scala, Clojure ... )
 高階関数・カリー化・クロージャなどの
ワードについて
※JavaScriptで関数型が学べる本もあります
https://www.oreilly.co.jp/books/9784873116600/
JavaScriptにおける
関数型のポイントを知る
 関数 → データ → 関数 → データと処理する設計
 副作用がない(外の状態への依存や変更がない)
 呼び出し元に依存しない
 必ず新しい値を返す(重要)
JSを普通に書いてて、これらを守るのは困難
本日のための関数型のポイント
(関数型詳しい方、本当ざっくりですみません。)
簡単な例
 Good
 Bad
• 外部の変数に依存し、変更している
• 値を返却していない
参照透過性 (が保たれている) 状態とは
 先ほどの性質がが保証された関数のこと
 このような関数は、引数が同じであれば
結果は必ず同じになる
 関数の役割・責任・影響範囲が明確であり、
テストもしやすい
オブジェクト指向との比較
 オブジェクト指向はデータとそれに対する
操作をひとつにまとめ、クラスとして定義
 クラスのメソッドの責務や依存も様々
 JavaScriptはES6やTypeScriptにより、
オブジェクト志向色が強まった印象...
「オブジェクト指向 vs 関数型」戦争の勃発
JavaScriptでの関数型所感
 関数型用に設計された言語と比べると、
関数型を実装するのは難しそう
 関数型言語としての機能は備わっているが、
一方で破壊的変更も簡単に出来てしまう
関数型を後押ししてくれるライブラリの登場
関数型を後押しするライブラリ
 underscore(Backboneが依存)
 lodash(豊富なメソッド)
 Immutable(Facebook製・Reactが推奨)
関数型を後押しする
Immutable.jsの概要を知る
Immutable.js 概要
 Immutable = 不変
 関数型の考えに強くインスパイアされている
 コレクションへの変更は必ず新しいものを
返却し、元のコレクションは変更されない
 遅延評価をサポート( Seq )
(出力タイミングなど結果が必要な時に評価)
Immutable.js 入門
 List (配列に相当)
Immutable.js 入門
 Map(オブジェクトに相当)
Immutable.js 入門
 プレーンなJavaScriptだと、本来は同じ結果
 Immutableで作成したオブジェクトは
不変であり、更新時は必ず新しいものを返す
 オブジェクトや配列に必要な
操作はひととおり揃っている
 fromJS(), toJS()を利用すればプレーンな
JSオブジェクトとの切り替えも可能
ReactにImmutable.jsを
導入した場合のメリットを知る
パフォーマンス改善での活用
パフォーマンス改善での活用
 Reactでのパフォーマンス改善と言えば、
shouldComponentUpdate
 propsとstateの変更の際に、
再描画判定の実行可否を決定
 下記のような単純な構造の比較は容易
参考) https://facebook.github.io/react/docs/advanced-performance-ja-JP.html
ネストした場合の対処法
 先ほどのvalueの構造がネストすると、
中身の値を含めたディープな比較が出来ない
 キーを指定すれば良いが、変更時の修正など
メンテが必要になり、バグの温床になる
Immutable.jsを活用した解決法
 ネストしたデータはプレーンな
オブジェクトでなく、Map()やList()で定義
 これで正しい判定が可能 ( is()を使って比較 )
注意点
 MapやList内で更にネストした場合、
それらもMapやListにしないとshallow(浅い)
な比較になってしまい正しく判定できない
 APIから階層の深いJSONをまるごともらって
Storeなどに突っ込む場合はfromJS()を
使った方が楽そう
参考)
https://github.com/facebook/immutable-js/wiki/
Converting-from-JS-objects#converting-nested-data
ネストされたデータの
安全な操作
ネストされたデータの操作が便利
 Reactとは直接関係ないが、jsで存在しない
キーの中身を参照しようとするとエラーになる
 ImmutableのsetIn(), getIn()は深い階層の
データ変更や参照を安全に行える
 変更後は必ず新しいデータを返却する
ネストされたデータへの操作例
こんな時に便利
 キーの存在チェックをするコードが不要
 Stateなどのオブジェクトの部分変更時に
Object.assignなどを利用したマージが不要
→ この後詳しく
StateやStoreオブジェクトの
操作が便利
Stateの操作が便利
 stateはsetStateでキーを指定して更新する
 stateの中身がネストした場合、更新時には
マージする冗長なコードが増えがちになる
 下記のようなStateの場合を考えてみる
従来のStateの操作
 キーを指定し、新しいStateを設定するので
下記のような現状維持部分とマージする
コードが必要になる
Immutable.jsを利用した場合
参考) https://github.com/facebook/immutable-js/wiki/Immutable-as-React-state
 Immutableは操作の結果が必ず新しい状態を
返すので、直感的なコードになる
(階層が深い場合は先ほどのsetIn()でもOK)
 ReduxなどのStoreオブジェクトの操作も
同様にシンプルになる
Reduxでの
Record()を利用した
モデルの導入
Reduxでのモデルの導入
 Reduxを導入した際に、ロジックが
Action, Store, Component のどこかに入り
肥大化するのを解決できる
 Immutable.Record() でデータのモデル、
それを継承したクラスでデータを操作する
メソッドを定義するとロジックを押しこむ
事が可能になり、肥大化が防げそう
モデルを利用しない場合
todoリスト
Store操作
の例
(Reducer)
編集開始
変更保存
モデルを利用しない場合
 データのインデックスを参照し、
対象データを変更する冗長なコードが増える
 このようなコードをReducer、Actionなど
どこかが必ず持つ運命になっていた
モデルを利用する場合 (モデル本体)
 todo自身の状態を
変更する操作は
モデル側で定義
 右のedit() と save()
の操作の変更の
結果をそのまま同じ
actionに渡せる(後述)
編集開始
変更保存
モデルを利用する場合 (アクション)
 下記の2つのアクションは、変更操作を
前ページのモデル側の別々のメソッドで行い、
その結果を同じアクションに渡している
※実際にはイベントハンドラ経由でこれらのコードが呼ばれる
編集開始
変更保存
モデルを利用する場合 (Reducer)
 モデル側にロジックを移動したので、
アクションが統合されReducerの記述が簡潔に
 削除など配列本体への操作も、Immutableの
おかげで簡潔に(下記の操作はクラス側では行えない)
※前ページのchangeTodoアクションを受け取るReducerのコード例
モデルの利用
 モデルの利用については下記の記事が
参考になりました
React使い必見! Immutable.jsでReactはもっと良くなる
https://www.wantedly.com/companies/wantedly/post_articles/28935
How to use Immutable.js Records with React and Redux
https://medium.com/azendoo-team/immutable-record-react-redux-99f389ed676
React + Immutableの所感
 関数型のメリットをうまく活かして、
コードの量や見通しを改善できそう
 途中から全て書き換えるのはコストが
大きそうなので、早いうちに導入すべき
 部分的にImmutableにしてしまうと
プレーンなjsとの区別がつきにくそう
(混在する場合は何か工夫が必要そう)
Thank You !
ご静聴ありがとうございました
こんな他、こんなメリットもあるよ!
などありましたら是非共有お願いします!

Más contenido relacionado

La actualidad más candente

Unityでオニオンアーキテクチャ
UnityでオニオンアーキテクチャUnityでオニオンアーキテクチャ
Unityでオニオンアーキテクチャtorisoup
 
Unity開発で使える設計の話+Zenjectの紹介
Unity開発で使える設計の話+Zenjectの紹介Unity開発で使える設計の話+Zenjectの紹介
Unity開発で使える設計の話+Zenjectの紹介torisoup
 
関数型プログラミングのデザインパターンひとめぐり
関数型プログラミングのデザインパターンひとめぐり関数型プログラミングのデザインパターンひとめぐり
関数型プログラミングのデザインパターンひとめぐりKazuyuki TAKASE
 
DXのための内製化のススメ
DXのための内製化のススメDXのための内製化のススメ
DXのための内製化のススメDaiyu Hatakeyama
 
Data-centricなML開発
Data-centricなML開発Data-centricなML開発
Data-centricなML開発Takeshi Suzuki
 
クソコード動画「Managerクラス」解説
クソコード動画「Managerクラス」解説クソコード動画「Managerクラス」解説
クソコード動画「Managerクラス」解説MinoDriven
 
UnityでUI開発を高速化した件
UnityでUI開発を高速化した件UnityでUI開発を高速化した件
UnityでUI開発を高速化した件Grenge, Inc.
 
Unityとアセットツールで学ぶ「絵づくり」の基礎 ライト、シェーダー、イメージエフェクト
Unityとアセットツールで学ぶ「絵づくり」の基礎 ライト、シェーダー、イメージエフェクトUnityとアセットツールで学ぶ「絵づくり」の基礎 ライト、シェーダー、イメージエフェクト
Unityとアセットツールで学ぶ「絵づくり」の基礎 ライト、シェーダー、イメージエフェクト小林 信行
 
LibreOffice API について
LibreOffice API についてLibreOffice API について
LibreOffice API について健一 辰濱
 
OculusのPassthrough APIを使ってみた
OculusのPassthrough APIを使ってみたOculusのPassthrough APIを使ってみた
OculusのPassthrough APIを使ってみたTakayuki Goto
 
ドメイン駆動設計の正しい歩き方
ドメイン駆動設計の正しい歩き方ドメイン駆動設計の正しい歩き方
ドメイン駆動設計の正しい歩き方増田 亨
 
GoによるiOSアプリの開発
GoによるiOSアプリの開発GoによるiOSアプリの開発
GoによるiOSアプリの開発Takuya Ueda
 
Test Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるかTest Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるかTakuto Wada
 
NextGen Server/Client Architecture - gRPC + Unity + C#
NextGen Server/Client Architecture - gRPC + Unity + C#NextGen Server/Client Architecture - gRPC + Unity + C#
NextGen Server/Client Architecture - gRPC + Unity + C#Yoshifumi Kawai
 
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)「実践ドメイン駆動設計」 から理解するDDD (2018年11月)
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)A AOKI
 
概念モデルって難しいですよね
概念モデルって難しいですよね概念モデルって難しいですよね
概念モデルって難しいですよねTakuya Kawabe
 
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)Yoshitaka Kawashima
 
アンチフラジャイルの世界
アンチフラジャイルの世界アンチフラジャイルの世界
アンチフラジャイルの世界Yoshitaka Kawashima
 
Objectnessとその周辺技術
Objectnessとその周辺技術Objectnessとその周辺技術
Objectnessとその周辺技術Takao Yamanaka
 
TDPT + VMCプロトコル on WebRTC
TDPT + VMCプロトコル on WebRTCTDPT + VMCプロトコル on WebRTC
TDPT + VMCプロトコル on WebRTChironroinakae
 

La actualidad más candente (20)

Unityでオニオンアーキテクチャ
UnityでオニオンアーキテクチャUnityでオニオンアーキテクチャ
Unityでオニオンアーキテクチャ
 
Unity開発で使える設計の話+Zenjectの紹介
Unity開発で使える設計の話+Zenjectの紹介Unity開発で使える設計の話+Zenjectの紹介
Unity開発で使える設計の話+Zenjectの紹介
 
関数型プログラミングのデザインパターンひとめぐり
関数型プログラミングのデザインパターンひとめぐり関数型プログラミングのデザインパターンひとめぐり
関数型プログラミングのデザインパターンひとめぐり
 
DXのための内製化のススメ
DXのための内製化のススメDXのための内製化のススメ
DXのための内製化のススメ
 
Data-centricなML開発
Data-centricなML開発Data-centricなML開発
Data-centricなML開発
 
クソコード動画「Managerクラス」解説
クソコード動画「Managerクラス」解説クソコード動画「Managerクラス」解説
クソコード動画「Managerクラス」解説
 
UnityでUI開発を高速化した件
UnityでUI開発を高速化した件UnityでUI開発を高速化した件
UnityでUI開発を高速化した件
 
Unityとアセットツールで学ぶ「絵づくり」の基礎 ライト、シェーダー、イメージエフェクト
Unityとアセットツールで学ぶ「絵づくり」の基礎 ライト、シェーダー、イメージエフェクトUnityとアセットツールで学ぶ「絵づくり」の基礎 ライト、シェーダー、イメージエフェクト
Unityとアセットツールで学ぶ「絵づくり」の基礎 ライト、シェーダー、イメージエフェクト
 
LibreOffice API について
LibreOffice API についてLibreOffice API について
LibreOffice API について
 
OculusのPassthrough APIを使ってみた
OculusのPassthrough APIを使ってみたOculusのPassthrough APIを使ってみた
OculusのPassthrough APIを使ってみた
 
ドメイン駆動設計の正しい歩き方
ドメイン駆動設計の正しい歩き方ドメイン駆動設計の正しい歩き方
ドメイン駆動設計の正しい歩き方
 
GoによるiOSアプリの開発
GoによるiOSアプリの開発GoによるiOSアプリの開発
GoによるiOSアプリの開発
 
Test Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるかTest Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるか
 
NextGen Server/Client Architecture - gRPC + Unity + C#
NextGen Server/Client Architecture - gRPC + Unity + C#NextGen Server/Client Architecture - gRPC + Unity + C#
NextGen Server/Client Architecture - gRPC + Unity + C#
 
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)「実践ドメイン駆動設計」 から理解するDDD (2018年11月)
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)
 
概念モデルって難しいですよね
概念モデルって難しいですよね概念モデルって難しいですよね
概念モデルって難しいですよね
 
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)
 
アンチフラジャイルの世界
アンチフラジャイルの世界アンチフラジャイルの世界
アンチフラジャイルの世界
 
Objectnessとその周辺技術
Objectnessとその周辺技術Objectnessとその周辺技術
Objectnessとその周辺技術
 
TDPT + VMCプロトコル on WebRTC
TDPT + VMCプロトコル on WebRTCTDPT + VMCプロトコル on WebRTC
TDPT + VMCプロトコル on WebRTC
 

Similar a ReactとImmutable.jsで関数型を体験してみて思ったこと #scripty06

デジタルマーケティング時代の横断プロジェクトのあり方とは(アドテック東京2014セッションから)
デジタルマーケティング時代の横断プロジェクトのあり方とは(アドテック東京2014セッションから)デジタルマーケティング時代の横断プロジェクトのあり方とは(アドテック東京2014セッションから)
デジタルマーケティング時代の横断プロジェクトのあり方とは(アドテック東京2014セッションから)Go Sugihara
 
【TECH×GAME COLLEGE#26】カジュゲーマネタイズをハックする~基礎と最前線~
【TECH×GAME COLLEGE#26】カジュゲーマネタイズをハックする~基礎と最前線~【TECH×GAME COLLEGE#26】カジュゲーマネタイズをハックする~基礎と最前線~
【TECH×GAME COLLEGE#26】カジュゲーマネタイズをハックする~基礎と最前線~techgamecollege
 
Vantan shinsuke miyaki_upload
Vantan shinsuke miyaki_uploadVantan shinsuke miyaki_upload
Vantan shinsuke miyaki_uploadShinsuke Miyaki
 
第2回 FOUND Conference in Tokyo 第2部スライド
第2回 FOUND Conference in Tokyo 第2部スライド第2回 FOUND Conference in Tokyo 第2部スライド
第2回 FOUND Conference in Tokyo 第2部スライドDemandSphere
 
第2回 FOUND Conference in Tokyo 第2部スライド
第2回 FOUND Conference in Tokyo 第2部スライド第2回 FOUND Conference in Tokyo 第2部スライド
第2回 FOUND Conference in Tokyo 第2部スライドChika Noguchi
 
今さら聞けないAndroidアプリの基本プロモーション方法
今さら聞けないAndroidアプリの基本プロモーション方法今さら聞けないAndroidアプリの基本プロモーション方法
今さら聞けないAndroidアプリの基本プロモーション方法Hiromitsu Ishimori
 
【株式会社PIGNUS】会社概要資料.pdf
【株式会社PIGNUS】会社概要資料.pdf【株式会社PIGNUS】会社概要資料.pdf
【株式会社PIGNUS】会社概要資料.pdfcontact890866
 
【株式会社PIGNUS】会社概要資料
【株式会社PIGNUS】会社概要資料【株式会社PIGNUS】会社概要資料
【株式会社PIGNUS】会社概要資料contact890866
 
成果を出すデジタル化支援とは
成果を出すデジタル化支援とは成果を出すデジタル化支援とは
成果を出すデジタル化支援とはNetyearGroup
 
グローバルマネタイズ戦略【Metaps(メタップス) pte ltd.】 「グロバール×スマホゲーム」の勝ち方セミナー資料
グローバルマネタイズ戦略【Metaps(メタップス) pte ltd.】   「グロバール×スマホゲーム」の勝ち方セミナー資料グローバルマネタイズ戦略【Metaps(メタップス) pte ltd.】   「グロバール×スマホゲーム」の勝ち方セミナー資料
グローバルマネタイズ戦略【Metaps(メタップス) pte ltd.】 「グロバール×スマホゲーム」の勝ち方セミナー資料Katsuaki Sato
 
20180206 Lay App Grow App で進める DevOps アプリ開発アプローチ
20180206 Lay App  Grow App で進める DevOps アプリ開発アプローチ20180206 Lay App  Grow App で進める DevOps アプリ開発アプローチ
20180206 Lay App Grow App で進める DevOps アプリ開発アプローチShunsuke Kawai
 
イマドキの改善!データ分析SDK導入のポイントとAI活用最新事例 / GTMF2019
イマドキの改善!データ分析SDK導入のポイントとAI活用最新事例 / GTMF2019イマドキの改善!データ分析SDK導入のポイントとAI活用最新事例 / GTMF2019
イマドキの改善!データ分析SDK導入のポイントとAI活用最新事例 / GTMF2019Game Tools & Middleware Forum
 
メンター制によるHCD/UXD人財育成の取り組み
メンター制によるHCD/UXD人財育成の取り組みメンター制によるHCD/UXD人財育成の取り組み
メンター制によるHCD/UXD人財育成の取り組みYasuyoKondo
 
HTML5を活用した効果の高いリッチアプリ開発体制構築とコンサルティングの実現方法
HTML5を活用した効果の高いリッチアプリ開発体制構築とコンサルティングの実現方法HTML5を活用した効果の高いリッチアプリ開発体制構築とコンサルティングの実現方法
HTML5を活用した効果の高いリッチアプリ開発体制構築とコンサルティングの実現方法Kazuhiro Kotsutsumi
 
Androidマーケティングに不可欠な15の活動(改) 20111222
Androidマーケティングに不可欠な15の活動(改) 20111222Androidマーケティングに不可欠な15の活動(改) 20111222
Androidマーケティングに不可欠な15の活動(改) 20111222Hiromitsu Ishimori
 
Microsoft azure におけるアジャイル マーケティング 20171205 public
Microsoft azure におけるアジャイル マーケティング 20171205 publicMicrosoft azure におけるアジャイル マーケティング 20171205 public
Microsoft azure におけるアジャイル マーケティング 20171205 publicMicrosoft Azure Japan
 
パソナテック Find Your Ability 講演資料 「ディレクターにとってのWeb業界って? 」
パソナテック Find Your Ability 講演資料 「ディレクターにとってのWeb業界って? 」パソナテック Find Your Ability 講演資料 「ディレクターにとってのWeb業界って? 」
パソナテック Find Your Ability 講演資料 「ディレクターにとってのWeb業界って? 」naoki ando
 

Similar a ReactとImmutable.jsで関数型を体験してみて思ったこと #scripty06 (20)

デジタルマーケティング時代の横断プロジェクトのあり方とは(アドテック東京2014セッションから)
デジタルマーケティング時代の横断プロジェクトのあり方とは(アドテック東京2014セッションから)デジタルマーケティング時代の横断プロジェクトのあり方とは(アドテック東京2014セッションから)
デジタルマーケティング時代の横断プロジェクトのあり方とは(アドテック東京2014セッションから)
 
【TECH×GAME COLLEGE#26】カジュゲーマネタイズをハックする~基礎と最前線~
【TECH×GAME COLLEGE#26】カジュゲーマネタイズをハックする~基礎と最前線~【TECH×GAME COLLEGE#26】カジュゲーマネタイズをハックする~基礎と最前線~
【TECH×GAME COLLEGE#26】カジュゲーマネタイズをハックする~基礎と最前線~
 
Vantan shinsuke miyaki_upload
Vantan shinsuke miyaki_uploadVantan shinsuke miyaki_upload
Vantan shinsuke miyaki_upload
 
Androidmarketing15
Androidmarketing15Androidmarketing15
Androidmarketing15
 
第2回 FOUND Conference in Tokyo 第2部スライド
第2回 FOUND Conference in Tokyo 第2部スライド第2回 FOUND Conference in Tokyo 第2部スライド
第2回 FOUND Conference in Tokyo 第2部スライド
 
第2回 FOUND Conference in Tokyo 第2部スライド
第2回 FOUND Conference in Tokyo 第2部スライド第2回 FOUND Conference in Tokyo 第2部スライド
第2回 FOUND Conference in Tokyo 第2部スライド
 
今さら聞けないAndroidアプリの基本プロモーション方法
今さら聞けないAndroidアプリの基本プロモーション方法今さら聞けないAndroidアプリの基本プロモーション方法
今さら聞けないAndroidアプリの基本プロモーション方法
 
【株式会社PIGNUS】会社概要資料.pdf
【株式会社PIGNUS】会社概要資料.pdf【株式会社PIGNUS】会社概要資料.pdf
【株式会社PIGNUS】会社概要資料.pdf
 
【株式会社PIGNUS】会社概要資料
【株式会社PIGNUS】会社概要資料【株式会社PIGNUS】会社概要資料
【株式会社PIGNUS】会社概要資料
 
成果を出すデジタル化支援とは
成果を出すデジタル化支援とは成果を出すデジタル化支援とは
成果を出すデジタル化支援とは
 
グローバルマネタイズ戦略【Metaps(メタップス) pte ltd.】 「グロバール×スマホゲーム」の勝ち方セミナー資料
グローバルマネタイズ戦略【Metaps(メタップス) pte ltd.】   「グロバール×スマホゲーム」の勝ち方セミナー資料グローバルマネタイズ戦略【Metaps(メタップス) pte ltd.】   「グロバール×スマホゲーム」の勝ち方セミナー資料
グローバルマネタイズ戦略【Metaps(メタップス) pte ltd.】 「グロバール×スマホゲーム」の勝ち方セミナー資料
 
20180206 Lay App Grow App で進める DevOps アプリ開発アプローチ
20180206 Lay App  Grow App で進める DevOps アプリ開発アプローチ20180206 Lay App  Grow App で進める DevOps アプリ開発アプローチ
20180206 Lay App Grow App で進める DevOps アプリ開発アプローチ
 
イマドキの改善!データ分析SDK導入のポイントとAI活用最新事例 / GTMF2019
イマドキの改善!データ分析SDK導入のポイントとAI活用最新事例 / GTMF2019イマドキの改善!データ分析SDK導入のポイントとAI活用最新事例 / GTMF2019
イマドキの改善!データ分析SDK導入のポイントとAI活用最新事例 / GTMF2019
 
メンター制によるHCD/UXD人財育成の取り組み
メンター制によるHCD/UXD人財育成の取り組みメンター制によるHCD/UXD人財育成の取り組み
メンター制によるHCD/UXD人財育成の取り組み
 
広報のいない会社でSEから広報になった担当者の話
広報のいない会社でSEから広報になった担当者の話広報のいない会社でSEから広報になった担当者の話
広報のいない会社でSEから広報になった担当者の話
 
HTML5を活用した効果の高いリッチアプリ開発体制構築とコンサルティングの実現方法
HTML5を活用した効果の高いリッチアプリ開発体制構築とコンサルティングの実現方法HTML5を活用した効果の高いリッチアプリ開発体制構築とコンサルティングの実現方法
HTML5を活用した効果の高いリッチアプリ開発体制構築とコンサルティングの実現方法
 
Androidマーケティングに不可欠な15の活動(改) 20111222
Androidマーケティングに不可欠な15の活動(改) 20111222Androidマーケティングに不可欠な15の活動(改) 20111222
Androidマーケティングに不可欠な15の活動(改) 20111222
 
YJTC18 A-7 Yahoo! JAPANを支える広告技術
YJTC18 A-7 Yahoo! JAPANを支える広告技術YJTC18 A-7 Yahoo! JAPANを支える広告技術
YJTC18 A-7 Yahoo! JAPANを支える広告技術
 
Microsoft azure におけるアジャイル マーケティング 20171205 public
Microsoft azure におけるアジャイル マーケティング 20171205 publicMicrosoft azure におけるアジャイル マーケティング 20171205 public
Microsoft azure におけるアジャイル マーケティング 20171205 public
 
パソナテック Find Your Ability 講演資料 「ディレクターにとってのWeb業界って? 」
パソナテック Find Your Ability 講演資料 「ディレクターにとってのWeb業界って? 」パソナテック Find Your Ability 講演資料 「ディレクターにとってのWeb業界って? 」
パソナテック Find Your Ability 講演資料 「ディレクターにとってのWeb業界って? 」
 

Más de Yahoo!デベロッパーネットワーク

ヤフーでは開発迅速性と品質のバランスをどう取ってるか
ヤフーでは開発迅速性と品質のバランスをどう取ってるかヤフーでは開発迅速性と品質のバランスをどう取ってるか
ヤフーでは開発迅速性と品質のバランスをどう取ってるかYahoo!デベロッパーネットワーク
 
データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2
データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2
データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2Yahoo!デベロッパーネットワーク
 
ヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtc
ヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtcヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtc
ヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtcYahoo!デベロッパーネットワーク
 
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtcYahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtcYahoo!デベロッパーネットワーク
 
ヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtc
ヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtcヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtc
ヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtcYahoo!デベロッパーネットワーク
 
新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc
新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc
新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtcYahoo!デベロッパーネットワーク
 
PC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtc
PC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtcPC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtc
PC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtcYahoo!デベロッパーネットワーク
 
モブデザインによる多職種チームのコミュニケーション改善 #yjtc
モブデザインによる多職種チームのコミュニケーション改善 #yjtcモブデザインによる多職種チームのコミュニケーション改善 #yjtc
モブデザインによる多職種チームのコミュニケーション改善 #yjtcYahoo!デベロッパーネットワーク
 
ユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtc
ユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtcユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtc
ユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtcYahoo!デベロッパーネットワーク
 

Más de Yahoo!デベロッパーネットワーク (20)

ゼロから始める転移学習
ゼロから始める転移学習ゼロから始める転移学習
ゼロから始める転移学習
 
継続的なモデルモニタリングを実現するKubernetes Operator
継続的なモデルモニタリングを実現するKubernetes Operator継続的なモデルモニタリングを実現するKubernetes Operator
継続的なモデルモニタリングを実現するKubernetes Operator
 
ヤフーでは開発迅速性と品質のバランスをどう取ってるか
ヤフーでは開発迅速性と品質のバランスをどう取ってるかヤフーでは開発迅速性と品質のバランスをどう取ってるか
ヤフーでは開発迅速性と品質のバランスをどう取ってるか
 
オンプレML基盤on Kubernetes パネルディスカッション
オンプレML基盤on Kubernetes パネルディスカッションオンプレML基盤on Kubernetes パネルディスカッション
オンプレML基盤on Kubernetes パネルディスカッション
 
LakeTahoe
LakeTahoeLakeTahoe
LakeTahoe
 
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
 
Persistent-memory-native Database High-availability Feature
Persistent-memory-native Database High-availability FeaturePersistent-memory-native Database High-availability Feature
Persistent-memory-native Database High-availability Feature
 
データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2
データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2
データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2
 
eコマースと実店舗の相互利益を目指したデザイン #yjtc
eコマースと実店舗の相互利益を目指したデザイン #yjtceコマースと実店舗の相互利益を目指したデザイン #yjtc
eコマースと実店舗の相互利益を目指したデザイン #yjtc
 
ヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtc
ヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtcヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtc
ヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtc
 
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtcYahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
 
ビッグデータから人々のムードを捉える #yjtc
ビッグデータから人々のムードを捉える #yjtcビッグデータから人々のムードを捉える #yjtc
ビッグデータから人々のムードを捉える #yjtc
 
サイエンス領域におけるMLOpsの取り組み #yjtc
サイエンス領域におけるMLOpsの取り組み #yjtcサイエンス領域におけるMLOpsの取り組み #yjtc
サイエンス領域におけるMLOpsの取り組み #yjtc
 
ヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtc
ヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtcヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtc
ヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtc
 
Yahoo! JAPAN Tech Conference 2022 Day2 Keynote #yjtc
Yahoo! JAPAN Tech Conference 2022 Day2 Keynote #yjtcYahoo! JAPAN Tech Conference 2022 Day2 Keynote #yjtc
Yahoo! JAPAN Tech Conference 2022 Day2 Keynote #yjtc
 
新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc
新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc
新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc
 
PC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtc
PC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtcPC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtc
PC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtc
 
モブデザインによる多職種チームのコミュニケーション改善 #yjtc
モブデザインによる多職種チームのコミュニケーション改善 #yjtcモブデザインによる多職種チームのコミュニケーション改善 #yjtc
モブデザインによる多職種チームのコミュニケーション改善 #yjtc
 
「新しいおうち探し」のためのAIアシスト検索 #yjtc
「新しいおうち探し」のためのAIアシスト検索 #yjtc「新しいおうち探し」のためのAIアシスト検索 #yjtc
「新しいおうち探し」のためのAIアシスト検索 #yjtc
 
ユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtc
ユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtcユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtc
ユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtc
 

Último

Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 

Último (9)

Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 

ReactとImmutable.jsで関数型を体験してみて思ったこと #scripty06