2022/12/09 Developers CAREER Boost で発表したキャリアについての話です。
ΩϟϦΞͷΈʹ͍ͭͯ2022/12/09 @ Developers CAREER Boost
View Slide
Twitter: @yosuke_furukawaGithub: yosuke-furukawa࠷ۙͷ׆ಈ$ISPNF"EWJTPSZ#PBSE+4$POG+1PSHBOJ[FSFUD
͜ͷʮΩϟϦΞͷΈʯͱݴΘΕͯΜͰ͍Δਓ͚Ͱ͢ɻΜͰ͍ͳ͍ਓͦͷ··Ͱɻ
ݞॻ• Ұൠࣾஂ๏ਓ Japan Node.js Association දཧࣄ• ΤΩεύʔτ৫ άϧʔϓϚωʔδϟ• σϕϩοϓϝϯτࣨ ࣨ• Google Chrome Advisory Board• ٕज़ސ ࣾ
ΩϟϦΞͷΈͳΜ͔ͳͦ͞͏• ͦΜͳ;͏ʹࢥͬͯ͠·ͬͨํ•ʮΩϟϦΞʹΜͰ·͢ʂʂʂʂʂʂʯ• ΩϟϦΞͷΈ͕ͳ͘ͳΔ͜ͱͳΜͯແ͍• ࠓͦΜͳΛ͠·͢
ݞॻͱΩϟϦΞͷΈ• ݞॻͱΩϟϦΞͷΈແؔ• ݞॻ୯ͳΔࣄ্ͷϥϕϧʹա͗ͳ͍• ݞॻ͕ද͍ͯ͠ΔͷݱࡏؔΘ͍ͬͯΔࣄͷׂͷ໊લͰ͋Δ
ݞॻͱΩϟϦΞͷΈ• ΩϟϦΞࣄͷܦྺΛࢦ͢• ͏গࣗ͠ͷݴ༿Ͱݴ͍͢ͱɺʮνϟϨϯδ͖ͯͨ͜͠ͱʯΛࢦ͢• ʮࠓޙͷΩϟϦΞʯͱݴΘΕͨͱ͖ʹʮࠓޙͷνϟϨϯδʯͱಉٛޠͩͱࢥ͍ͬͯΔ
ݞॻͱΩϟϦΞͷΈ• ʮΩϟϦΞͷΈʯཁʮ͜ͷ··Ͱ͍͍ͷ͔ͳʯͱ͍͏Έ• ͦΜͳͷͣʔͬͱӬଓతͳΈͰ͋Δ• ࣍ͷઓΛܾΊͨҰ࣌తͳঢ়ଶΜͰ͍ͳ͍ͱࢥ͏͕ɺͦͷޙ·ͨΉ• ઓ͍ͯ͠ΔਓΛݟΔͱযΔͷҰ࣌తʹΈ͕ͳ͘ͳͬͯͦ͏Ͱɺͤͦ͏ʹݟ͑Δ͔Β
ΩϟϦΞͷΈ
ΩϟϦΞͷΈ৽͍͠νϟϨϯδͱͦΕ͕͏·͘ݴͬͯΔ࠷ॳͷ͏ͪΜͰͳ͍
ΩϟϦΞͷΈఀ࢝͠ΊΔͱΈͩ͢
ΩϟϦΞͷΈམͪࠐΈ࢝ΊΔͱ͍ͬͯͳΔ
ΩϟϦΞͷΈͦΕͷ܁Γฦ͠
ݞॻͱΩϟϦΞͷΈ• ͏·͘ߦ͍ͬͯΔঢ়ଶ͕ଓ͚͍͍͕ͦΜͳͷҰఆ࣌ؒͰ͙͢ʹফ͑ͯ͠·͏• ͔ͦ͠Μͳ؆୯ʹ͏·͘ߦ͔ͳ͍• େମ৽͍͠νϟϨϯδࣦഊ͢Δ• ࣦഊͨ͠Γɺࢼߦࡨޡ͍ͯ͠ΔΉ
ݞॻͱΩϟϦΞͷΈ• ΜͰ͍ͳ͍࣌ͳΜͯҰॠ͔͠ͳ͍• جຊతʹͣͬͱΜͰΔ• ΈΜͳ͕ઓ͍ͨ͠ɺ͏·͍͖͍ͨͬͯ͘ࢥͬͯΔ
ΩϟϦΞͷΈ͓ͦΒ͘தظతʹݟΔͱͣͬͱ͍ͭͯ·ΘΔ
ΩϟϦΞͷΈΛղফ͠Α͏ͱ͠ͳ͍
ΩϟϦΞͷΈΛղফ͠Α͏ͱ͠ͳ͍• ଟͣͬͱΉΜͩ͠ɺ͏·͘ંΓ߹͍Λ͚ͭͳ͕Β͏ͱࢥͬͯཉ͍͠• ᘳʹ͏·͍ͬͯ͘ΔਓͳΜ͍ͯͳ͍• Ұํɺ͔ͩΒͦ͜ʮ͜͜ͰͩͬͨΒΜͰ͍͍ʯͱࢥ͑ΔڥΛݟ͚ͭͯཉ͍͠
͜͜ͰͩͬͨΒΜͰ͍͍• Έਚ͖ͳ͍ͷͰɺΜͰ͍Δॴ͕ద͔Ͳ͏͔Ͱߟ͑ͯཉ͍͠• ձࣾͷ vision ʹڞײ͍ͯ͠Δͱ͔• ձࣾͷҰॹʹಇ͍͍ͯΔϝϯόʔΛϦεϖΫτ͍ͯ͠Δͱ͔• ͦͷձࣾͷதͰ·ͩνϟϨϯδ͍ͨ͠ࣄ͕͋Δͱ͔
͜͜ͰͩͬͨΒΜͰ͍͍• ద͡Όͳ͍ͳͱࢥͬͨΒม͑Δͷ͋Γͩͱࢥ͏ɻ• ͏Γ͍ͨ͜ͱ͕ͳ͍• vision ʹڞײͰ͖ͳ͍• ΩϟϦΞҎ֎ͷਓؒؔͰΈଓ͚ͯ͠·͏
ݹͷ
࠷ॳͷձࣾ• ϝʔΧʔͰจॻཧγεςϜΛ࡞͍ͬͯͨ• RDBͷΠϯσοΫεͷΈΛֶΜͩΓɺશจݕࡧͷΈֶΜͩΓͱͷֶ͘͢͝ͼ͕ଟ͔ͬͨ• ӳޠͬͨΓɺϓϩάϥϛϯάͨ͠Γ͠ͳ͕Βࣗݾݚᮎ͢Δ࣌ؒ͋ͬͯྑ͍اۀͩͱײ͍ͯͨ͡• ͦΕͰɺવΩϟϦΞʹΜͰ͍ͨ
ͦΜͳ࣌ʹ Node.js ʹग़ձ͏
ಥͳ౧ଠ• ͓͋͞Μચ୕ʹ͔͍·ͨ͠• ͷ্ྲྀ͔Β౧͕ͲΜͿΒ͜ͱྲྀΕ͖ͯͨ• ࣋ͬͯؼ͓͍ͬͯ͡͞Μͱ৯Α͏ͱࢥͬͨʢ͜͜Α͘ߟ͑Δͱҟৗߦಈʣ
͓ͦΒͦ͘Μͳग़ձ͍͕৭ΜͳॴͰى͖͍ͯΔ
ͷ߹ͷେ͖ͳ౧͕ Node.js ͩͬͨɻ
Node.js ʹϋϚΔ• ͱΓ͋͑ͣຖिϒϩάॻ͘• ຖ݄ͳʹ͔࡞Δ• Πϕϯτʹ͔ͳΒͣߦ͘• ʹҰొஃ͢Δ
͜ͷઓΛ͍ͯ͠Δָ͔࣌ͬͨ͠ɻ
͜͏͍͏ͷʢWeb ΞϓϦέʔγϣϯͮ͘ΓʣΛࣄʹ͍ͨ͠ͱࢥͬͨ
2ͭΊͷձࣾ• ήʔϜձࣾ• ༏लͳਓ͕ͷ͘͢͝ଟ͔ͬͨ• ӡ༻ͷํֶΜͩ• ৽نࣄۀܦݧͨ͠• طଘࣄۀͷϦχϡʔΞϧͰେ͖ͳࣄͬͨ• ͪΖΜΩϟϦΞʹΜͰ͍ͨ
Node.js ͷ׆ಈଓ͚͍ͯͨ
ͨͩຊ֨తʹίϛϡχςΟͷϦʔμʔʹͳΔ͜ͷลΓ͔Β Node.js ϢʔβʔάϧʔϓදʹͳΔ
Node.js ͱ io.js ͱͷ fork ͳͲ͕ى͖ɺίϛϡχςΟࠞಱͱͩ͢͠ɻ
ݟݶΔਓଟ͍ԿʮNode.js ΦϫίϯʯΈ͍ͨͳࣄΛݴΘΕ͔ͨ
Node.jsͱio.jsͷࠞಱΛऩΊΑ͏ͱɺϒϩάॻ͍ͨΓͲͪΒʹίϯτϦϏϡʔτͨ͠Γ͍ͯͨ͠
͜ͷ࣌ͷ׆ಈΛࢦͯ͠ͳΜͰ͜͏͍͏ࣄ͕Ͱ͖ͨΜͰ͔͢ʁͱฉ͍͖ͯͯ͘ΕΔਓଟ͍
ҰݴͰ͍͏ͱʮѪʯ͔ͳͱࢥ͍ͬͯΔɻ
ϩδοΫΛ͑ͯΓଓ͚Δঢ়ଶΛࢦͯ͠ʮѪʯͱݺΜͰ͍Δɻ
ͱʹ͔͘ଛಘൈ͖Ͱߟ͑ͯͨɻ Node.js ΛΓ্͔͛ͨͬͨɻͳΜͰ͔ͱݴΘΕͯΑ͘Θ͔Βͳ͍ɻͦ͏͠ͳ͖Ό͍͚ͳ͍ͱࢥͬͯͨɻ
͜͜·ͰເதʹͳΕΔͷ͕͋ͬͨͷྑ͔ͬͨؾ͕͍ͯ͠Δ
ͨͩͬͺΓͬͱNode.js Λຊ֨తͳ׆ಈʹͨ͘͠ͳͬͨ
ݱࡏͷձࣾ• Node.js Λ͔ͳΓૣ͔͘Β࠾༻͍ͯͨ͠• ΣϒΞϓϦέʔγϣϯଟ͘ɺଟ༷ͳ͕ଟ͔ͬͨ• ͕ࣗؔΘΔ͜ͱͰগ͠Ͱྑ͘͠Α͏ͱࢥ͍ͬͯΔɻ• ͪΖΜΩϟϦΞʹΜͰ͍Δ
ϑϩϯτΤϯυͷઐνʔϜΛ͞ΕΔ
ࢠձࣾͷ։ൃશൠΛ͞ΕΔ
৭ʑͱ৽͍͠νϟϨϯδΛͤͯ͞Β͍͑ͯΔ
ͦΕͰͬͺΓΉ
όϥϯεͷͱΓํઐՈͷҭձࣾͷܦӦNode.js ͳͲͷOSS׆ಈٕज़ސຊΛॻ͘
όϥϯεͷͱΓํຖͷݚᮎ (ӳޠ)ڝٕϓϩάϥϛϯάےτϨՈఉ͍͠
·͊ͰΜͰ͍͍ͯͱࢥ͑Δ
ଟɺ͜Ε͕ࣗͷΩϟϦΞͷܗͷํԿͩͱࢥ͏ɻΈͳ͕Βɺͦͷ࣌ϋϚͬͯΔࣄΛΓͳ͕ΒɺόϥϯεͱΓͳ͕Βɺͨ·ʹແ͠ͳ͕ΒɺΓ͍ͨ͜ͱΛશ෦ͬͯΈΔɺͱ͍͏ɻ
શһ͕͜͜·ͰແΛ͠ΖͱࢥΘͳ͍ɻਓʹΑͬͯΩϟϦΞͷܗͷํҧ͍͍ͬͯɻͨͩΈड͚ೖΕͯཉ͍͠ɻ
ͦ͏ͦ͏ɺେࣄͳ͜ͱ
Ήͷྑ͍͕ɺϝϯλϧΠϧωεʹͳΒͳ͍Α͏ʹͯ͠ཉ͍͠
Έ݈͗ͯ͢߁ʹඃ͕ग़Δͷҧ͏
͍ʂͱࢥͬͨΒ͙͢පӃʹɻ
පӃʹߦ͘લʹճΓʹ૬ஊͨ͠Γ͢Δͷ͋ΓͰ͠ΐ͏
ҿΈձͱ͔ͰΈΛݴͬͯΈΔͷྑ͍ͱࢥ͍·͢ɻ
݈߁Ͱ͋ͬͯ΄͍͠ɻΈա͗ͨΒपғΛཔͬͯ΄͍͠ɻ໌ޙ40ࡀʹͳΓ·͢ɻ݈߁ʹؾΛ͚͍ͭͯ·͢ɻ
དྷΈଟ͖ʹͳΔͰ͠ΐ͏ɻͰҰॹʹΓӽ͍͖͑ͯ·͠ΐ͏ɻ
͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ