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
多様化するWeb業界で活躍できる エンジニアを育てた際に心がけたこと
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Yuichi Nakazawa
December 15, 2022
670
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
多様化するWeb業界で活躍できる エンジニアを育てた際に心がけたこと
Yuichi Nakazawa
December 15, 2022
More Decks by Yuichi Nakazawa
See All by Yuichi Nakazawa
Pythonを使って顧客から感謝 される仕事をするために心がけたこと
y_nakazawa
1
660
長野のPythonista事情
y_nakazawa
0
940
DjangoによるWebエンジニア育成への道
y_nakazawa
5
9k
AWS認定ソリューションアーキテクト アソシエイト 取得への道
y_nakazawa
0
550
みんなのPython勉強会 in 長野 #2 Webグループ オリエン資料
y_nakazawa
3
510
Featured
See All Featured
GraphQLとの向き合い方2022年版
quramy
50
15k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
340
RailsConf 2023
tenderlove
30
1.5k
Odyssey Design
rkendrick25
PRO
2
700
Prompt Engineering for Job Search
mfonobong
0
350
Test your architecture with Archunit
thirion
1
2.3k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
250
The World Runs on Bad Software
bkeepers
PRO
72
12k
Being A Developer After 40
akosma
91
590k
The Invisible Side of Design
smashingmag
302
52k
We Are The Robots
honzajavorek
0
250
We Have a Design System, Now What?
morganepeng
55
8.2k
Transcript
ʮଟ༷Խ͢ΔWebۀքͰ׆༂Ͱ͖Δ ΤϯδχΞΛҭͯͨࡍʹ৺͕͚ͨ͜ͱʯ 2022.12.15 ΈΜͳͷPythonษڧձ #88 Yuichi Nakazawa
͓·͑ͩΕΑ • ݝੜ·Εҭͪ • גࣜձࣾຊγεςϜٕݚ ॴଐ • औక Web։ൃ෦σΟϨΫλʔ
Πϯϑϥ͓͡͞Μͱࣾݚम • झຯɿ֨ಆήʔϜɺےτϨ • @y_nakazawa1220 Yuichi Nakazawa 2
גࣜձࣾຊγεςϜٕݚ • Web։ൃ͕ओྗ(SESͱडୗ) • 2014͔ΒPython/DjangoͰ • ࠷ۙϑϩϯτΤϯυܥ͕ଟ͍ • PyCon JPɺDjangoCongressΛ
த৺ʹεϐʔΧʔΛഉग़ • اۀ͚ͷPythonߨ࠲ • GEEKLAB.NAGANOͷӡӦ Japan System Laboratory 3
GEEKLAB.NAGANO • 2014ΑΓΤϯδχΞ͚ͷ ίϛϡχςΟεϖʔεͱͯ͠։ઃ • ΈΜͳͷPythonษڧձ # •
աڈ̏ͷ։࠵ • τʔΫɺ͘͘ձɺεϓϦϯτ • ʢͦΖͦΖ࠶։͍ͨ͠ʣ
ʹͳΔͱಈ͘உ 5
6
🎂birthdayۦಈ։ൃ 7
̌ˋɹ 8
ʹͳΔͱಈ͘உ 9
ʹςΫχΧϧͳΛ͠ͳ͍உ 10
ʮଟ༷Խ͢ΔWebۀքͰ׆༂Ͱ͖Δ ΤϯδχΞΛҭͯͨࡍʹ৺͕͚ͨ͜ͱ
Λ͢Δ͜ͱ • ۙͷҊ͔݅ΒΈͨWeb։ൃͷಈʹ͍ͭͯ • ଟ༷Խ͢ΔWebۀքͰͷΤϯδχΞҭ 12
ۙͷฐࣾ • ৽ܕίϩφͷӨڹͰӦۀػձ͕ݮΓɺ৽نͷෛҊ͕݅ݮͬͯ͠·ͬͨ • طଘͷ͓٬༷ͷSESൺ͕͕͋ͬͨɻ߹Θ͓ͤͯҰਓ͞·ϓϩδΣΫτ૿Ճ • ໘ɺཁ݅ఆ͔ٛΒߦ͏Ҋ݅ࣾϝϯόʔͰ։ൃ͢Δػձ͕ݮͬͯ͠·ͬͨ • ࠓɺ্ྲྀఔ͔Βͷ։ൃΛ૿ͨ͢ΊʹෛൺΛ૿͍ͯ͠Δ •
SESͷ߹νʔϜ୯ҐͰͷड͚ೖΕΛ͓ئ͍͍ͯ͠Δ • ͓Ұਓ͞·ϓϩδΣΫτͷվળ 13
ओʹฐࣾͰѻٕͬͨज़ 2014ʙ2022 • Python • Django/DRF • Flask • Pyramid
• Ruby on Rails • PHP • Larvel/Yii 14 • HTML • CSS • JavaScript • TypeScript • jQuery • Angular • React • ReactNative • Vue.js • Java • Obj-C • Swift • Kotlin • Flutter • nginx • uWSGI • gunicorn • Apache • EC2 • RDS • S3 • Lambda • API Gateway • Dynamo • Firebase
ѻٕͬͨज़ͱΤϯδχΞ 2014ʙ2022 15
ѻٕͬͨज़ͱΤϯδχΞ 2014ʙ2022 16
ؾ͍ͮͨ͜ͱ • ҎલεϚϗΞϓϦͷόοΫΤϯυ͕த৺͕ͩͬͨɺϑϩϯτΤϯυؚΊͨ WebΞϓϦέʔγϣϯ։ൃ͕૿͖͍͑ͯͯΔ • όοΫΤϯυͷΈͷҊ͕݅ݮ͍ͬͯΔ • ϑϩϯτΤϯυҊ݅(JavaScript)͕૿͍͑ͯΔ •
Vue/React/Angular • jQueyɺอकܥͷҊ݅ͷΈ • TypeScript͕ඞਢ • IaaS͔ΒPaaSʢFirebaseʣ/FaaSʢLambda etc..ʣ 17
Ҋ݅ͷ ෛ։ൃͷ߹ • ิॿۚΛͬͨ͜ͿΓͷҊ͕݅૿͖͍͑ͯͯΔ • ݩͷۀ͔ΒͷҾ͖߹͍͍͔ͭ͘ • ݸਓࣄۀओʢඇΤϯδχΞʣͷํɺଞۀछ͔Βͷ͓͕͚͕૿͍͑ͯΔ • ͬͱ༷ͨ͠ͷͷ
• ͳΜͱͳ͘ωΠςΟϒΞϓϦ࡞Γ͍ͨ -> Γ͍ͨ͜ͱ͕΅͚͕ͪͳͷͰɺԿΛΓ͍͔ͨΛҰॹʹཧɹ • VRళฮͷΑ͏ͳͷΛ࡞Γ͍ͨ -> ECαΠτ+ίʔϙϨʔταΠτͰམͪண͘ • Πχγϟϧίετ͋Δఔग़ͤΔ͕ɺϥϯχϯάίετ͍͑ͨ • ʢࢀߟʣʮPythonΛͬͯސ٬͔Βײँ͞ΕΔࣄΛ͢ΔͨΊʹ৺͕͚ͨ͜ͱʯʢhttps://bit.ly/3hcUgEZʣ 18
ͲͷΑ͏ͳٕज़ͰରԠ͔ͨ͠ 19
Question Web։ൃ͞Ε͍ͯΔํ 20
Question ٕज़બఆͲͷΑ͏ʹ͍ͯ͠·͔͢ʁ 21
༷ʑͳબఆج४ • ରԠͰ͖ΔΤϯδχΞ͕ଟ͍ͷ • ೲޙʹ͓٬༷͕ରԠͰ͖Δͷ • طଘͷΞʔΩςΫνϟͱಉ͡ͷ • ࠓޙͷҊ݅ʹͭͳ͕Γͦ͏ͳͷ •
ྲྀߦΓͷͷ • ੜ࢈ੑ͕͕͋ΔͱࢥΘΕΔͷ • ։ൃίετ͕҆Ձͳͷ • ָͦ͠͏ͳͷ • etc… 22
ͦͦWebΞϓϦέʔγϣϯͱ • ΠϯλʔωοτͰެ։͞Ε͍ͯͯϒϥβͰ࣮ߦՄೳͳΞϓϦέʔγϣϯ • ཚʹݴ͑ɺૢ࡞ੑɺσβΠϯɺϨεϙϯεͰҰఆͷύϑΥʔϚϯε͕ ಘΒΕΔ͜ͱ͕ग़དྷΕ͓٬͞·ͱͯ͠ɺʮԿͰ࡞Ζ͏͕Ұॹʯ •
͓٬༷ࢹͰɺྑ͍ͷΛ҆ՁͰ͘໘Λݟͯ͘ΕΔͷ͕خ͍͠ 23
༷ʑͳબఆج४ • ରԠͰ͖ΔΤϯδχΞ͕ଟ͍ͷ • ೲޙʹ͓٬༷͕ରԠͰ͖Δͷ • طଘͷΞʔΩςΫνϟͱಉ͡ͷ • ࠓޙͷҊ݅ʹͭͳ͕Γͦ͏ͳͷ •
ྲྀߦΓͷͷ • ੜ࢈ੑ͕͕͋ΔͱࢥΘΕΔͷ • ։ൃίετ͕҆Ձͳͷ • ָͦ͠͏ͳͷ • etc… 24
ۙͷٕज़બఆ • ϑϩϯτΤϯυReact&TypescriptʢҎԼTSʣ • TSΛ͏Ҋ͕݅૿ՃͩͬͨͨΊ • Next.js༻͠ͳ͔ͬͨ • όοΫΤϯυ͕PaaS or
FaaSͷ߹ɺTSͰશରԠ • طଘγεςϜ͔ΒͷҠߦҊ݅ʹPython/Django + EC2+RDSͷమ൘ߏ • ECαΠτతͳͷEC2Ͱͳ͘ɺLightsailΛఏҊͯ͠ίετͰ࣮ݱ 25
ଟ༷Խ 26
ΤϯδχΞҭ 27
͍ͭ͘ͷ՝ 28
લ·Ͱɾɾ • Python/Django+αΛJSLελϯμʔυͱ͍ͯͨ͠ • Python/DjangoͰҊ͕݅·ͱ·͍ͬͯͨͷͰɺֶश͔ͬͨ͢͠ • ͦͷଞͷٕज़ཁૉɺࣗൃతͳٕज़शಘʹґଘͯ͠͠·͍ͬͯͨ • ମܥతͳΤϯδχΞڭҭͷϓϥϯແ͔ͬͨ 29
༷ʑͳߏஙํ๏͕͋Δ ۙͷ࣮ • frontend(React/TS) + backend(Python/DRF+EC2/RDS) • frontend(React/TS) +
backend(TS + Lambda/AppSync/DynamoDB etc…) • Native App(Flutter) + backend(Python/DRF+lightsail) 30
Python/Django͚ͩͰରԠͰ͖ͳ͍ • ͱͱόοΫΤϯυͷҊ͕݅ଟ͔ͬͨ͜ͱ͋ΓϑϩϯτपΓ͕ऑΈͰ ͋ͬͨ • FirebaseαʔόʔϨεΛ༻ͯ͠PoCΛ։ൃ͍ͨ͠ཁ૿͖͑ͯͯ όοΫΤϯυΛ͕ͬͭΓ։ൃ͢Δػձݮ͖͍ͬͯͯΔ • ϑϩϯτΤϯυ։ൃͷൺॏ͕ߴ·͍ͬͯΔ
31
ϑϩϯτΤϯυಓͷΓ͕͍ • JSॳ৺ऀ͚Ͱͳ͍ͱࢥ͏ɾɾ • TSΛΔͨΊʹJSΛΔඞཁ͕͋Δ • React/Vue/angularΛΔͨΊʹJS/TS͕ඞཁ • ॳ৺ऀ͕React +
TS / Vue + TSͱ͍͏εΩϧηοτ͕ٻΊΒΕΔҊ݅ͷ߹ Ք͛Δྗ͕ʹͭ͘·Ͱʹ࣌ؒΛཁ͢Δ 32
ΠϯϑϥΛ৮ΕΔػձ͕গͳ͍ • ෛݮʹΑΓ࣮ફͰ৮ΕΔػձ͕গͳ͍ɻߏங͢Δػձ͕͍ͪҊ݅͋ͨΓ̎ճఔ ʢεςʔδϯά/ຊ൪ڥʣ • ΞϓϦέʔγϣϯ։ൃʹਓһऔΒΕ͕ͪͳͷͰΠϯϑϥ͓͡͞Μ͕·ͱΊͯΓ͕ͪ • ӡ༻࣌ʹൃੜͨ͠োରԠ͕࣌Ұ൪ಘΔͷ͕ଟ͍͕݁ہɺΠϯϑϥ͓͡͞Μʹ
ੵ͞ΕΔ • PaaS/FaaSͷ࣮͕গͳ͍ͷແͳIaaSΛఏҊ͕ͪ͠ͳͷ͔ 33
ٕज़తͳ՝Ҏ֎ʹ • ͦͦΤϯδχΞ͕Γͳ͍ɾɾ • PL/PMΛग़དྷΔΤϯδχΞͷෆ • ग़དྷͳ͍ͱ͍͏ΑΓػձ͕গͳ͍ • ίετʹ͍ͭͯߟ͑Δػձগͳ͍ •
ཁ݅ఆ͔ٛΒೖΕΔΤϯδχΞͷෆ • ͬͱͨ͠ཁ݅Λܗʹ͢Δϓϩηε • গͳ͍ใ͔Βฉ͖ग़͢ώΞϦϯάྗ • ۀܥγεςϜத৺ͩͬͨࠒͷํ্͕ྲྀఔʹৄ͍͠ਓ͕ଟ͔ͬͨ 34
՝ͨ͘͞Μɾɾ • ϑϩϯτΤϯυɺΠϯϑϥΤϯδχΞͷڧԽ • ΤϯδχΞͷ࠾༻ڧԽ • PL/PMͷෆ • ཁ݅Λฉ͖औΔྗɺώΞϦϯάྗ •
Ϛωδϝϯτ 35
՝ղܾͷͨΊʹ 36
ϑϩϯτΤϯυྗͷڧԽ • ༗ࢤʹΑͬͯࣾษڧձ͕ʑ։࠵͞ΕΔΑ͏ʹͳͬͨ • 115 • αόΠόϧTypescriptʢhttps://typescriptbook.jp/ʣ • React Docsʢbit.ly/3PuyxF1ʣ
• type-challenges (bit.ly/3Yjqb73) 37
όοΫΤϯυྗͷڧԽ • FirebaseϋϯζΦϯ • FirebaseΛ༻͍ͯͨ͠ϝϯόʔ͕த৺ͱͳͬͯ • ࣮࡞ΓͷͨΊʹϋϯζΦϯޙʹࣾγεςϜͷϦϓϨʔεத • IaaSͰͷߏங࣌ʹΠϯϑϥ͓͡͞Μ͕ϖΞϓϩతʹαϙʔτ •
ߏங͢ΔॱংࢦࣔΛग़ͯ͠ɺجຊखΛಈ͔ͯ͠Β͏ • ࣌ʹ࠲ֶަ͑ͳ͕ΒɺखॱॻΛͳͧΔ͚ͩͷߏஙආ͚ͨ 38
ΤϯδχΞ࠾༻ͷڧԽ 39 • Ҏલɺܦݧऀͷத్࠾༻Λத৺ʹߦ͖ͬͯͨ • ͜͜࠷ۙɺଞۀछ͔ΒͷԠื͕૿͍͑ͯΔ • ܦݧ͕ແͯ͘ɺεΫʔϧͰֶΜͰ͍ͨΓɺҙཉ͕͋Γͦ͏ͳਓ࠾༻ͯ͠ ҭͯΔํʹࢹΛม͑ͯΈͨ
• ࠷ॳWebͷΈΛཧղͯ͠Β͏ͨΊʹPython/Django • ֓Ͷ3ϲ݄Ͱجຊతͳ͜ͱΛʹண͚ͯΒ͏͜ͱΛඪ • ۙͷୡ100% • ߹Θͤͯ3ϲ݄ҎʹPythonΤϯδχΞೝఆͷऔಘΛࢦͯ͠Β͏ • ࣄલֶशʢUdemy/PyQ/࠲ֶɹϨϕϧʹԠͯ͡ʣ
ϓϩδΣΫτʢOJTʣ࣌ͷ • ͍ͬͯΔ͜ͱɺ͔Βͳ͍͜ͱΛݴޠԽͯ͠Β͏ • ʮใʯʹͭͿ͘ • ʹͳΔҊ݅ΛͬͯΒ͏ɻқͯ͘ઌʹܨ͕Βͳ͍ͷ Ҋ݅ʹΞαΠϯ͠ͳ͍ •
͓٬༷ͱͷϛʔςΟϯάʹࢀՃͯ͠Β͏ʢ༷ௐɻ༧ࢉௐͷʹʣ 40
Ҋ݅ͷࣄྫ • طଘͷWebΞϓϦέʔγϣϯͷωΠςΟϒΞϓϦΛ࡞Γ͍ͨ • طଘͷΈREST APIΛΈࠐΊऴΘΔ • ΞʔΩςΫνϟ͕CGIͷPHPɾɾ • ςϯϓϨΛ࡞ͬͯ͋͛ͯɺͦΕΛϕʔεʹ։ൃ͢Ε࠷খݶͷίετͰରԠͯ͠རӹ
ߴͦ͏ɾɾ • ͔͠͠ɾɾ • ࠓޙɺฐࣾͰͲ͜·ͰอकͰ͖Δͷ͔ɾɾ • ৽ਓͷΤϯδχΞͷͨΊʹͳΔͷ͔ɾɾ 41
࠷ॳͷҊ͔݅ͩΒͦ͜ 42
ޭମݧΛͯ͠ཉ͍͠ 43
ͬͨ͜ͱ • ͓٬༷ʹઆ໌ͯ͠ɺ։ൃඅͷҰ෦ΛฐࣾͰ࣋ͪग़ͯ͠TS/React + Python/DRF ͰϦϓϨʔεͤͯ͞Βͬͨ • ൺֱతখ͞Ίͳ༷ͩͬͨͷͰɺϦόʔεΤϯδχΞϦϯάग़དྷͨ • UI/UX͕γϯϓϧͳͷͩͬͨͷͰɺϦονͳͷʹมߋ͢Δͱ͍͏͜ͱͰ
͝ཧղΛ͍ͨ • ࣾతʹ࣍ͷҊ͕݅ݟ͍͑ͯͨͷͰɺ෦ௐ͔ͬͨ͢͠ 44
ͬͨ݁Ռ • React/TSͷجຊతͳྲྀΕΛशಘग़དྷͨ • ఆྔతͳධՁग़དྷ͍ͯͳ͍ɾɾ • ͓٬༷ͱ༷ͷௐΛ͢ΔʹཱͪձΘͤΔ͜ͱ͕ग़དྷͨ • ཪෲͰௐͷ͠͞௧ײ͍ͯͨ͠ͱࢥ͏ɾɾ •
ࢲ͕React/TSʹ׳Ε͍ͯͳ͔ͬͨͷͰɺ৺ʑυΩυΩͰ͋ͬͨ 45
·ͱΊ • Webۀքਐ݄าͳͷͰɺͲͷٕज़Λ༏ઌ͖͔͢அ͍͠ • TypeScriptඞਢͷͳͷͰֶΜͰ͓͍ͯଛͳ͍ • WebͷجຊతͳྲྀΕΛཧղ͢ΔͨΊʹɺͳΜΒ͔ͷWebϑϨʔϜϫʔΫʹ৮Εͯ ͓͘ͷ͕ۙಓɻฐࣾͷ߹ɺDjangoɻ
• ະܦݧऀͷํՄೳੑͷմ • ग़དྷΔࣄΛ༩͑ΔͷͰͳ͘ग़དྷΔΑ͏ʹͳΔͨΊͷࣄΛௐ͢Δ • Γߕ൹ͷ͋ΔࣄΛఏڙͯ͠૬ஊ͍͢͠ڥΛ࡞Δ͜ͱ͕େࣄ 46
Thanks to Stapyʂʂ 47
ΤϯδχΞઈࢍืूத 48 https://bit.ly/3lYrqY7