Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
多様化するWeb業界で活躍できる エンジニアを育てた際に心がけたこと
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Yuichi Nakazawa
December 15, 2022
680
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
950
DjangoによるWebエンジニア育成への道
y_nakazawa
5
9.1k
AWS認定ソリューションアーキテクト アソシエイト 取得への道
y_nakazawa
0
550
みんなのPython勉強会 in 長野 #2 Webグループ オリエン資料
y_nakazawa
3
530
Featured
See All Featured
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
57k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
600
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.6k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.2k
Fireside Chat
paigeccino
42
4k
Making the Leap to Tech Lead
cromwellryan
135
10k
How to build a perfect <img>
jonoalderson
1
6k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
840
Between Models and Reality
mayunak
4
450
Amusing Abliteration
ianozsvald
1
290
30 Presentation Tips
portentint
PRO
1
390
Writing Fast Ruby
sferik
630
63k
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