Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Data-Driven Service-Oriented Architecture & UI
Search
Altech
November 06, 2018
Design
3
1.6k
Data-Driven Service-Oriented Architecture & UI
Data Driven Developer Meetup #2
https://d3m.connpass.com/event/104858/
Altech
November 06, 2018
Tweet
Share
More Decks by Altech
See All by Altech
スキーマと型で拓く Full-Stack TypeScript / TSKaigi 2025
altech
3
2.9k
継続的なサービス発展を支えるアーキテクチャと技術 / Developers Summit 2023
altech
20
6.3k
Wantedly の技術とアーキテクチャ / 2023年度 新人研修
altech
2
690
技術を的に当てる技術について - GraphQL を入れ直した話 / 吉祥寺.pm28
altech
7
6.1k
マイクロサービス・アーキテクチャと共存する Ruby on Rails のアーキテクチャ的拡張 - その事例と可能性 / Kaigi on Rails 2021
altech
8
3.5k
ソフトウェア設計の Why & What & How / Wantedly 新卒研修
altech
0
12k
Ruby で作るデータ分析基盤
altech
9
2k
Object-Oriented Abstraction of Redis Sorted Set
altech
2
2.5k
Microservices on “Rails” - Wantedly のマイクロサービス事例
altech
8
5.8k
Other Decks in Design
See All in Design
今日から意識できるアクセシビリティ
fumiko
0
280
株式会社バクタム 会社説明資料
bactum
0
260
Tools for Design Engineers other than LLM in the LLM era
takanorip
1
370
CMS管理画面のアクセシビリティ
magi1125
8
2.3k
Goodpatch Tour💙 / We are hiring!
goodpatch
31
870k
Designing User Experience through Interaction Design
lycorptech_jp
PRO
0
280
Liquid Iron
mcduckyart
1
110
PF_濵村ひろみ_202503
maru_design78
0
200
portfolio_YumiYasuda
yum0418
0
300
組織で取り組むアクセシビリティのはじめ方
masakiohsumi
0
160
How to get a Tiger to Tulsa
mcduckyart
0
110
ビジネスアナリシスはビジネス”分析”じゃないよ!~システム人材が価値を生むための基盤スキルとしてのビジネスアナリシス~
bpstudy
0
570
Featured
See All Featured
Unsuck your backbone
ammeep
671
58k
Git: the NoSQL Database
bkeepers
PRO
431
65k
How to Ace a Technical Interview
jacobian
278
23k
Testing 201, or: Great Expectations
jmmastey
43
7.6k
StorybookのUI Testing Handbookを読んだ
zakiyama
30
5.9k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
30
2.2k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
47
9.6k
Code Review Best Practice
trishagee
69
19k
Practical Orchestrator
shlominoach
189
11k
The Language of Interfaces
destraynor
158
25k
Building Adaptive Systems
keathley
43
2.7k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
8
370
Transcript
©2018 Wantedly, Inc. Data-Driven Service-Oriented Architecture & UI In
Wantedly Visit. Data Driven Developer Meetup #2 6.Nov.2018 - Sohei Takeno
©2018 Wantedly, Inc. "CPVUNF Application Engineer. Wantedly, Inc. - Developed
Wantedly Visit 2 years (Growth Team). - Developing Wantedly People 1 years. Sohei Takeno Altech_2015 Altech
©2018 Wantedly, Inc. ͷςʔϚɿʮج൫ʯ
©2018 Wantedly, Inc. ج൫͍Ζ͍Ζ ©2018 Wantedly, Inc. ΩϟογϡɾγεςϜ σʔλऩूج൫ ػցֶशج൫
Ϣʔβʔ͚ͷΠϯλʔϑΣʔεʢUIʣ ΫϥΠΞϯτ͚ͷΠϯλʔϑΣʔεʢAPIʣ ΞϓϦέʔγϣϯɾαʔόʔͷ෦ΞʔΩςΫνϟ δϣϒɾγεςϜ
©2018 Wantedly, Inc. ج൫͍Ζ͍Ζ ©2018 Wantedly, Inc. ΩϟογϡɾγεςϜ σʔλऩूج൫ ػցֶशج൫
Ϣʔβʔ͚ͷΠϯλʔϑΣʔεʢUIʣ ΫϥΠΞϯτ͚ͷΠϯλʔϑΣʔεʢAPIʣ ΞϓϦέʔγϣϯɾαʔόʔͷ෦ΞʔΩςΫνϟ ͦͷαʔϏε͕ఏڙ͖͢ ՁΛ࠷େԽͤ͞ΔͨΊʹଘࡏ i.e. ଞͷαʔϏεͰ͑Δ αʔϏεͷੑ࣭ʹґଘ͠ͳ͍ ൚༻తͳج൫ δϣϒɾγεςϜ
©2018 Wantedly, Inc. ج൫͍Ζ͍Ζ ©2018 Wantedly, Inc. ΩϟογϡɾγεςϜ σʔλऩूج൫ ػցֶशج൫
Ϣʔβʔ͚ͷΠϯλʔϑΣʔεʢUIʣ ΫϥΠΞϯτ͚ͷΠϯλʔϑΣʔεʢAPIʣ ΞϓϦέʔγϣϯɾαʔόʔͷ෦ΞʔΩςΫνϟ ͦͷαʔϏε͕ఏڙ͖͢ ՁΛ࠷େԽͤ͞ΔͨΊʹଘࡏ i.e. ଞͷαʔϏεͰ͑Δ αʔϏεͷੑ࣭ʹґଘ͠ͳ͍ ൚༻తͳج൫ δϣϒɾγεςϜ ࠓ͓ʹѻΘΕΔ༰
©2018 Wantedly, Inc. ج൫͍Ζ͍Ζ ©2018 Wantedly, Inc. ΩϟογϡɾγεςϜ σʔλऩूج൫ ػցֶशج൫
Ϣʔβʔ͚ͷΠϯλʔϑΣʔεʢUIʣ ΫϥΠΞϯτ͚ͷΠϯλʔϑΣʔεʢAPIʣ ΞϓϦέʔγϣϯɾαʔόʔͷ෦ΞʔΩςΫνϟ ͦͷαʔϏε͕ఏڙ͖͢ ՁΛ࠷େԽͤ͞ΔͨΊʹଘࡏ i.e. ଞͷαʔϏεͰ͑Δ αʔϏεͷੑ࣭ʹґଘ͠ͳ͍ ൚༻తͳج൫ δϣϒɾγεςϜ ͜Ε͔Β͢༰ ࠓ͓ʹѻΘΕΔ༰
©2018 Wantedly, Inc. ͨΒ͘Λ໘ന͘ ༗໊اۀϕϯνϟʔɺελʔτΞοϓاۀɺؾʹͳΔΦ ϑΟεʹΛฉ͖ʹ͍͜͏ɻ ΩϥͬͱޫΔγΰτϓϩδΣΫτɺձࣾΛݟ͚ͭͯΤϯ τϦʔ͠·͠ΐ͏ɻΓ߹͍ͷͭͳ͕Γ͕͔ͬͯ҆৺Ͱ ͢ɻ
©2018 Wantedly, Inc. ͨΒ͘Λ໘ന͘ ༗໊اۀϕϯνϟʔɺελʔτΞοϓاۀɺؾʹͳΔΦ ϑΟεʹΛฉ͖ʹ͍͜͏ɻ ΩϥͬͱޫΔγΰτϓϩδΣΫτɺձࣾΛݟ͚ͭͯΤϯ τϦʔ͠·͠ΐ͏ɻΓ߹͍ͷͭͳ͕Γ͕͔ͬͯ҆৺Ͱ ͢ɻ ⾣
ਓͱձࣾͷϚονϯάɾαʔϏε
©2018 Wantedly, Inc. ձࣾΛ୳͢ը໘ ืूҰཡը໘ IUUQTXXXXBOUFEMZDPNQSPKFDUT ▶ ืूΛ௨ͯ͠ձࣾΛ୳͢ϝΠϯػೳ ▶ αʔϏεʮʯͰͷϚονϯά
ओʹ͜͜ͰߦΘΕΔ ▶ SNS Ͱͷ֦ࢄݕࡧྲྀೖͱݴͬͨ αʔϏεʮ֎ʯͷϚονϯάଘࡏ
©2018 Wantedly, Inc. ձࣾΛ୳͢ը໘ ืूҰཡը໘
©2018 Wantedly, Inc. ձࣾΛ୳͢ը໘ ืूҰཡը໘ ▶ ਪનɿϐϡΞʹσʔλͱΞϧΰϦζ ϜͰܾ·Δ ▶ ߜΓࠐΈɿαʔϏεఏڙऀ͕໌ࣔత
ʹ߲Λಋೖ͠ɺձ͕ࣾઃఆ͢Δ ਪન ߜࠐ
©2018 Wantedly, Inc. ձࣾΛ୳͢ը໘ ืूҰཡը໘ ▶ ਪનɿϐϡΞʹσʔλͱΞϧΰϦζ ϜͰܾ·Δ ▶ ߜΓࠐΈɿαʔϏεఏڙऀ͕໌ࣔత
ʹ߲Λಋೖ͠ɺձ͕ࣾઃఆ͢Δ ਪન ߜࠐ ݕࡧ ▶ ݕࡧɿߜΓࠐΈͭͭਪન
©2018 Wantedly, Inc. ձࣾΛ୳͢ը໘ ืूҰཡը໘ ▶ ਪનɿϐϡΞʹσʔλͱΞϧΰϦζ ϜͰܾ·Δ ▶ ߜΓࠐΈɿαʔϏεఏڙऀ͕໌ࣔత
ʹ߲Λಋೖ͠ɺձ͕ࣾઃఆ͢Δ ▶ ݕࡧɿߜΓࠐΈͭͭਪન ೳಈతʹ୳͢
©2018 Wantedly, Inc. ձࣾΛ୳͢ը໘ ืूҰཡը໘ ▶ ਪનɿϐϡΞʹσʔλͱΞϧΰϦζ ϜͰܾ·Δ ▶ ߜΓࠐΈɿαʔϏεఏڙऀ͕໌ࣔత
ʹ߲Λಋೖ͠ɺձ͕ࣾઃఆ͢Δ ▶ ݕࡧɿߜΓࠐΈͭͭਪન डಈతʹग़ձ͏
©2018 Wantedly, Inc. ձࣾΛ୳͢ը໘ ืूҰཡը໘ ▶ ਪનɿϐϡΞʹσʔλͱΞϧΰϦζ ϜͰܾ·Δ ▶ ߜΓࠐΈɿαʔϏεఏڙऀ͕໌ࣔత
ʹ߲Λಋೖ͠ɺձ͕ࣾઃఆ͢Δ ▶ ݕࡧɿߜΓࠐΈͭͭਪન डಈతʹग़ձ͏ /FUqJYͱ͔ͩͱશʹडಈతͳ69͚ͩͲɺ ࣄ୳͠͏গ͠ڧ͍ϞνϕʔγϣϯΛ ͍࣋ͬͯΔϢʔβʔ͍ΔͷͰɺೳಈతͳ ػೳଘࡏ͍ͯ͠Δɻ
©2018 Wantedly, Inc. ͪΖΜϞόΠϧΞϓϦ͋Δ ⾣ J04"QQd ⾣ "OESPJE"QQd
©2018 Wantedly, Inc. ⾣ 8BOUFEMZ7JTJUຊ࣭తʹϚονϯάɾαʔϏε ⾣ Ϛονϯάͷ࣭͕ɺαʔϏεͷ࣭ʹ݁͢Δ ⾣ ೳಈతʹ୳͢69ͱɺडಈతʹग़ձ͏69ͷࠞ ·ͱΊΔͱɿ
©2018 Wantedly, Inc. Ͳ͏ͬͨΒϚονϯά͕ ܧଓతʹվળ͞ΕΔ͔ʁ
©2018 Wantedly, Inc. ΞϓϦέʔγϣϯͷΞʔΩςΫνϟͱ"1*ʹண ©2018 Wantedly, Inc. ΩϟογϡɾγεςϜ σʔλऩूج൫ ػցֶशج൫
Ϣʔβʔ͚ͷΠϯλʔϑΣʔεʢUIʣ ΫϥΠΞϯτ͚ͷΠϯλʔϑΣʔεʢAPIʣ ΞϓϦέʔγϣϯɾαʔόʔͷ෦ΞʔΩςΫνϟ ͦͷαʔϏε͕ఏڙ͖͢ ՁΛ࠷େԽͤ͞ΔͨΊʹଘࡏ i.e. ଞͷαʔϏεͰ͑Δ αʔϏεͷੑ࣭ʹґଘ͠ͳ͍ ൚༻తͳج൫ δϣϒɾγεςϜ
©2018 Wantedly, Inc. ⾣ ਪનɿΞϓϦͱΣϒͰਪનͷ࣮͕ͪΐͬͱͣͭҧ͏ ⾣ ߜΓࠐΈɿϚϧνϓϥοτϑΥʔϜʹ·͕ͨΔ6*ͳͷͰɺ ɹɹɹɹɹ߲ΛՃͨ͠Γมߋ͢Δͷ͕ͱͯେม Θ͔Γ͍͕̎ͭ͋ͬͨ͢ σʔλΛ׆༻ͨ͠αʔϏεվળͷੜ࢈ੑ͕͍ͱɺ
ೳྗΛൃش͍ͨ͠ΤϯδχΞʹͱͬͯັྗతͰͳ͍ ͱ͍͏ϝλͳҙࣝ
©2018 Wantedly, Inc. Example ⾣ ਪનϩδοΫ3BJMTͷ.PEFM $POUSPMMFSͰ࣮ ⾣ Σϒ͚ͷ$POUSPMMFS࣮ͱɺΞϓϦ͚ͷ$POUSPMMFS࣮͕ผʑʹଘࡏ ⾣
ͦΕͧΕͷ$POUSPMMFSʹฒସ͑ͷॏཁϩδοΫ͕࣮͞Ε͍ͯΔ ⾣ ී௨ʹ3BJMTͰ࣮ͨ͠Β͜͏ͳΔͩΖ͏ͱ͍͏ߏ ਪનͷ ॱংΛ෦తʹม͑Δʹ྆ํͷमਖ਼͕ඞཁͳΜ͚ͩͲɺΣϒͷ ւ֎൛ͰಛఆͷॱংϩδοΫೖ͍ͬͯͳͯ͘ɺɺ
©2018 Wantedly, Inc. 3FBSDIJUFDUJOH .PEFM $POUSPMMFS $BDIF4ZTUFN &MBTUJDTFBSDI Before Web
Client Native Client $POUSPMMFS
©2018 Wantedly, Inc. 3FBSDIJUFDUJOH .PEFM $POUSPMMFS .PEFM $POUSPMMFS 3FDPNNFOE 4FSWJDF
&MBTUJDTFBSDI $BDIF4ZTUFN $BDIF4ZTUFN &MBTUJDTFBSDI ɾ4FSWJDFͷϩδοΫΛม͑Εશ͕ͯมΘΔ ɾຊ࣭తʹॏཁੑͷ͍BEIPDͳϩδοΫ͕ೖΓʹ͍͘ Before After Web Client Native Client $POUSPMMFS Web Client Native Client $POUSPMMFS
©2018 Wantedly, Inc. ⾣ Ҭల։ɾւ֎ల։ɾۀք֦େΛݟਾ͑ͨͱ͖ɺཧతͳ ॊೈੑͰαʔϏεΛมߋ͍͚ͯ͠Δ͔ʁ ߜΓࠐΈͷ Example ւ֎ల։࣌ɺಛఆͷࢢ͔ΒαʔϏεల։Λ࢝ΊΔͱ͖ɺҬͷߜ ΓࠐΈػೳෆཁɻ
Example ืू͕ݸ͔͠ͳ͍ͷʹߴͳݕࡧػೳΛఏڙͯ͠ɺϢʔβʔମ ݧԼ͕Δɻஈ֊తʹ։์͍͖͍ͯͨ͠ɻ
©2018 Wantedly, Inc. ⾣ Ҭల։ɾւ֎ల։ɾۀք֦େΛݟਾ͑ͨͱ͖ɺཧతͳ ॊೈੑͰαʔϏεΛมߋ͍͚ͯ͠Δ͔ʁ ߜΓࠐΈͷ Example ւ֎ల։࣌ɺಛఆͷࢢ͔ΒαʔϏεల։Λ࢝ΊΔͱ͖ɺҬͷߜ ΓࠐΈػೳෆཁɻ
Example ืू͕ݸ͔͠ͳ͍ͷʹߴͳݕࡧػೳΛఏڙͯ͠ɺϢʔβʔମ ݧԼ͕Δɻஈ֊తʹ։์͍͖͍ͯͨ͠ɻ ⾣ <ݱ࣮>K2VFSZ IUNMͰ࣮ͯ͠ɺJ04ΞϓϦͷΤϯδχΞʹ͓ئ͍ͯ͠ɺ "OESPJEΞϓϦͷΤϯδχΞʹ͓ئ͍ͯ͠ɺΞϓϦͷਁಁΛͬͯɻɻ
©2018 Wantedly, Inc. )5.-K2VFSZ J04"QQ "OESPJE"QQ .BTUFSEBUB 3FBSDIJUFDUJOH .BTUFSEBUB .BTUFSEBUB
Before
©2018 Wantedly, Inc. )5.-K2VFSZ J04"QQ "OESPJE"QQ 3FBDU J04"QQ "OESPJE"QQ $POUFOUT
4FSWJDF user_id country Contents JSON Contents JSON = ηΫγϣϯλΠτϧɺ ηΫγϣϯ͝ͱͷ߲ɺ߲͝ͱͷϥϕϧɾύϥϝʔλ .BTUFSEBUB .BTUFSEBUB 3FBSDIJUFDUJOH .BTUFSEBUB .BTUFSEBUB Before After
©2018 Wantedly, Inc. 3FBDU J04"QQ "OESPJE"QQ $POUFOUT 4FSWJDF user_id country
.BTUFSEBUB "GUFS3FBSDIJUFDUVSJOH $POUSPMMFS 3FDPNNFOE 4FSWJDF $BDIF4ZTUFN Contents JSON ids
©2018 Wantedly, Inc. 3FBDU J04"QQ "OESPJE"QQ $POUFOUT 4FSWJDF user_id country
.BTUFSEBUB "GUFS3FBSDIJUFDUVSJOH $POUSPMMFS 3FDPNNFOE 4FSWJDF $BDIF4ZTUFN Contents JSON ids ΞϧΰϦζϜΛվળ͢Δ ͜ͱͰαʔϏεશମͷ࣭ ͕վળ͢Δߏ
©2018 Wantedly, Inc. ࠶ɿͲ͏ͬͨΒϚονϯά͕ ܧଓతʹվળ͞ΕΔ͔ʁ
©2018 Wantedly, Inc. ج൫͍Ζ͍Ζ ©2018 Wantedly, Inc. ΩϟογϡɾγεςϜ σʔλऩूج൫ ػցֶशج൫
Ϣʔβʔ͚ͷΠϯλʔϑΣʔεʢUIʣ ΫϥΠΞϯτ͚ͷΠϯλʔϑΣʔεʢAPIʣ ΞϓϦέʔγϣϯɾαʔόʔͷ෦ΞʔΩςΫνϟ ͦͷαʔϏε͕ఏڙ͖͢ ՁΛ࠷େԽͤ͞ΔͨΊʹଘࡏ i.e. ଞͷαʔϏεͰ͑Δ αʔϏεͷੑ࣭ʹґଘ͠ͳ͍ ൚༻తͳج൫ δϣϒɾγεςϜ
©2018 Wantedly, Inc. ©2018 Wantedly, Inc. ΩϟογϡɾγεςϜ σʔλऩूج൫ ػցֶशج൫ Ϣʔβʔ͚ͷΠϯλʔϑΣʔεʢUIʣ
ΫϥΠΞϯτ͚ͷΠϯλʔϑΣʔεʢAPIʣ ΞϓϦέʔγϣϯɾαʔόʔͷ෦ΞʔΩςΫνϟ ͦͷαʔϏε͕ఏڙ͖͢ ՁΛ࠷େԽͤ͞ΔͨΊʹଘࡏ i.e. ଞͷαʔϏεͰ͑Δ αʔϏεͷੑ࣭ʹґଘ͠ͳ͍ ൚༻తͳج൫ δϣϒɾγεςϜ ج൫͍Ζ͍Ζ
©2018 Wantedly, Inc. ϢʔβʔɾΠϯλʔϑΣʔεʹண
©2018 Wantedly, Inc. ⾣ ҬηΫγϣϯ͕͋Δ͚Ͳ۩ମతʹ Ͳ͏͍͏ཻͰ͋Δͷ͔ؾ͔ͮͳ͍ ⾣ ৬छηΫγϣϯ͕͋Δ͚Ͳʢಉ্ʣ ⾣ ݕࡧͱ͍͏ϙςϯγϟϧͷ͋Δػೳ͕
ೖͬͯΔ͚ͲԼͷํʹ͋ΔͷͰվળͯ͠ ΠϯύΫτബ͍ ⾣ ͳͲͳͲɾɾɾ 2લͷ Wantedly Visit ͷߜΓࠐΈػೳ
©2018 Wantedly, Inc. ϩδοΫͰվળ͢ΔલఏͰ6*Λઃܭ͢Δ * ΩʔϫʔυਪનΛ্෦ʹஔ * ݕࡧͱߜΓࠐΈΛ౷߹ͨ͠ςΩετϘοΫεΛஔ͢Δ *
ϑΟϧλ߲ɺҰ෦͚ͩݟͤͯ expand Մೳʹ͢Δ * Hidden ঢ়ଶͰԿΛݟΔ͔Ϣʔβʔ͝ͱʹ API Ͱ੍ޚ * ηΫγϣϯࣗମಈతʹม͑ΒΕΔ༨Λ͢
©2018 Wantedly, Inc. ϩδοΫͰվળ͢ΔલఏͰ6*Λઃܭ͢Δ * ΩʔϫʔυਪનΛ্෦ʹஔ * ݕࡧͱߜΓࠐΈΛ౷߹ͨ͠ςΩετϘοΫεΛஔ͢Δ *
ϑΟϧλ߲ɺҰ෦͚ͩݟͤͯ expand Մೳʹ͢Δ * Hidden ঢ়ଶͰԿΛݟΔ͔Ϣʔβʔ͝ͱʹ API Ͱ੍ޚ * ηΫγϣϯࣗମಈతʹม͑ΒΕΔ༨Λ͢
©2018 Wantedly, Inc. ϩδοΫͰվળ͢Δલఏͷ UIʢڀۃମʣ: netflix.com Ͳ͏͍͏ηΫγϣϯΛग़͔͢ʁ ͦͷதͰϢʔβʔͰΉͷͳʹ͔ʁ /FUqJYͷը໘ʜ
©2018 Wantedly, Inc. ⾣ நԽ͞Εͨઃܭʹجͮ͘͜ͱͰɺ ౷Ұతͳ੍ޚΛՄೳʹ͢Δ ˔ ౷߹͞ΕͨςΩετϘοΫεΛ࠷༏ઌͰఏࣔ ˔ ΩʔϫʔυɾαδΣετϑΝʔετɾϏϡʔ
˔ &YQBOEͱ)JEEFOɺηΫγϣϯͷಈత੍ޚ ΞϓϦͰ͋ͬͯઃܭࢥͱ༏ઌڞ௨ʹ͢Δ
©2018 Wantedly, Inc. ج൫͍Ζ͍Ζ ©2018 Wantedly, Inc. ΩϟογϡɾγεςϜ σʔλऩूج൫ ػցֶशج൫
Ϣʔβʔ͚ͷΠϯλʔϑΣʔεʢUIʣ ΫϥΠΞϯτ͚ͷΠϯλʔϑΣʔεʢAPIʣ ΞϓϦέʔγϣϯɾαʔόʔͷ෦ΞʔΩςΫνϟ ͦͷαʔϏε͕ఏڙ͖͢ ՁΛ࠷େԽͤ͞ΔͨΊʹଘࡏ i.e. ଞͷαʔϏεͰ͑Δ αʔϏεͷੑ࣭ʹґଘ͠ͳ͍ ൚༻తͳج൫ δϣϒɾγεςϜ ͨ͠༰
©2018 Wantedly, Inc. ΞϓϦέʔγϣϯɾϨΠϠʔͷ ઃܭ%BUB%SJWFOͳ ڧ͍αʔϏεΛ࡞Δ্Ͱେࣄ ·ͱΊ