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
Wantedly の技術とアーキテクチャ / 2023年度 新人研修
Search
Altech
April 20, 2022
Programming
2
500
Wantedly の技術とアーキテクチャ / 2023年度 新人研修
2023年度 Wantedly 新人研修で使用した資料です。
Altech
April 20, 2022
Tweet
Share
More Decks by Altech
See All by Altech
継続的なサービス発展を支えるアーキテクチャと技術 / Developers Summit 2023
altech
20
5.4k
技術を的に当てる技術について - GraphQL を入れ直した話 / 吉祥寺.pm28
altech
7
5.5k
マイクロサービス・アーキテクチャと共存する Ruby on Rails のアーキテクチャ的拡張 - その事例と可能性 / Kaigi on Rails 2021
altech
8
2.8k
ソフトウェア設計の Why & What & How / Wantedly 新卒研修
altech
0
11k
Data-Driven Service-Oriented Architecture & UI
altech
3
1.4k
Ruby で作るデータ分析基盤
altech
9
1.7k
Object-Oriented Abstraction of Redis Sorted Set
altech
2
2.2k
Microservices on “Rails” - Wantedly のマイクロサービス事例
altech
8
5.3k
Rails 5 で作る RESTful API 速習会 / Rails RESTful API
altech
5
950
Other Decks in Programming
See All in Programming
App Router への移行は「改善」となり得るのか?/ Can migration to App Router be an improvement
takefumiyoshii
1
140
オブジェクト指向コードレビューの新しいアプローチ
akkie76
3
1.5k
Deep Dive 大規模システムアーキテクチャ/開発組織エンジニアリング / Deep Dive Large-Scale System Architecture, Development Organization Engineering
nrslib
15
2.9k
品質とスピードを両立: TypeScriptの柔軟な型システムをバックエンドで活用する
kosui
5
1.1k
Laravel OpenAPIによる"辛くない"スキーマ駆動開発
kentaroutakeda
2
2.1k
イベントストーミングによるオブジェクトモデリング・オブジェクト指向プログラミングの適用・開発プロセスの変遷・アーキテクチャの変革 / Object modeling with Event Storming.
nrslib
12
3.2k
WebComponentsで フレームワークを1ページに共存させる
webuilder240
0
150
ファイル先頭の use の意味、説明できますか? 〜PHP の namespace と autoloading の関係を正しく理解しよう〜 / namespace and autoloading in php
okashoi
2
470
Deno に Web 標準 API を実装する / Implementing Web Standard API to Deno
petamoriken
0
350
MySQL のインデックスの種類をおさらいしよう! / overviewing indexes in MySQL
okashoi
0
170
CSRF対策のやり方、そろそろアップデートしませんか / Update your knowledge of CSRF protection
hiro_y
25
15k
どうしてこうなった命名集 ~🔥編~ / OOC 2024 LT
pictiny
4
2.9k
Featured
See All Featured
Designing for Performance
lara
601
67k
The Illustrated Children's Guide to Kubernetes
chrisshort
28
46k
Agile that works and the tools we love
rasmusluckow
323
20k
Facilitating Awesome Meetings
lara
39
5.5k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
272
12k
StorybookのUI Testing Handbookを読んだ
zakiyama
10
4.5k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
153
14k
Product Roadmaps are Hard
iamctodd
43
9.6k
Building a Scalable Design System with Sketch
lauravandoore
455
32k
10 Git Anti Patterns You Should be Aware of
lemiorhan
644
57k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
225
51k
Making the Leap to Tech Lead
cromwellryan
123
8.4k
Transcript
©2021 Wantedly, Inc. 8BOUFEMZͷٕज़ͱΞʔΩςΫνϟ 8BOUFEMZ৽ਓݚमฏ
©2021 Wantedly, Inc. 8BOUFEMZ&OHJOFFSJOH)BOECPPL
©2021 Wantedly, Inc. ಥવͰ͕͢Ͱ͢💡
©2021 Wantedly, Inc. ϖʔδλΠτϧ ϖʔδαϒλΠτϧ ग़యɿhttps://muuseo.com/square/articles/28 ࣭ɿ͜ΕԿͰ͠ΐ͏͔ʁ
©2021 Wantedly, Inc. ϖʔδλΠτϧ ϖʔδαϒλΠτϧ ग़యɿhttps://muuseo.com/square/articles/28 ࣭ɿ͜ΕԿͰ͠ΐ͏͔ʁ
©2021 Wantedly, Inc. ϖʔδλΠτϧ ϖʔδαϒλΠτϧ ग़యɿhttps://muuseo.com/square/articles/28 ࣌ܭʢϓϩμΫτʣ
©2021 Wantedly, Inc. ϖʔδλΠτϧ ϖʔδαϒλΠτϧ ग़యɿhttps://muuseo.com/square/articles/28 ϓϩμΫτΛߏ͢Δίϯϙʔωϯτ܈
©2021 Wantedly, Inc. ϓϩμΫτͱίϯϙʔωϯτͷؒʹ͋ΔΪϟοϓ ݸผͷίϯϙʔωϯτ͚ͩΛݟ͍ͯͯཧղͰ͖Δ͜ͱগͳ͍ → ίϯϙʔωϯτ͕ϓϩμΫτՁΛͲ͏ߏ͍ͯ͠Δ͔͕େࣄ ɾͨͱ͑ࣃंͰ͋ΕɺͦΕ͕ԿͱͲ͏טΈ߹͍ͬͯΔͷ͔ ɾͦΕ͕গ͠େ͖ͳ෦ͱͯ͠ͲͷΑ͏ʹʮػೳʯ͍ͯ͠Δͷ͔ ɾͦΕΒͷػೳ͕શମͱͯ͠ͲͷΑ͏ͳʮՁʯΛੜΜͰ͍Δͷ͔
©2021 Wantedly, Inc.
©2021 Wantedly, Inc. ϖʔδλΠτϧ ϖʔδαϒλΠτϧ
©2021 Wantedly, Inc. ຊ
©2021 Wantedly, Inc. ͜ͷݚमͷత 1. ΤϯδχΞͷΦϯϘʔσΟϯά 2. Wantedly Ͱఆ͍ٛͯ͠ΔΞʔΩςΫνϟͱͦͷؔ࿈ٕज़ͷҐஔ͚ͮΛΔ 3.
ʑͷࣄ͕ͲͷΑ͏ʹશମʹͭͳ͕͍ͬͯΔͷ͔Λཧղ͘͢͢͠Δ
©2021 Wantedly, Inc. Ϣʔβʔʹఏڙ͍ͯ͠ΔαʔϏε αʔϏεͱͯ͠େ͖͘ Visit, Engagement, People ͷ3͕ͭଘࡏ ΞϓϦϓϥοτϑΥʔϜͱͯ͠
Web, iOS, Android ͷ3ͭʹల։ Engagement Web ϓϥοτϑΥʔϜͷΈʹల։ αʔϏεΛ ϓϥοτϑΥʔϜʹ ల։͢Δ ɾɾͱ͍͏ؔੑ
©2021 Wantedly, Inc. ιϑτΣΞͱͯ͠Ͳ͏ݟཱͯΔ͔ جຊతͳߟ͑ํɿ ιϑτΣΞίϯϙʔωϯτʢ෦ʣͷू߹ମͱͯ͠࡞ΒΕΔ ͜ΕΒ֊తʹߏ͞ΕΔ ্Ґͷ֊Λཧղ͢Δ͜ͱͰɺԼҐͷ֊Λཧղ͢Δ͜ͱʢͻͱ·ͣʣઌૹΓͰ͖Δ ࠓͷযɿ࠷্Ґͷ֊ͰͲͷΑ͏ͳߏʹͳ͍ͬͯΔ͔ ͦͷߏͲͷΑ͏ʹܾ·͍ͬͯΔ͔
ٕज़త੍ɺ৫త੍ αʔϏεՁͷ࣋ଓతͳఏڙͱ֦େʢతʣ
©2021 Wantedly, Inc. ࠷্Ґͷߏ 👉 AppsɾSystemɾData ͷͦΕͧΕΛݟ͍ͯ͘
©2021 Wantedly, Inc. "QQT ·ͣίί "QQMJDBUJPOT
©2021 Wantedly, Inc. جຊతͳಛੑ Ϣʔβʔ͕తʹ৮ΕΔιϑτΣΞ ϢʔβʔͷखݩͷσόΠεʹ࣮ߦίʔυ͕సૹ͞Εͯಈ͘ ΞϓϦΛಈ͔ͨ͢ΊͷϓϥοτϑΥʔϜ͍͔ͭ͋͘Δ զʑ Web(ϒϥβ)ɺiOSɺAndroid ͷ
3 ͭͷϓϥοτϑΥʔϜͰͦΕͧΕΞϓϦΛఏڙ͍ͯ͠Δ ͍͍ͩͨ͜ΕͰ΄΅શͯΧόʔͰ͖ΔͨΊ
©2021 Wantedly, Inc. ͍ͭ͘ͷίϯϙʔωϯτ͕͋Δ͔ʁ ·ͣίʔυϕʔεʢϦϙδτϦʣͰ͑ͯΈΑ͏ Web ΞϓϦ wantedly-frontendɿݸਓϢʔβʔ͚ɺwww.wantedly.com wantedly-admin-frontendɿاۀϢʔβʔ͚ɺadmin.wantedly.com wantedlyɿWeb
ΞϓϦʴόοΫΤϯυγεςϜͷ྆ํΛؚΉ Railsɺwww.wantedly.com perkɿैۀһ͚ɺWeb ΞϓϦͱόοΫΤϯυγεςϜ͕౷߹͞Εͨ Railsɺperk.wantedly.com iOSΞϓϦɺAndroidΞϓϦʢϞόΠϧΞϓϦʣ visit-iosɿVisit ΞϓϦͷ iOS ϓϥοτϑΥʔϜ͚࣮ app-androidɿVisit ΞϓϦͷ Android ϓϥοτϑΥʔϜ͚࣮ yashima-iosɿPeople ΞϓϦͷ iOS ϓϥοτϑΥʔϜ͚࣮ yashima-androidɿPeople ΞϓϦͷ Android ϓϥοτϑΥʔϜ͚࣮ Web ΞϓϦ͜ΕΒʹҠߦ͍ͯ͘͠ํੑ
©2021 Wantedly, Inc. ϞόΠϧΞϓϦݸʁݸʁ ΞϓϦͷछྨ2ݸʢVisit ͱ Peopleʣ ҰํͰίϯϙʔωϯτʢίʔυϕʔεʣ iOS ͱ
Android ͰผͳͷͰ4ݸ ʢͳͥผͳͷ͔ʁʣ
©2021 Wantedly, Inc. ࠷্Ґͷ֊ͷίϯϙʔωϯτ ҙͷίϯϙʔωϯτͷɺଞ͔ΒಠཱʹσϓϩΠ͕Մೳͳͷ → ࣮ߦٕज़ҟͳΓಘΔɾɾɾJavaScript, Swift, Kotlin, Browser,
... → σϓϩΠઓུɾϦϦʔεઓུҟͳΓಘΔ ྫɿiOS ϓϥοτϑΥʔϜͷ Wantedly Visit ΞϓϦɺApp Store ʹਃΛߦ͍ɺਃ͕௨ͬͯϦϦʔε͞Ε Δ͜ͱͰϢʔβʔͷʹݟ͑ΔվળɾػೳՃ͕ߦΘΕΔɻίʔυͷߋ৽ஈ֊తʹߦΘΕΔɻ ྫɿWeb ϓϥοτϑΥʔϜͷΞϓϦɺΞΫηεͨ͠ॠؒʹ࠷৽ͷίʔυ͕μϯϩʔυ͞Ε࣮ͯߦ͞ΕΔɻ Q. ͖ͬ͞ίʔυϕʔεΛ͚͑ͨͲʁ զʑ Git ͱ GitHub Λ͍ͬͯΔͷͰɺίϯϙʔωϯτ͝ͱʹϦϙδτϦΛ͚ͯ։ൃϑϩʔʹམͱ͍ͯ͠Δ
©2021 Wantedly, Inc. "QQT Ҏ্Λ·ͱΊͨͷ Q. ͍ͭ͘ͷίϯϙʔωϯτ͕͋Δ͔ʁ A. ݸʢ1ܻΦʔμʔʣ
©2021 Wantedly, Inc. ίϥϜɿΞϓϦɾϓϥοτϑΥʔϜͱٕज़ ࣮ߦ͢Δج൫͕ҟͳΔͷͰ͋Εɺ࠷దͳ࡞ΓํҟͳΔ → ϓϩάϥϛϯάݴޠ͕ҟͳͬͨΓɺσϓϩΠઓུ͕มΘͬͨΓ͢Δ → ίϯϙʔωϯτͱͯ͠ผͷͷͱͯ͠࡞Δ͜ͱʹͳΔ ҰํͰɺ͜ΕΛղܾ͢ΔԾԽɾநԽͱ͍͏ํੑৗʹଘࡏ͢Δ
ͨͱ͑ Flutter ͷΑ͏ͳٕज़Λ͑ Apps ͷίϯϙʔωϯτݮΒͤΔ͔ʁ ࣮ࡍɺWeb ϒϥβͱ͍͏͋ΔछͷநԽͷٕज़ʹΑͬͯ Mac OS ͱ Windows OS ͰผʑͷΞϓϦΛ࡞Δ ඞཁ͕ͳ͘ͳ͍ͬͯΔͷ͕ݱࡏɻ ʮ൚༻ܕͷιϦϡʔγϣϯʯͱʮಛԽܕͷιϦϡʔγϣϯʯͷ૬Ⴅ͕ɺͲ ͷΑ͏ʹҠΓมΘ͍͔ٕͬͯ͘ज़ͷྲྀΕΛཧղ͢ΔҰͭͷΓޱʹͳΔ
©2021 Wantedly, Inc. ҰྫɿΣϒͷ߹ V8 ͱ Blink ͷΞʔΩςΫνϟ - PPLαϚʔεΫʔϧ2021
- nhiroki
©2021 Wantedly, Inc. ಄ͷମૢɿखݩͷσόΠεͰಈ͘ΞϓϦɺෆม͔ʁ ΞϓϦඞͣ͠ϢʔβʔͷखݩͷσόΠεͰಈ͔ͳͯ͘ྑ͍ͷͰʁ ͨͱ͑ɺαʔόʔଆͰ UI ͷඳը·Ͱߦ͍ɺΫϥΠΞϯτͦΕΛө૾ͱ ͯ͠ྲྀ͚ͩ͢ɺͱ͍͏ΞʔΩςΫνϟཧతʹߟ͑Δ͜ͱͰ͖ͦ͏ ͔͠͠ɺݱ࣌ͰɺϢʔβʔͱͷΠϯλϥΫγϣϯΛ͏ΞϓϦέʔ
γϣϯʹ͓͍ͯը໘ͷඳըϢʔβʔɾΠϯλϥΫγϣϯͷॲཧͱ͍ͬ ͨܭࢉϢʔβʔͷखݩͷσόΠεͰߦ͏ͷ͕ओྲྀͰ͋Δ Q. ͜ΕΛ੍͍ͯ͠Δٕज़తͳཁҼͱͯ͠Կ͕ߟ͑ΒΕΔͩΖ͏ʁ Q. ͦΕղܾ͢ΔՄೳੑ͕͋ΔͩΖ͏͔ʁ
©2021 Wantedly, Inc. ಄ͷମૢɿ$IBU(15(6*Λஔ͖͑Δ͔ʁ ͜͜·Ͱѻ͖ͬͯͨΞϓϦશͯɺGUI ͱ͍͏ʮࢹ֮ʯΛϕʔεͱͨ͠ UI ύϥμΠϜ ChatGPT
ͷΑ͏ͳʮݴޠʯΛϕʔεͱͨ͠ UI GUI Λஔ͖͑ΔͩΖ͏ ͔ʁ ͋Δ͍ GUI ͷརͱԿͩΖ͏͔ʁ ʰΦϒδΣΫτࢦ UI σβΠϯ - ͍͍͢ιϑτΣΞͷݪཧʯ- ্ֶ
©2021 Wantedly, Inc. 4ZTUFN Ԟʹ͢͢Ή
©2021 Wantedly, Inc. جຊతͳಛੑ Ϣʔβʔ͕తʹ৮Εͳ͍ιϑτΣΞ զʑ͕Ϋϥυʹ͍࣋ͬͯΔΫϥελʔԽ͞Εͨܭࢉػͷ্Ͱ࣮ߦ͞ΕΔ αʔϏεͷ࣮ߦʹඞཁͳத֩తͳσʔλΛ͍࣋ͬͯΔ ɾɾɾΞϓϦσʔλΛ͍࣋ͬͯΔ͔ʁ σʔλσʔλϕʔεݕࡧΤϯδϯͱ͍ͬͨϛυϧΣΞʹอଘ͍ͯ͠Δ
͔ͦ͜ΒऔΓग़ͨ͠σʔλΛҰ؏ͨ͠υϝΠϯϞσϧͷݩʹॲཧͯ͠ API ͱ ͯ͠ఏڙ͢Δ
©2021 Wantedly, Inc. ͍ͭ͘ͷίϯϙʔωϯτ͕͋Δ͔ʁ ࠷্Ґͷίϯϙʔωϯτͷఆٛʲ࠶ܝʳ ίϯϙʔωϯτͷ͏ͪɺଞ͔ΒಠཱʹσϓϩΠ͕Մೳͳͷ ͦΕͧΕͷ࣮ߦٕज़ʹجͮ͘ → ͜Ε͕ϚΠΫϩαʔϏεͱݺΕͨΓ͍ͯ͠Δ Q.
͍ͭ͘ͷίϯϙʔωϯτ͕͋Δ͔ʁ A. ेݸʢ2ܻΦʔμʔʣ
©2021 Wantedly, Inc. ٕज़ ࣮ߦج൫ɿKubernetes, Docker, … ϓϩάϥϛϯάݴޠɿGo, Ruby, Python,
…
©2021 Wantedly, Inc. ϥΠϒϥϦίϯϙʔωϯτ͔ʁ ιϑτΣΞͷ෦Ͱ͋Δͱ͍͏ૉͳҙຯͰ Yes ࠷্ҐͷίϯϙʔωϯτʹͳΓ͏Δʁ ϥΠϒϥϦͲͷΑ͏ʹϢʔβʔʹಧͩ͘Ζ͏͔ʁ ߦͬͨมߋΛίϛοτ͠ɺόʔδϣϯͰλά͚͢Δ ͦΕΛʮ͍ͬͯΔଆʯͷιϑτΣΞɾίϯϙʔωϯτ͕औΓࠐΜͰϦϦʔε͢Δ
࠷্Ґͷίϯϙʔωϯτͱͯ͠ No ଞͷίϯϙʔωϯτ͔ΒಠཱʹσϓϩΠͰ͖ͳ͍ͨΊ
©2021 Wantedly, Inc. ίϥϜɿϚΠΫϩαʔϏεɾΞʔΩςΫνϟʹ͍ͭͯ ࣮ଶͱͯ͠ϝΠϯͷ Rails ͷൺ݁ߏେ͖͍ 👉 ͦΕࣗମͰͳ͍ ϚΠΫϩαʔϏεɾΞʔΩςΫνϟΛ࠾༻͍ͯ͠Δͷɺʮඞཁͳͱ͖ʹ͚ͯ࡞ΕΔΑ͏ʹ͢ΔʯͨΊͰ͋ͬ
ͯʮ͋ΒͷΛ͚ͯ࡞ΔʯͨΊͰͳ͍ͨΊ γεςϜͷׂͷํʁ υϝΠϯʢҙຯతͳ·ͱ·ΓʣͰׂ͢Δ ݁ߏ͘͠ɺϓϩμΫτՁͷಎྗ͕ཁٻ͞ΕΔ ٕज़తͳಈػͰׂ͢Δ͜ͱ͋Δ͕ɺͦͷ߹Λߟ͑ͯԿΒ͔ͷҙຯతͳ·ͱ·ΓΛఆٛ͢Δ
©2021 Wantedly, Inc. ίϯϙʔωϯτಉ࢜ͷ࿈ܞ ҟͳΔٕज़Ͱ࣮͞ΕͨίϯϙʔωϯτΛڠௐͯ͠ಈ͔ͨ͢Ίʹ API ͕ॏཁ ΠϯλʔϑΣΠε͕εΩʔϚͱͯ͠දݱ͞Εͯɺ࣮Ͱܕ͕อূ͞ΕΔ͜ͱ Protocol BuffersɿεΩʔϚͷهड़ʹ͏
σʔλΛόΠφϦͰදݱ͢ΔγϦΞϥΠθʔγϣϯɾϑΥʔϚοτͰ͋Δ ཁ͢ΔʹʮͳʹΛૹΔ͔ʯͷͨΊͷ͏ٕज़ gRPC, Cloud Pub/Subɿඪ४Ͱ༻ҙ͍ͯ͠Δ௨৴ٕज़ ཁ͢ΔʹʮͲ͏ૹΔ͔ʯͷͨΊͷ͏ٕज़
©2021 Wantedly, Inc. ΦϯϥΠϯॲཧͱΦϑϥΠϯॲཧ γεςϜʹ͓͚ΔॲཧͷओͳτϦΨʔγεςϜ֎෦͔Βͷ API ίʔϧ ৭ʑͳઢҾ͖Մೳ͕ͩɺΦϯϥΠϯॲཧͱݺΕΔ͜ͱ͕͋Δ ҰํͰɺͦΕҎ֎ͷτϦΨʔʹΑͬͯॲཧ͕࢝·Δ͜ͱ͕͋Δ ΦϑϥΠϯॲཧʢόονॲཧʣͱݺΕΔ
ΦϯϥΠϯॲཧͱΦϑϥΠϯॲཧͱ͍͏ݴ༿Ͱগ͠ݟ௨͕͠ྑ͘ͳΔ Wantedly ʹ͓͚Δόονॲཧ Kubernetes ͷ CronJob ػೳͰδϣϒͱͯ͠ఆظ࣮ߦ͕Մೳ Argo Workflow Ͱδϣϒಉ࢜ͷ࿈ܞ͕ՄೳʢδϣϒAΛॲཧͨ͠ޙʹδϣϒBΛॲཧ͍ͨ͠ʣ ίϯϙʔωϯτʢϚΠΫϩαʔϏεʣΛ·͍ͨͩ࿈ܞͰ͖Δ
©2021 Wantedly, Inc. 4ZTUFN Ҏ্Λ·ͱΊͨͷ γεςϜج൫पΓผ్ݚम͕͋Γ·͢
©2021 Wantedly, Inc. γεςϜͱΞϓϦͷ࿈ܞ વͳ͕ΒɺΞϓϦͱγεςϜ͕࿈ܞ͢Δඞཁ͕͋Δ ࠶ܝɿҎԼΞϓϦͱγεςϜͷؔʹͯ·Δ ҟͳΔٕज़Ͱ࣮͞ΕͨίϯϙʔωϯτΛ্ख͘ڠௐͯ͠ಈ͔ͨ͢Ίʹ API ͕ॏཁ ۩ମతʹɺAPI
͕εΩʔϚʹΑͬͯදݱ͞Εͯɺ࣮ʹΑͬͯͦΕ͕อূ͞ΕΔ͜ͱ͕ॏཁ → γεςϜͱΞϓϦͷؒͷ௨৴ͰεΩʔϚٕज़͕ඞཁ
©2021 Wantedly, Inc. ୯ҰͷγεςϜͱଟͷΞϓϦ Wantedly ͱ͍͏αʔϏεͷγεςϜ͔ΒҙͷΞϓϦ͕࡞ΒΕΔ ʮγεςϜͷ͜ͷ෦͜ͷΞϓϦ͔Β͔͠ݺΕͳ͍ʯͱݴͬͨҰൠੑͷ͋Δෆม݅ͳ͍ γεςϜ͕ϚΠΫϩαʔϏεʹׂ͞Ε͍ͯΔ͜ͱɺ͋͘·ͰγεςϜ෦ͷΞδϦςΟͷ্͕త όοΫΤϯυ߹ͷׂʢͲͷΑ͏ͳϚΠΫϩαʔϏε͕ଘࡏ͢Δ͔ʣΛΞϓϦ͕Δඞཁͳ͍ ͜ͷͨΊɺΞϓϦʹରͯ͠
API Λఏڙ͢ΔήʔτΣΠɾαʔόʔΛஔ͖ ҰͭͷγεςϜͱͯ͠ݟ͍ͤͯΔ ͦ͜ͰɺGraphQL Λ͏͜ͱͰใઃܭʹج͍ͮͯϞσϧԽ͞Εͨ Φ ϒδΣΫτΛ API ͰΞϓϦ͕ॊೈʹσʔλΛऔಘͰ͖ΔΑ͏ʹ͍ͯ͠Δ Protocol Buffers ͷεΩʔϚ͕͢Ͱʹ͋ΔͷͰɺ͜ͷఆٛΛར༻ͯ͠ GraphQL API Λࣗಈੜ͍ͯ͠Δ ʢ͜Ε࠷ۙ࢝ΊͨͷͰɺ࣮ࡍʹ·ͩ GraphQL Λ௨͍ͯ͠ͳ͍෦ଟ͍ʣ
©2021 Wantedly, Inc. ମݧઃܭͰଊ͑ΔγεςϜڥք ද ࠎ֨ ߏ ཁ݅ ઓུ Ϣʔβʔମݧઃܭͷ֊
ϏδϡΞϧσβΠϯ ϨΠΞτ φϏήʔγϣϯσβΠϯ ใઃܭ ίϯςϯπ ػೳ ɾใΛγεςϜ͔ΒҾ͖ग़ͤΔඞཁ Ұཡը໘ʹใ"ͷதΛ Ͳ͜·Ͱදࣔ͠Α͏ʁ εϚϗͷ߹ݮΒ͢ʁ 69σβΠϯͷஈ֊Ϟσϧ ΞϓϦ γεςϜ ΞʔΩςΫνϟͷ֊ ΞʔΩςΫνϟʹద༻
©2021 Wantedly, Inc. "QQ4ZTUFN ࣍ͷ෦ʹ֘ ͜ͷ͋ͨΓ
©2021 Wantedly, Inc. ίϥϜɿܭࢉͲ͜Ͱ࣮ߦ͞ΕΔ͔ʁ ΞϓϦɿओʹ UI ͷඳըঢ়ଶͷมߋɺωοτϫʔΫ௨৴ͱ͍ͬͨܭࢉ͕ ʮݸʑͷϢʔβʔͷσόΠε্ͰʯߦΘΕΔ γεςϜɿσʔλΛॴ࣋ͯ͠Ұ؏ͨ͠υϝΠϯϞσϧͷݩʹ
ʮզʑͷΫϥυɾϚγϯ্Ͱʯॲཧ͢Δ API Λఏڙ͢Δ 👉 ͭ·ΓΞϓϦͱରরతʹશϢʔβʔ͕ܭࢉϦιʔεΛڞ༗͍ͯ͠Δ ͔͜͜ΒʮେྔͷϦΫΤετΛಉ࣌ʹࡹ͘ʯͳͲͷγεςϜݻ༗ͷ͕ ੜ·Ε͍ͯΔʢٯʹεϖοΫ͕ҟͳΔͳͲΞϓϦݻ༗ͷੜ·ΕΔʣ நతͳ֓೦͚ͩͰͳ͘ܭࢉػʹগ͠Λ͚Δͱྑ͍
©2021 Wantedly, Inc. %BUB ࣮·ͩ͋Δ
©2021 Wantedly, Inc. جຊతͳಛੑ σʔλΣΞϋεͱݺΕΔɺϢʔβʔ͔ΒݟͯγεςϜΑΓ͞ΒʹԞʹ ͋ΔιϑτΣΞ ΫϥυϓϩύΠμʔͷ͍࣋ͬͯΔσʔληϯλʔ্Ͱܭࢉ͕࣮ߦ͞ΕΔ Φʔμʔͱͯ͠ɺզʑͷγεςϜͷΫϥελʔͷنΑΓ1ܻʙ2ܻେ͖͍ϚγϯͰࢄॲཧ͕ߦΘΕΔ ٕज़తʹɺྻࢤσʔλϕʔεͳͲγεςϜͱҟͳΔͷ͕༻͍ΒΕ͍ͯΔ ΞϓϦγεςϜͳͲɺαʔϏεͷ͋ΒΏΔՕॴͰൃੜͨ࣌͠ܥྻͷσʔλ
͕ू͞Ε͍ͯΔɾɾɾγεςϜͱͷҧ͍ ࢀߟɿσʔλΣΞϋεͷॳظͷఆٛ “اۀͷҙࢥܾఆϓϩηεΛࢧ͑ΔɺαϒδΣΫτผʹ౷߹Խ͞Εͨɺ࣌ܥྻͳෆมσʔλͷू߹”ʢInmonʣ
©2021 Wantedly, Inc. 8BOUFEMZͷ߹ σʔλΣΞϋεͱͯ͠ BigQuery Λ͍ͬͯΔ ҙࢥܾఆͷͨΊ BigQuery ͱ࿈ܞ͢Δ
Looker ͱ͍͏αʔϏεΛ͍ͬͯΔ σʔλͷఆٛϞσϦϯάΛߦ͏ػೳͱϢʔβʔɾΠϯλʔϑΣΠε ͨͩ͠ɺσʔλͷར༻ͷ͞ΕํҙࢥܾఆΛߦ͏͚ͩͰͳ͍ ਪનΞϧΰϦζϜʹσʔλΛ༩͑ΔͳͲͷܗͰɺγεςϜͷৼΔ͍ʹ ϑΟʔυόοΫ͞ΕΔ App/System Data ΞϧΰϦζϜ ऩू ֶश by ܭࢉػ App/System Data ػೳ։ൃ ऩू ੳɾҙࢥܾఆ by ਓؒ 2छྨͷϑΟʔυόοΫɾαΠΫϧ
©2021 Wantedly, Inc. %BUB Ҏ্Λ·ͱΊͨͷ σʔλج൫पΓผ్ݚम͕͋Γ·͢
©2021 Wantedly, Inc. ·ͱΊ
©2021 Wantedly, Inc. ͜͜·Ͱͷ༰Λ౿·͑ͯ ߏཁૉͱͦͷؔΛߟ͑ͯΈΔ
©2021 Wantedly, Inc. αʔϏε Ϣʔβʔ ମݧ͢Δ ϒϥϯυͱͯ͠ ೝ͢Δ ఏڙ͖͢ମݧΛ࡞Δਓ αʔϏεϨϕϧ
αʔϏε։ൃऀ ఏڙ͖͢ମݧͷఔ ɹɹγεςϜɹɹ ৮Δ ϓϩμΫτͱͯ͠ ೝ͢Δ WebΞϓϦ iOSΞϓϦ AndroidΞϓϦ ɹΞϓϦ ֤ΞϓϦϓϥοτϑΥʔϜ ΦʔϓϯϓϥοτϑΥʔϜͳͷͰ ΞϓϦͷαʔϒࣗલ = ϓϩμΫτʢϞϊʣΛ௨ͯ͠ಘΒΕΔશମతͳମݧ γεςϜΛར༻ͨ͠Ԡ༻ιϑτΣΞ γεςϜɾΞʔΩςΫνϟ ϚΠΫϩαʔϏε γεςϜΛߏ͢Δίϯϙʔωϯτ Microservices Architecture ʢγεςϜͷʣ ΞʔΩςΫνϟɾελΠϧ γεςϜج൫ σʔλج൫ ΞϓϦϢʔβʔʹର͢Δ Wantedly ͷ γεςϜͷΠϯλʔϑΣΠε (UI) Ͱ͋Δ ΞϓϦΛಈ͔ͨ͢Ίͷ Wantedly ͷ γεςϜͷΠϯλʔϑΣΠε(API)
©2021 Wantedly, Inc. ·ͱΊ ৭ʑ͠·͕ͨ͠ɺݸผͷ༰Λ֮͑Α͏ͱ͢Δඞཁͳ͍Ͱ͢ ʑͷۀͷதͰҙຯΛཧղ͢Δख͕͔Γͱͯ͠׆༻͍͖ͯ͠·͠ΐ͏