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
frontend development on recruit tech
Search
Yosuke Furukawa
PRO
March 08, 2017
Programming
2
1.7k
frontend development on recruit tech
r-tech night vol.5 2017/3/8
Yosuke Furukawa
PRO
March 08, 2017
Tweet
Share
More Decks by Yosuke Furukawa
See All by Yosuke Furukawa
AppRouter Panel Talk
yosuke_furukawa
PRO
1
450
Node.js v22 で変わること
yosuke_furukawa
PRO
11
3.9k
リアーキテクトと開発生産性について
yosuke_furukawa
PRO
22
8.2k
JavaScript Server Runtime History
yosuke_furukawa
PRO
8
2.9k
tc39 x jsconf.jp Panel Discussion
yosuke_furukawa
PRO
0
1.1k
フロントエンドの開発生産性とは
yosuke_furukawa
PRO
16
9.7k
7 principles for rich web apps And how next.js achieves these principles
yosuke_furukawa
PRO
6
2.3k
Deep Dive International Conference
yosuke_furukawa
PRO
0
100
フロントエンドのDXと今後
yosuke_furukawa
PRO
6
3.8k
Other Decks in Programming
See All in Programming
Amazon SQSコンシューマー疎結合への旅 - 出張! #DevelopersIO IT技術ブログの中の人が語る勉強会 #3
quiver
0
300
Implementing Design Systems in Swift
seyfoyun
1
400
Fragment Composition of GraphQL
quramy
13
1.4k
MicrosoftのPlatform Engineeringガイドを読んで実際になにかやってみた
ymd65536
1
490
はてなにおける CSS Modules、及び CSS Modules に足りないもの / CSS Modules in Hatena, and CSS Modules missing parts
mizdra
7
970
Build Apps for iOS, Android & Desktop in 100% Kotlin With Compose Multiplatform (mDevCamp 2024)
zsmb
0
420
CDKコントリビュートの最初の壁を越えよう! -簡単issueの見つけ方-
badmintoncryer
3
170
PostmanでAPIの動作確認が楽になった話
h455h1
0
180
try! Swift Tokyo 2024 参加報告 / try! Swift Tokyo 2024 Report
hironytic
0
210
大規模UIKitベースアプリへのTCAの段階的導入/gradual-adoption-of-tca-in-a-large-scale-uikit-based-app
takehilo
2
200
ゆるい個人開発のススメ
kuroppe1819
10
1k
Scalable Customer Journey Orchestration (CJO)
lewuathe
0
410
Featured
See All Featured
Visualization
eitanlees
137
14k
Teambox: Starting and Learning
jrom
128
8.4k
Done Done
chrislema
178
15k
Git: the NoSQL Database
bkeepers
PRO
423
63k
Robots, Beer and Maslow
schacon
PRO
155
7.9k
How To Stay Up To Date on Web Technology
chriscoyier
782
250k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
660
120k
Practical Orchestrator
shlominoach
183
9.7k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
126
32k
4 Signs Your Business is Dying
shpigford
176
21k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
323
20k
Side Projects
sachag
451
41k
Transcript
Frontend Develops on Recruit Tech 2017 8th March @r-tech night
vol.5
@yosuke_furukawa ϦΫϧʔτςΫϊϩδʔζॴଐ γχΞιϑτΣΞΤϯδχΞ
<13>8FC %#1SFTT݄߸ ʹͯɺ3FBDUͷهࣄಛू
ࠓݴ͍͍ͨ͜ͱ ʮϑϨʔϜϫʔΫ࡞Δͷ ʹ߹Θͤͯ࡞Δʯ
ϦΫϧʔτͷWeb
ϦΫϧʔτͷWeb ݕࡧɹ some website
ϦΫϧʔτͷWeb ݕࡧɹ some website τοϓϖʔδʹݕࡧͰ͖ Δͱ͜Ζ͕͋ͬͯ ݕࡧ͢ΔͱϦετϏϡʔ ͕ग़ͯ ϦετΛΫϦοΫ͢Δͱ ৄࡉϖʔδ͕ग़Δ
ϦΫϧʔτͷWeb ݕࡧɹ some website τοϓϖʔδʹݕࡧͰ͖ Δͱ͜Ζ͕͋ͬͯ ݕࡧ͢ΔͱϦετϏϡʔ ͕ग़ͯ ϦετΛΫϦοΫ͢Δͱ ৄࡉϖʔδ͕ग़Δ
యܕతͳ8FCαΠτ
ϦΫϧʔτͷWeb ʢ࠷ۙ͜͏͍͏ͷ૿͖͑ͯͨʣ chat YYYYYYY bbs YYYYYY Enquete 2YYYYYYYYY ˘
BBBBBBBBB ˘ CCCCCCCC ˘ DDDDDDDDD ˘ EEEEEEEE
ϦΫϧʔτͷWeb ʢ࠷ۙ͜͏͍͏ͷ૿͖͑ͯͨʣ chat YYYYYYY bbs YYYYYY Enquete 2YYYYYYYYY ˘
BBBBBBBBB ˘ CCCCCCCC ˘ DDDDDDDDD ˘ EEEEEEEE νϟοτͰ͖ͯ ܝࣔ൘ͰϝοηʔδʹϦ ΞΫγϣϯ͚ΒΕͯ Ξϯέʔτͱ͔Ͱ Ϣʔβʔͱίϛϡχέʔ γϣϯऔΕΔ
ϦΫϧʔτͷWeb ʢ࠷ۙ͜͏͍͏ͷ૿͖͑ͯͨʣ chat YYYYYYY bbs YYYYYY Enquete 2YYYYYYYYY ˘
BBBBBBBBB ˘ CCCCCCCC ˘ DDDDDDDDD ˘ EEEEEEEE νϟοτͰ͖ͯ ܝࣔ൘ͰϝοηʔδʹϦ ΞΫγϣϯ͚ΒΕͯ Ξϯέʔτͱ͔Ͱ Ϣʔβʔͱίϛϡχέʔ γϣϯऔΕΔ ΠϯλϥΫςΟϒͳ 8FCΞϓϦ
WebαΠτͷཁ • ͱʹ͔͘αΠτύϑΥʔϚϯε • Ұཡ͔Βݕࡧ͢Δਓ͍Δ͚Ͳৄࡉʹߦ ͘ਓ͍Δ(େମ༧αΠτܥৄࡉ > Ұཡ) ډञ༧ͨ͠Βৄࡉ 63-ΛγΣΞͯ͠ෆಛఆ
ଟʹڞ༗͢ΔͨΊ
WebΞϓϦͷཁ • Native ΞϓϦͬΆ͍ Look & Feel • Interactive ͳಈ͖(Chat
͍͍Ͷ௨) chat Like ཁ/BUJWFΞϓϦͱಉ͡ ಈ͖Λͯ͠΄͍͠
ϦΫϧʔτͷWebͷཁ • αΠτܥύϑΥʔϚϯε • ΞϓϦܥLook & Feel chat
ϦΫϧʔτͷWebͷཁ • αΠτܥύϑΥʔϚϯε • ΞϓϦܥLook & Feel chat ྆ऀͷཁΛຬͨ͢ʹ͜Ε·Ͱͷ 8FCϑϨʔϜϫʔΫͰແཧ
Recruit Technologies Ͱ React, Redux, Node.js Ͱ৽͘͠ϑϨʔϜϫʔΫ Λ࡞͍ͬͯΔ
Web αΠτͷࣄྫ DEMO
Web ΞϓϦͷࣄྫ DEMO
ϑϩϯτΤϯυΛ࡞Δ্Ͱ ؾΛ͚͍ͭͯΔࣄ
αʔόͰΫϥΠΞϯτͰ ϨϯμϦϯά͢Δ
αʔόͰΫϥΠΞϯτͰϨ ϯμϦϯά͢Δ • αʔόαΠυϨϯμϦϯάͱݺΕΔͷ • ΫϥΠΞϯτͱαʔόͰಉ͡ϩδοΫͰϨϯ μϦϯά͢Δ • ॳظදࣔͷվળʹޮՌ͋Γʢ͋ͱOGPSEO ͷରԠ͕͍͢͠ʣ
ΫϥΠΞϯταΠυͰͷΈϨ ϯμϦϯάͨ͠߹ ʢॴҦSPAͷ߹ʣ
(&5BSUJDMFT loading… (&5BTTFUCVOEMFKT (&5BQJBSUJDMFT
αʔόαΠυϨϯμϦϯάͷ ߹
(&5BSUJDMFT loading… (&5BTTFUCVOEMFKT αʔόαΠυͰطʹσʔλΛGFUDI ͯ͠)5.-ΛߏஙࡁΈͷͨΊߴ ࣍Ҏ߱ͷϦΫΤετ"1*ܦ༝Ͱ ΫϥΠΞϯταΠυϨϯμϦϯά͢Δ
(&5BSUJDMFT loading… (&5BTTFUCVOEMFKT αʔόαΠυͰطʹσʔλΛGFUDI ͯ͠)5.-ΛߏஙࡁΈͷͨΊߴ ࣍Ҏ߱ͷϦΫΤετ"1*ܦ༝Ͱ ΫϥΠΞϯταΠυϨϯμϦϯά͢Δ ॳظද্͕͕ࣔΔ
DEMO
αʔόαΠυϨϯμϦϯά • ॳظදࣔͷվળͱϨϯμϦϯά͞Εͨޙ ͷ෦ϨϯμϦϯάΛ͢Δٕज़ • ճ༡தͷϢʔβʔͷUXॳظදࣔͷվ ળͰ͖Δ • ݕࡧͯ͠Ұཡදࣔ͢Δૢ࡞ৄࡉ͚ͩΛදࣔ ͢Δૢ࡞ύϑΥʔϚϯεΛ্͍ͤ͢͞
αʔόαΠυϨϯμϦϯά • ͨͩ͠ɺҙ͋Δ • ಛʹࠓͷReactͷαʔόαΠυϨϯμϦϯάॏ ͍(ϨϯμϦϯά͚ͩͰ100msͱ͔͔͔Δ߹͋ Δ) • ͔͜͠ͷॲཧඇಉظͰͳ͍ͷͰblocking͞ ΕΔ
αʔόαΠυϨϯμϦϯά • ͜ΕΛճආ͢ΔͨΊʹɿ • ϨϯμϦϯά݁ՌΛҰ࣌తʹΩϟογϡ͍ͯ͠Δʢϓ ϩηεΩϟογϡ (nginxͷcache dirʹอଘݕ ౼த)) •
Above the fold ͷΈϨϯμϦϯάͤͯ͞αʔόαΠ υϨϯμϦϯάΛݶఆతʹߦ͏ඞཁ͕͋Δ(ະݕূ)
HistoryΛյ͞ͳ͍
HistoryΛյ͞ͳ͍ • ΔɾਐΉΛͨ࣌͠ʹҎલʹݟͯͨঢ়ଶ͕ͪΌ Μͱ෮ݩ͞ΕΔ • વͱ͍͑વ • ͨͩ͠ɺͰ͖͍ͯΔαΠτগͳ͍
History ͕յΕͯΔαΠτྫ
History ͕յΕͯΔαΠτྫ εΫϩʔϧҐஔ่͕ΕΔࣄҊ
εΫϩʔϧҐஔ่͕ΕΔओͳཧ ༝ Δ
Δ దͳҐஔʹεΫϩʔϧ ͔ͯ͠Βผͳϖʔδʹભ Ҡ͢Δ εΫϩʔϧҐஔ่͕ΕΔओͳཧ ༝
Δ ભҠͨ͠ϖʔδ͔ΒΔ εΫϩʔϧҐஔ่͕ΕΔओͳཧ ༝
Δ ͬͨ࣌ʹݩͷ)5.-ফ͑ͯ ͍Δʢ+BWB4DSJQUͰ)5.-͕ߏங ͞ΕΔલʹOBWJHBUF͞ΕΔ εΫϩʔϧҐஔ่͕ΕΔओͳཧ ༝
Δ ͜ͷ࣌ʹϒϥβݩͷεΫϩʔ ϧҐஔΛ֮͑ͯΔ͕ɺ)5.-͕ શʹϨϯμϦϯά͞Ε͍ͯͳ͍ͷ ͰҐஔ͕࠶ݱ͞Εͳ͍ εΫϩʔϧҐஔ่͕ΕΔओͳཧ ༝
Δ Ґஔ͕࠶ݱͰ͖ͳ͍ͷͰɺεΫϩʔ ϧҐஔ)5.-͕දࣔͰ͖͍ͯΔ ॴ·ͰʹͳΔ εΫϩʔϧҐஔ่͕ΕΔओͳཧ ༝
ճආࡦ ΔɾਐΉΛͨ࣌͠ʹσʔλ ಡΈࠐΈதϨϯμϦϯάΛ εΩοϓͤ͞Εྑ͍
Δ Δ࣌ʹBKBYͷ࠶ϦΫΤετ͕ Δɺ࠶ϦΫΤετ͕͍ͬͯΔؒ ϨϯμϦϯάͤͣ͞ɺϨεϙϯε ͕ฦ͖͔ͬͯͯΒϨϯμϦϯά͞ ͤΔ εΫϩʔϧҐஔ่͕ΕΔओͳཧ ༝
DEMO
Consumer Driven Contract Ͱ։ൃ͢Δ
Consumer Driven Contract • ैདྷόοΫΤϯυ (Provider)͕ܾΊ͍ͯͨ API ͷ༷ΛϑϩϯτΤϯυ(Consumer)͕ओಋ͠ ͯཁٻΛॻ͘(Contract)͜ͱͰ API
༷ΛܾΊ ͍ͯ͘ͱ͍͏ελΠϧͷ༷ࡦఆํ๏
Consumer Driven Contract • Contract Λఆٛ͢Δ(APIͷ༷ΛJSON͔Կ͔ Ͱॻ͘)
Consumer Driven Contract • هड़͞ΕͨϑΝΠϧΛͬͯmockͱͯ͠׆༻ ͢Δ
Consumer Driven Contract • mock͕ΫϥΠΞϯτͱͳΓɺProviderͷϨε ϙϯεΛνΣοΫ͢Δ
Consumer Driven Contract • ϑϩϯτΤϯυ͕͍͍͢APIʹͳΔ • ͬͪ͜ͷرΛͦͷ··࣮͍ͯ͠Δ͚ͩͰɺόο ΫΤϯυ͕ϋοϐʔʹͳΔ༁Ͱͳ͍ • ͪͳΈʹ࣮ફͯ͠Έͨॴɺ͜ΕΛͬͯίϛϡ
χέʔγϣϯίετ͕͍҆Θ͚Ͱͳ͔ͬͨʢͪΌ ΜͱίϛϡχέʔγϣϯΛऔΔඞཁ͋ͬͨʣ
DEMO
Why Consumer Driven Contract • ैདྷ௨ΓͷΓํͰϑϩϯτΤϯυ։ൃͷ ߹͕ѱ͘ͳΔ • ͳΔ͘ͳΒɺΤϯυϢʔβʹ͍ۙॴͰAPI ༷ΛܾΊΔ͠
• Agreedͱ͍͏ϥΠϒϥϦΛͬͯmockΛॻ͘ ͜ͱͰCDC࣮ફՄೳ
Ͳ͏ͬͯΊΔ͔
Ͳ͏ͬͯΊΔ͔ʁ • ࣄྫΛ࡞͍ͬͯͬͯΊΔ • ڭҭͯ͠ΊΔ • ڭՊॻ • ϓϩτλΠϓ •
ΞϓϦέʔγϣϯߏஙΨΠυ
ڭՊॻ
7 principles of Rich Web Applications • socket.io ͷ࡞ऀ •
Guillermo Rauch ࢯఏএ • ༁ • http://yosuke-furukawa.hatenablog.com/entry/2014/11/14/141415
7 principles of Rich Web Applications • socket.io ͷ࡞ऀ •
Guillermo Rauch ࢯఏএ • ༁ • http://yosuke-furukawa.hatenablog.com/entry/2014/11/14/141415 ͜ͷݪଇʹैͬͯ࡞Δ
ϓϩτλΠϓ
ϓϩτλΠϓ • React / Redux / Node.js ͷ࣮ྫूΛ࡞͍ͬͯ Δ •
react-router ແݶεΫϩʔϧͳͲΛͬͨࢀ ߟؚ࣮·Ε͍ͯΔ • Living Recruit Standard ͱͯ͠ৗʹ࠷৽ͷϥΠ ϒϥϦʹै͍ͯ͘͠༧ఆɻ
ΞϓϦέʔγϣϯߏஙΨΠυ
ΞϓϦέʔγϣϯߏஙΨΠυ • Ӷҙ࡞தʂʂʂʂ • ख͕Γͯͳ͍ • Ұॹʹ࡞͍ͬͯ͘ਓืूதʂʂʂʂʂ
ॿ͚͍ͯͩ͘͞ʂʂʂʂʂʂ
Thank you