如何に “データが壊れない” 管理画面を作るか - 管理画面開発の裏側

Keiji Muraishi
Keiji MuraishiSmartNews, Inc. - Software Engineer at SmartNews, Inc.
如何に“データが壊れ
ない” 管理画面を作る
か
kjim @ JJUG CCC 2018 Spring
2018/05/26
Who I am:
● 村石 恵示 (Keiji Muraishi / @kjim)
● Software Engineer, Ads
● 2014/09 SmartNews 入社
● 変遷
○ SIer 1.5 years
○ TowersQuest 2.0 years
○ Freelance 3.5 years
○ IIJ 2.0 years
○ SmartNews 3.8 years (now!)
如何に “データが壊れない” 管理画面を作るか - 管理画面開発の裏側
http://about.smartnews.com/ja/2018/05/10/20180510/
Agenda:
● SmartNews Ads の紹介
● SmartNews Ads システム外観
● Ad Frontend
● データにまつわる話
● Productivity を保つ実装への落とし方
Agenda:
● SmartNews Ads の紹介
● SmartNews Ads システム外観
● Ad Frontend
● データにまつわる話
● Productivity を保つ実装への落とし方
Sma w A s
from 2014/12
Sma w A s
http://static.smartnews.com/smartnews-ads/key_mediaguide_smartnews.pdf
SmartNews Ads
テクノロジーの力で「Ads as Content」の実現を
目指す広告プラットフォーム
Sma w A s
こんなことができます:
● SmartNews アプリへの広告配信
○ 運用型 / 純広型
● ターゲティング
○ ユーザー属性によって広告配信先をコントロールする
● 入札価格の自動調整 - oCPC
○ ユーザに合わせてアルゴリズムが入札価格を自動的に最適化し、効果的
に広告を配信 (https://markezine.jp/article/detail/26204)
Sy em O v e
Agenda:
● SmartNews Ads の紹介
● SmartNews Ads システム外観
● Ad Frontend
● データにまつわる話
● Productivity を保つ実装への落とし方
Sy em O v e
端折って単純化したりしてますが、大体こんな感じです
Ad Server
Ad DMP
Ad Frontend
今日、お話すること
Ad Frontend
SmartNews Ads の機能にアクセスするための広
告管理コンソール
Add full width photo/video here!
Cover up this placeholder with an image that touches the right/left sides and colored top bar
Ad F o t
いい感じのスクショを貼る
Ad Frontend - 広告管理コンソール
といっても、
今日は画面の話というより
もデータに着目した話をし
ます。
Ad F o t
Ad Frontend:
● 広告の出稿にまつわるあらゆる機能にアクセ
スするための広告管理コンソール
● 画面だけでなく、広告代理店向けの API も
持っている
● SmartNews Ads システムの Hub 役
○ ユーザーとシステムの Hub として
○ コンポーネント間の Hub として
Ad F o t
汚すのは一点:
● 広告配信プラットフォームは多様なコンポーネ
ントで構成されている
○ AdServer, DMP, Tracking, AdFrontend, etc…
● 必然的にコンポーネント間の接続点が発生す
る
○ どのコンポーネントがどこに接続するべきかという問題が生じる
● SmartNews Ads では、汚れ役を立ててそれ以
外を clean に保つという設計をしている
汚れ役としての Ad Frontend
Ad F o t
汚れ役としての二つの役割:
● サブコンポーンエント間の接続点の仲介
○ 管理画面は多様なコンポーネントの機能を利用して「統合されたコ
ントローラ」として機能する
○ 管理画面はそもそも多くのコンポーネントに接続する必要がある
● データを利用しやすい形で正確に保つ
○ データの入力側で正確なデータが担保されていれば、そのデータ
の利用側は不必要な例外条件を考えなくて良くなる
○ データの利用側は、ある機能が “機能する” ための最低限の
validation だけを意識すれば良い
Ad F o t
1. コンポーネント間の仲介:
● 接続点が増えるとメンテコストはどうしても上が
る
○ システム全体としての変更耐性が下がる
○ 変更耐性が下がるとプロダクトの productivity に影響する
○ 接続点には必ず制約(仕様)が存在し、その一つの制約を複数のコンポー
ネントが把握するというのはコストが高い作業である
● SmartNews Ads では、基本、直接の依存コン
ポーネントを極力減らすという判断で作ってる
Ad F o t
Mesh or Line?
Mesh Line
Ad Server
Ad
Frontend
DMP
Ad Server
Ad
Frontend
DMP
● Ad Server と DMP は直
接の依存関係を作らない
● 両者の制約を吸収すること
によって互いの進化のス
ピードを落とさない
● Hub があることで、例え
ば、機能実装の世代交代に
柔軟に対応できる
Agenda:
● SmartNews Ads の紹介
● SmartNews Ads システム外観
● Ad Frontend
● データにまつわる話
● Productivity を保つ実装への落とし方
The Data
SmartNews Ads における
データにまつわる話
The
データは誰が決める?
● SmartNews Ads の場合、”広告配信” に最適
なデータ構造は何か? が出発点
○ AdServer が出発点
● 管理画面の開発は、その設計を Follow する
形で始まった
ここで問題が生じる
The
解く問題が異なる:
● Ad Server
大量の広告リクエストを、どのようにして効果を
最大化しつつ高速に捌くか
● Ad Frontend
広告データを、どのように直感的かつ平易な
UI で正しく作れるようにするか
広告出稿までの業務フローの中でシステムを
どのように介在させるか
解くべき問題が異なれば必要
になるデータも異なる
example 1
“審査ステータス” と “有効フラグ”
審査ステータス:
The
● 広告の審査状態を管理する
● 審査OKの広告のみ配信できる
● 審査ステータスは広告審査の業務ルールに
よって状態管理される
○ 審査業務に依存するデータである
○ この業務ルールは広告主や審査オペレータのためのものであり、
配信にも影響すべきデータである
○ 業務ルールは変更されうるデータである
The
審査ステータス:
ステータス 配信可否
未審査 ×
審査待ち ×
審査OK ◯
審査NG ×
審査ステータス: Ad Server
The
● 広告の審査状態を管理する
● 審査OKの広告のみ配信できる
● 審査ステータスは広告審査の業務ルールに
よって状態管理される
○ 審査業務に依存するデータである
○ この業務ルールは広告主や審査オペレータのためのものであり、本質的
には配信に影響するデータである
○ 業務ルールは変更されうるデータである
Ad Server を変更されうる
データに依存させることに
なる
The
“有効フラグ” の登場:
● Ad Server からは審査のビジネスルールに依
存したデータ参照を失くしたい
○ それによって、審査業務の変更耐性を上げることができる
● 審査ステータスに従属し管理される “有効フラ
グ” を作って、Ad Server はこれに依存させる
○ Ad Server は単に ON か OFF を見れば良くなり、その背後にあるビジネ
スから切り離すことができる
● “審査ステータス” と “有効フラグ” のデータは
Ad Frontend が責任を持つ
依存性を閉じ込めて
全体としての複雑性を
下げる
example 2
ユーザー定義オーディエンス
(aka. Custom Audience)
The
Custom Audience とは?
“広告主が有するさまざまなユーザー情報を活用
し、SmartNews Adsにおいてターゲットとする
ユーザーの条件を自在に組み合わせることがで
きる機能”
http://about.smartnews.com/ja/2016/03/07/20160307customaudience/
The
例えば:
● A という商品ページを閲覧したことのあ
るユーザーにだけ広告を配信したい
● B というアプリを既にダウンロードした
ユーザーは除外して広告を配信したい
The
アーキテクチャ:
● Tracker
○ 外部 Signal(Event) を集める
● Ad Frontend
○ ユーザー定義オーディエンスを定義する
● Ad DMP
○ ユーザー定義オーディエンスと Tracker の Signal か
らオーディエンスの実体を計算する
● Ad Server
○ オーディエンスの実体を利用して広告を配信する
The
データの性格に着目:
● イベントソースが多様である
○ 過去に広告配信したことのある... A の Page にアクセスしたことのある...
B というアプリをインストールしたことのある... etc…
● “自在に組み合わせる”
○ オーディエンス定義に Composability が要求される
● データ仕様が拡張される
RDB のテーブル定義に
マッピングするのは適さない類のデータ
Document Format:
The
● Database には Document 形式 (JSON) で持
つようにすることによって動的性と拡張性を柔
軟に担保できるようにする
● もちろん、この判断はタダではなく、データ定義
の複雑性と正確性をきちんとコントロールする
必要が生じる
● そもそも、誰がデータを定義するかという問題
もある (Database は単なる箱と化すので)
The
Productivity を優先する:
● 僕らのようなスタートアップにとってスピードは
非常に大事
● 完璧を求める時間は無駄であり、割り切りとい
う判断が必要
● Document 形式を定義するのは DMP
○ そのデータの本質的なユーザーである
○ Ad Frontend はそのデータを Follow する関係
“Done is better than Perfect”
The
対処すべき問題:
● 拡張性を犠牲にしない
○ 足が遅くなってしまっては、なぜこのデータ形式を選択したのか分からなく
なってしまう
● データの互換性には十分気を付けなければい
けない
○ 拡張性の高さによって、新たに実装される Custom Audience 定義が発
生した時に、操作できなくとも壊れない状態にする必要性がある
● データを守るのは Ad Frontend の至上命題
Ad Frontend
The
実装戦略: 中間モデルを作る
Business
Logic
Ad DMPAurora
SerDeLib
(partofAdDMP)
Converter
1. データベースの Raw データを Ad DMP の
SerDe Lib を使って変換
2. [1] の結果を Ad Frontend の SerDe 実装を使っ
て都合の良い中間モデルに変換
3. 画面との API はこの中間モデルを利用する
The
実装戦略:
● 中間モデルとRawモデルの相互変換実装は特
にしっかりとテストを書く
● エラーハンドリング処理をこの一点に集約する
○ 仮に、Ad Frontend が未知のデータを受け取ったとしても想定内エラーと
して扱うようにする
● 仮に未知のデータを受け取ったとしても、その
データへの操作をできなくして、データが不正
状態で更新されることを防ぐ
Agenda:
● SmartNews Ads の紹介
● SmartNews Ads システム外観
● Ad Frontend
● データにまつわる話
● Productivity を保つ実装への落とし方
機動性と安全性を
両立する
実装への落とし方
原則
低レイヤーに行く程にルールをより強く強制する
ことができる
“蛇口よりも元栓”
Lay Ar it re
Frontend
(client)
Layers:
Controller Service Repository Datastore
右に行く程にデータに対するルールの
強制力は強くなる
Lay Ar it re
Trade off:
(LEFT) Front-side Store-side (RIGHT)
Pros:
● (開発初期において)
Productivity を高く保つこ
とができる
Pros:
● あらゆるデータ処理で制約
違反しないように考慮して実
装しなければいけない
● データを保全することが本質
的に難しくなる
Pros:
● 強制力の強い制約条件を課
すことができる
Pros:
● 拡張性と柔軟性
(Productivity) が
犠牲になる
Lay Ar it re
Frontend
(client)
Layers:
Controller Service Repository Datastore
この図でもう一つ
言えることがあります
Lay Ar it re
Frontend
(client)
Layers:
Controller Service Repository Datastore
右に行く程にパフォーマンスチューニン
グの余地が拡がる
Lay Ar it re
Frontend
(client)
Layers: Ad Frontend の場合
Controller Service Repository Datastore
Datastore の手前にデータ制約の
最終防衛ラインを敷く
Repository
↓
Resource
Lay Ar it re
最終防衛ライン:
● Productivity を保ちつつ
● おかしなデータが渡された場合
○ 更新せずに無視する
○ 例外状態にする
といった挙動を実装することによって、デー
タが保全されるようにコントロールすること
ができる
Lay Ar it re
最終防衛ライン:
● Datastore に近い場所に防衛ラインを引くこと
で、より Primitive なデータ管理が可能になる
● 一度に多くのことを考える必要がなくなる
制約ロジックの実装がシンプルになる
Lay Ar it re
データ操作の3要素:
● Model
○ データモデル
● Resource
○ データモデルを Datastore に対して操作
するための API を提供
● Query
○ データ操作の実装を提供
Resource Layer
QueryQuery
Lay Ar it re
Resource Layer:
ResourceService
Query
SQL
ORM
API Call
Datastore
(Database)
External
Component
Resource Layer
データ操作の抽象度を保ちつつ、
そうしたくなったら
低レベルな実装にもすることができる
Lay Ar it re
Resource ONLY:
trait FooResource {
def get(id: ID): Seq[Foo]
def update(id: ID, foo: Foo): Int
}
● Resource の api call のタイミングが操作の
実行タイミングと同期されてしまう
● 仮に update に特別なモードで処理させたい
場合、引数を追加するか、新たにメソッドを生
やすしかない
Resource だけでは
柔軟な API を表現
できない
Query
データの集合を表すインタフェース表現で
クエリの実行結果を抽象化して遅延実行や
その他の表現力と拡張性を追加する
Lay Ar it re
二つの Query 定義:
// for refer
trait Query[T] extends Iterable[T] {
def iterator(): Iterator[T]
}
// for update
trait UpdateQuery[T] {
def apply(): Query[T]
}
Resource + Query
Lay Ar it re
Resource meets Query:
trait FooResource {
def get(id: ID): Query[Foo]
}
● Resource の api call のタイミングとクエリ実
行は切り離される
Lay Ar it re
Resource meets Query:
trait ExUpdateFooQuery extends UpdateQuery[ID] {
def withSpecialSomething(): ExUpdateQuery
}
trait FooResource {
def update(id: ID, foo: Foo): ExUpdateFooQuery
}
● UpdateQuery で不十分なら互換性を保ちつ
つ追加の API を生やす表現力が加わる
Lay Ar it re
Resource + Query:
● 実体が欲しい時にはいつでも要求できる
● Query 取得後、実体が必要なければ余計なク
エリ実行のコストを省くこともできる
● Query の結果を memory 上に cache した
Query を返すこともできる
○ そして Interface は何も変わらないので同じように扱うことができる
● Query 自体を拡張した独自の Query を定義
すれば独自の API を生やすこともできる
Lay Ar it re
Resource meets Query:
trait FooQuery extends Query[Foo] {
def partialize(): FooQuery
}
trait FooResource {
def get(id: ID): FooQuery
}
// usage
resource.get(“3838”).partialize()
Query
データの集合を表すインタフェース表現で
クエリの実行結果を抽象化して遅延実行や
その他の表現力と拡張性を追加する
API 表現に柔軟性と拡張性を持たせつつ、
統一的なインタフェースを提供する
Conclusion
Con s o
● SmartNews Ads のシステム全体と
Hub としての Ad Frontend
● データを利用するコンポーネントの依存関係を
適切にコントロールし、不用意に依存関係を増
やさない
● 機動性と安全性を両立する実装としての
Resource + Query
Thank you!
https://bit.ly/sn-eng-jobs
1 of 69

Recommended

Employer Branding for Talent Attraction by
Employer Branding for Talent Attraction Employer Branding for Talent Attraction
Employer Branding for Talent Attraction N. Robert Johnson, APR
1K views29 slides
Performance management by
Performance managementPerformance management
Performance managementBhuvanesh Kumar
978 views14 slides
careers and career management by
 careers and career management careers and career management
careers and career managementdongardive_leena
12.1K views12 slides
Performance Management System & Performance Appraisal by
Performance Management System & Performance AppraisalPerformance Management System & Performance Appraisal
Performance Management System & Performance AppraisalArun VI
6.5K views17 slides
Employee Performance Review PowerPoint Presentation Slides by
Employee Performance Review PowerPoint Presentation Slides Employee Performance Review PowerPoint Presentation Slides
Employee Performance Review PowerPoint Presentation Slides SlideTeam
4.6K views25 slides
Introduction to Employee performance management(EPM) -Performance Management ... by
Introduction to Employee performance management(EPM) -Performance Management ...Introduction to Employee performance management(EPM) -Performance Management ...
Introduction to Employee performance management(EPM) -Performance Management ...Mouneswari
252 views27 slides

More Related Content

What's hot

On Boarding Process Report by
On Boarding Process ReportOn Boarding Process Report
On Boarding Process Reportjagrati asija
1.2K views25 slides
Employee recognition program by
Employee recognition programEmployee recognition program
Employee recognition programRashmi Rawat
1.2K views9 slides
Employee Life Cycle PowerPoint Presentation Slides by
Employee Life Cycle PowerPoint Presentation Slides Employee Life Cycle PowerPoint Presentation Slides
Employee Life Cycle PowerPoint Presentation Slides SlideTeam
4.3K views38 slides
Enhancing the employer brand by
Enhancing the employer brandEnhancing the employer brand
Enhancing the employer brandHackerEarth
1.7K views37 slides
Talent Management Presentation by
Talent Management PresentationTalent Management Presentation
Talent Management Presentationrobhill73
15.2K views12 slides
Vodafone People Strategy by
Vodafone People StrategyVodafone People Strategy
Vodafone People StrategyMarcus Vannini
2.6K views5 slides

What's hot(20)

On Boarding Process Report by jagrati asija
On Boarding Process ReportOn Boarding Process Report
On Boarding Process Report
jagrati asija1.2K views
Employee recognition program by Rashmi Rawat
Employee recognition programEmployee recognition program
Employee recognition program
Rashmi Rawat1.2K views
Employee Life Cycle PowerPoint Presentation Slides by SlideTeam
Employee Life Cycle PowerPoint Presentation Slides Employee Life Cycle PowerPoint Presentation Slides
Employee Life Cycle PowerPoint Presentation Slides
SlideTeam4.3K views
Enhancing the employer brand by HackerEarth
Enhancing the employer brandEnhancing the employer brand
Enhancing the employer brand
HackerEarth1.7K views
Talent Management Presentation by robhill73
Talent Management PresentationTalent Management Presentation
Talent Management Presentation
robhill7315.2K views
Chapter 2 RECRUITMENT AND SELECTION by Shadina Shah
Chapter 2 RECRUITMENT AND SELECTION Chapter 2 RECRUITMENT AND SELECTION
Chapter 2 RECRUITMENT AND SELECTION
Shadina Shah528 views
How to build a People Strategy by Andy Cast
How to build a People StrategyHow to build a People Strategy
How to build a People Strategy
Andy Cast6.2K views
Employee Value Proposition in Corporate Human Resources by Sarah Brennan
Employee Value Proposition in Corporate Human ResourcesEmployee Value Proposition in Corporate Human Resources
Employee Value Proposition in Corporate Human Resources
Sarah Brennan33.8K views
Competency mapping by Jegan Sekar
Competency mappingCompetency mapping
Competency mapping
Jegan Sekar11.2K views
Perks WW 10 Employee Recognition Program Best Practices Webinar by Deb Broderson
Perks WW 10 Employee Recognition Program Best Practices WebinarPerks WW 10 Employee Recognition Program Best Practices Webinar
Perks WW 10 Employee Recognition Program Best Practices Webinar
Deb Broderson879 views
Transformation of Talent Management by Mason Stevenson
Transformation of Talent Management Transformation of Talent Management
Transformation of Talent Management
Mason Stevenson23.5K views
Competency based interviewing skills by Siraj Rahman
Competency based interviewing skillsCompetency based interviewing skills
Competency based interviewing skills
Siraj Rahman181 views
2023 HR Technology Trends: What's New and What's Next by Aggregage
2023 HR Technology Trends: What's New and What's Next2023 HR Technology Trends: What's New and What's Next
2023 HR Technology Trends: What's New and What's Next
Aggregage562 views
On Boarding Ppt by tomnorthrop
On Boarding PptOn Boarding Ppt
On Boarding Ppt
tomnorthrop36.5K views
Vision to values: How to build and scale your talent acquisition roadmap by LinkedIn Talent Solutions
Vision to values: How to build and scale your talent acquisition roadmapVision to values: How to build and scale your talent acquisition roadmap
Vision to values: How to build and scale your talent acquisition roadmap

Similar to 如何に “データが壊れない” 管理画面を作るか - 管理画面開発の裏側

市場動向並びに弊社製品の今後の展望について by
市場動向並びに弊社製品の今後の展望について市場動向並びに弊社製品の今後の展望について
市場動向並びに弊社製品の今後の展望についてKen Azuma
709 views40 slides
MonotaRO のデータ活用と基盤の過去、現在、未来 by
MonotaRO のデータ活用と基盤の過去、現在、未来 MonotaRO のデータ活用と基盤の過去、現在、未来
MonotaRO のデータ活用と基盤の過去、現在、未来 株式会社MonotaRO Tech Team
13.3K views49 slides
「歩留り」で管理するストリーミング配信 2013 3-21 by
「歩留り」で管理するストリーミング配信 2013 3-21「歩留り」で管理するストリーミング配信 2013 3-21
「歩留り」で管理するストリーミング配信 2013 3-21Yoichiro Takehora
1.4K views74 slides
ITIL準拠のツールでアジャイルな変革を実現 by
ITIL準拠のツールでアジャイルな変革を実現ITIL準拠のツールでアジャイルな変革を実現
ITIL準拠のツールでアジャイルな変革を実現UNIRITA Incorporated
1.1K views31 slides
2023フライウィール会社紹介_導入事例集.pdf by
2023フライウィール会社紹介_導入事例集.pdf2023フライウィール会社紹介_導入事例集.pdf
2023フライウィール会社紹介_導入事例集.pdfFLYWHEEL Inc.
156 views34 slides
市場動向並びに弊社製品の今後の展望について by
市場動向並びに弊社製品の今後の展望について市場動向並びに弊社製品の今後の展望について
市場動向並びに弊社製品の今後の展望についてKen Azuma
1K views40 slides

Similar to 如何に “データが壊れない” 管理画面を作るか - 管理画面開発の裏側(20)

市場動向並びに弊社製品の今後の展望について by Ken Azuma
市場動向並びに弊社製品の今後の展望について市場動向並びに弊社製品の今後の展望について
市場動向並びに弊社製品の今後の展望について
Ken Azuma709 views
「歩留り」で管理するストリーミング配信 2013 3-21 by Yoichiro Takehora
「歩留り」で管理するストリーミング配信 2013 3-21「歩留り」で管理するストリーミング配信 2013 3-21
「歩留り」で管理するストリーミング配信 2013 3-21
Yoichiro Takehora1.4K views
ITIL準拠のツールでアジャイルな変革を実現 by UNIRITA Incorporated
ITIL準拠のツールでアジャイルな変革を実現ITIL準拠のツールでアジャイルな変革を実現
ITIL準拠のツールでアジャイルな変革を実現
2023フライウィール会社紹介_導入事例集.pdf by FLYWHEEL Inc.
2023フライウィール会社紹介_導入事例集.pdf2023フライウィール会社紹介_導入事例集.pdf
2023フライウィール会社紹介_導入事例集.pdf
FLYWHEEL Inc.156 views
市場動向並びに弊社製品の今後の展望について by Ken Azuma
市場動向並びに弊社製品の今後の展望について市場動向並びに弊社製品の今後の展望について
市場動向並びに弊社製品の今後の展望について
Ken Azuma1K views
JPC2017 [A3] CSP as a Transformation Platform by MPN Japan
JPC2017 [A3] CSP as a Transformation PlatformJPC2017 [A3] CSP as a Transformation Platform
JPC2017 [A3] CSP as a Transformation Platform
MPN Japan982 views
Webパフォーマンス計測の勘所 2013-07-05 by Yoichiro Takehora
Webパフォーマンス計測の勘所   2013-07-05Webパフォーマンス計測の勘所   2013-07-05
Webパフォーマンス計測の勘所 2013-07-05
Yoichiro Takehora3.9K views
Digital marketing on AWS by Yuta Imai
Digital marketing on AWSDigital marketing on AWS
Digital marketing on AWS
Yuta Imai2.1K views
ERPのデータをフロントシステムでどう活かすか by Ryuji Enoki
ERPのデータをフロントシステムでどう活かすかERPのデータをフロントシステムでどう活かすか
ERPのデータをフロントシステムでどう活かすか
Ryuji Enoki1.9K views
マイクロソフトのIoT/AI戦略 by kashiwanoha-iot
マイクロソフトのIoT/AI戦略マイクロソフトのIoT/AI戦略
マイクロソフトのIoT/AI戦略
kashiwanoha-iot1.2K views
Salesforce Einstein - SaaS企業のAI戦略とテクノロジ - by Mitch Okamoto
Salesforce Einstein - SaaS企業のAI戦略とテクノロジ - Salesforce Einstein - SaaS企業のAI戦略とテクノロジ -
Salesforce Einstein - SaaS企業のAI戦略とテクノロジ -
Mitch Okamoto1.6K views
経営情報フォーラム2009発表資料 by Keiichi Hashimoto
経営情報フォーラム2009発表資料経営情報フォーラム2009発表資料
経営情報フォーラム2009発表資料
Keiichi Hashimoto629 views
経営情報フォーラム2009 by guest5ad17cf
経営情報フォーラム2009経営情報フォーラム2009
経営情報フォーラム2009
guest5ad17cf307 views
MSC 2010 T5-7 事例とデモで徹底解説! マイクロソフトのクラウド CRM by kumo2010
MSC 2010 T5-7 事例とデモで徹底解説! マイクロソフトのクラウド CRMMSC 2010 T5-7 事例とデモで徹底解説! マイクロソフトのクラウド CRM
MSC 2010 T5-7 事例とデモで徹底解説! マイクロソフトのクラウド CRM
kumo2010808 views
プライバシーを置き去りにしない!自動マスキングで開発をスムーズに DevOpsの高速化ツール『Accelario』 by 株式会社クライム
プライバシーを置き去りにしない!自動マスキングで開発をスムーズに DevOpsの高速化ツール『Accelario』プライバシーを置き去りにしない!自動マスキングで開発をスムーズに DevOpsの高速化ツール『Accelario』
プライバシーを置き去りにしない!自動マスキングで開発をスムーズに DevOpsの高速化ツール『Accelario』
20140926 azure dr_slideshare by Osamu Takazoe
20140926 azure dr_slideshare20140926 azure dr_slideshare
20140926 azure dr_slideshare
Osamu Takazoe1.1K views
Open Hybrid Cloudを検討すべき理由.pdf by Masahiko Umeno
Open Hybrid Cloudを検討すべき理由.pdfOpen Hybrid Cloudを検討すべき理由.pdf
Open Hybrid Cloudを検討すべき理由.pdf
Masahiko Umeno20 views
SIerとクラウドの付き合い方 by Yusuke Suzuki
SIerとクラウドの付き合い方SIerとクラウドの付き合い方
SIerとクラウドの付き合い方
Yusuke Suzuki2.6K views

Recently uploaded

3Dプリンタでロボット作るよ#1_黎明編 by
3Dプリンタでロボット作るよ#1_黎明編3Dプリンタでロボット作るよ#1_黎明編
3Dプリンタでロボット作るよ#1_黎明編Yoshihiro Shibata
20 views7 slides
how query cost affects search behavior translated in JP by
how query cost affects search behavior translated in JPhow query cost affects search behavior translated in JP
how query cost affects search behavior translated in JPTobioka Ken
9 views16 slides
onewedge_companyguide1 by
onewedge_companyguide1onewedge_companyguide1
onewedge_companyguide1ONEWEDGE1
5 views22 slides
SSH超入門 by
SSH超入門SSH超入門
SSH超入門Toru Miyahara
194 views21 slides
AIで始めるRustプログラミング #SolDevHub by
AIで始めるRustプログラミング #SolDevHubAIで始めるRustプログラミング #SolDevHub
AIで始めるRustプログラミング #SolDevHubK Kinzal
20 views25 slides
robotics42.pptx by
robotics42.pptxrobotics42.pptx
robotics42.pptxNatsutani Minoru
168 views18 slides

Recently uploaded(10)

3Dプリンタでロボット作るよ#1_黎明編 by Yoshihiro Shibata
3Dプリンタでロボット作るよ#1_黎明編3Dプリンタでロボット作るよ#1_黎明編
3Dプリンタでロボット作るよ#1_黎明編
how query cost affects search behavior translated in JP by Tobioka Ken
how query cost affects search behavior translated in JPhow query cost affects search behavior translated in JP
how query cost affects search behavior translated in JP
Tobioka Ken9 views
onewedge_companyguide1 by ONEWEDGE1
onewedge_companyguide1onewedge_companyguide1
onewedge_companyguide1
ONEWEDGE15 views
AIで始めるRustプログラミング #SolDevHub by K Kinzal
AIで始めるRustプログラミング #SolDevHubAIで始めるRustプログラミング #SolDevHub
AIで始めるRustプログラミング #SolDevHub
K Kinzal20 views
図解で理解するvetKD by ryoo toku
図解で理解するvetKD図解で理解するvetKD
図解で理解するvetKD
ryoo toku84 views
Najah Matsuo Self Introduction by NajahMatsuo
Najah Matsuo Self IntroductionNajah Matsuo Self Introduction
Najah Matsuo Self Introduction
NajahMatsuo7 views

如何に “データが壊れない” 管理画面を作るか - 管理画面開発の裏側