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
バックエンドエンジニアの私がお勧めする SPAフロントエンド開発環境
Search
Kaz Watanabe
July 25, 2020
Technology
6.3k
6
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
バックエンドエンジニアの私がお勧めする SPAフロントエンド開発環境
@July Tech Festa 2020
Kaz Watanabe
July 25, 2020
More Decks by Kaz Watanabe
See All by Kaz Watanabe
開発エンジニアが取り組む DevSecOps ~ GitHub Enterprise × Azure での実践~
kaz29
0
38
Greenは本当にGreenか? - B/GデプロイとAPI自動テストで安心デプロイ
kaz29
1
200
CI/CD/IaC 久々に0から環境を作ったらこうなりました
kaz29
1
490
開発エンジニアが実践するDevSecOps
kaz29
0
170
PHPCon福岡2024-Azureもなかなかいいですよ.pdf
kaz29
2
380
Azure Container Apps + Bicep 〜 こんな感じで運用しています
kaz29
3
1.3k
20220908_フロントエンドパフォーマンス改善.pdf
kaz29
2
200
PHP製のPodCast配信用WebアプリをReact+Next.jsなSSGで作り直してみた話
kaz29
3
720
201909-PHPCon北海道-PHPでCI_CD.pdf
kaz29
0
4.2k
Other Decks in Technology
See All in Technology
Digitization部 紹介資料
sansan33
PRO
2
7.7k
Eight Engineering Unit 紹介資料
sansan33
PRO
3
8.1k
바이브풀 라이프
arawn
0
100
LLM・AIエージェントシステムベストプラクティス
shibuiwilliam
2
490
Bill One 開発エンジニア 紹介資料
sansan33
PRO
7
19k
【Google Cloud Next Tokyo'26】Gemini Enterprise と Oracle AI Database で実現する、業務データ活用を実現する AI エージェント実装
shisyu_gaku
0
230
Redmine 7.0 新機能・機能強化解説(OSC2026京都ダイジェスト版)
vividtone
1
210
AI時代の強いチームの作り方
yuukiyo
26
16k
つくって納得、つかって実感! 大規模言語モデルことはじめ ver2.0
recruitengineers
PRO
3
1.2k
【CEDEC2026】コードレビュー支援ツール開発から学ぶ:LLMを用いた業務システムの実践的な運用設計と誤出力対策
cygames
PRO
0
630
[ChatGPT Work LT]事務作業が苦手な人のための バックオフィスの「半」自動化
chimaki_iot
0
250
トヨタ⽣産⽅式(TPS)⼊⾨
recruitengineers
PRO
2
640
Featured
See All Featured
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
930
New Earth Scene 8
popppiees
3
2.5k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.3k
Automating Front-end Workflow
addyosmani
1370
210k
RailsConf 2023
tenderlove
30
1.5k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.1k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
200
Balancing Empowerment & Direction
lara
6
1.2k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.3k
Are puppies a ranking factor?
jonoalderson
1
3.8k
First, design no harm
axbom
PRO
2
1.2k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Transcript
Θͨͳ!LB[@ όοΫΤϯυΤϯδχΞͷࢲ͕͓קΊ͢Δ 41"ϑϩϯτΤϯυ։ൃڥ !+VMZ5FDI'FTUB
8)0 ลҰ (Θͨͳ ͔ͣͻΖ) @kaz_29 גࣜձࣾϋʔτϏʔπ ։ൃࣄۀ෦
גࣜձࣾϋʔτϏʔπ ຊۀMSPͷձࣾͰɺ ։ൃࣄۀΛ͍ͬͯ·͢ɻ
IC4","#" QPEDBTUͬͯ·͢
ΑΖ͓͘͠Ͷ͕͍͠·͢
'SPOUFOE8FC%FWFMPQNFOU
None
શ෦ΩϟονΞοϓͱ͔ͭΒΊ
৽͍͠ΞϓϦΛ࡞Γ࢝ΊΔ ͱ͖ʹຖճڥઃఆʹΉ
͙͢ʹ࡞Γ࢝ΊΒΕͯɺ ؾ࣋ͪΑ͘։ൃΛਐΊΒΕΔ ͓͢͢Ίͷશ෦ೖΓͷ ࣗ༻CPJMFSQMBUFͬΆ͍ͷ͕ཉ͍͠
ٕज़ཁૉ
ٕज़ཁૉ w 3FBDUIUUQTKBSFBDUKTPSH w .PC9IUUQTNPCYKTPSH3&"%.&IUNM w /FYU+4IUUQTOFYUKTPSH w UZQFTDSJQUIUUQTXXXUZQFTDSJQUMBOHPSH w
NBUFSJBMVJIUUQTNBUFSJBMVJDPN w TUPSZCPPLIUUQTTUPSZCPPLKTPSH w KFTUIUUQTKFTUKTJP
ٕज़ཁૉ 3FBDU w 'BDFCPPLۘͷ+BWB4DSJQUϑϨʔϜϫʔΫ w "OHVMBSͱ͔7VFͱ͔ͱΑ͘ൺΒΕΔ w ࠃͰ7VF͕ਓؾ w
ࠓճ͍׳Εͨ3FBDUͰ͢͢Ί·͢
ٕज़ཁૉ .PC9 w εςʔτΛཧ͢Δπʔϧ w 3FEVYͷସ͑ w ͓खܰ w ͍֮͑͢
w ॻ͘ίʔυྔ͕গͳ͍ w ෦ίʔυ͕ෳࡶ ࠇຐज़ͬΆ͍ ͷͰσόοά͕͍͠ w ࢲࠓ·Ͱࠔͬͨ͜ͱͳ͍ w ͦͦάϩʔόϧͳεςʔτඞཁ࠷ݶʹͯ͠ଟ༻͠ͳ͍ํ͕ྑ͍ ؾ͕͢Δ
ٕज़ཁૉ /FYU+4 w 6OJWFSTBM *TPNPSQIJD +BWB4DSJQUϑϨʔϜϫʔΫ w 443ରԠ w γϯϓϧͰೖ͍͢͠
w ͚Ͳ͍͜ͳ͢ͱ৭ʑͰ͖Δ w SPVUJOHΛॻ͔ͳͯ͘ྑ͍ ॻ͘͜ͱͰ͖Δ w 4UBUJD)5.-&YQPSU
ٕज़ཁૉ UZQFTDSJQU w ϚΠΫϩιϑτ͕։ൃͨ͠Φʔϓϯιʔεݴޠ ͬ͘͟Γݴ͏ͱํఆ͕ٛͰ͖Δ+BWB4DSJQU w +BWB4DSJQUͷεʔύʔηοτ w ܕɺΠϯλʔϑΣʔεɺΫϥεͳͲͳͲ͕͑Δ w
δΣωϦοΫ͕͑Δ w *%&͕ڧྗʹαϙʔτͯͯ͘͠ΕΔ
ٕज़ཁૉ NBUFSJBMVJ w 3FBDU͚6*ίϯϙʔωϯτϥΠϒϥϦ w (PPHMFͷ.BUFSJBMσβΠϯΛϕʔεʹ։ൃ w ๛ͳػೳ w 5IFNF
w ϨεϙϯγϒରԠػೳ
ٕज़ཁૉ TUPSZCPPL w ίϯϙʔωϯτ୯ҐͰαϯυϘοΫεͰ։ൃͰ͖Δ w ๛ͳϓϥάΠϯ w BEEPOWJFXQPSU w BEEPOJO
w ίϯϙʔωϯτΛҰཡͰڞ༗Ͱ͖Δ w Χλϩά w υΩϡϝϯτ w ςετ ͖ͷະணखͰΑ͘Θ͔͍ͬͯͳ͍
ٕज़ཁૉ KFTU w +BWB4DSJQU༻ςεςΟϯάϑϨʔϜϫʔΫ w ίʔυΧόϨοδ w ϞοΫ w ϑϩϯτΤϯυ։ൃͷςετʹ͍ͭͯࡧத
w DVTUPNIPPLͷॲཧͷςετ w σʔλͷՃΛ͏ॲཧͷςετ
CPJMFSQMBUF
CPJMFSQMBUF w લग़ͷٕज़ཁૉΛશͯΈࠐΉ w )FMMP 8PSMEͰͳ࣮͘ࡍʹಈ͘ίʔυαϯϓϧΛؚΉ w 4UPSF w "1*࿈ܞ
w ͲΜͳ;͏ʹ։ൃ͍ͯ͠Δ͔ ͋Δఔ Έ͑Δ w 4UBUJD)5.-&YQPSU w ϩʔΧϧͰͷಈ࡞֬ೝڥ w σϓϩΠ
αϯϓϧΞϓϦ https://www.weatherapi.com/api.aspx
αϯϓϧΞϓϦ
αϯϓϧΞϓϦ w UZQFTDSJQU w 'VODUJPO$PNQPOFOU w )PPLT
None
։ൃͷਐΊํ
։ൃͷਐΊํ w OPEFOW IUUQTHJUIVCDPNOPEFOWOPEFOW w %PDLFS%FTLUPQGPS.BD IUUQTIVCEPDLFSDPNFEJUJPOTDPNNVOJUZEPDLFSDFEFTLUPQ NBD
։ൃͷਐΊํ ίϯϙʔωϯτΛ࣮ w ZBSOTUPSZCPPL TUBSUTUPSZCPPLQTQVCMJD IPUSFMPBE WJFXQPSUΛସ͑ͯQDNPCJMFͷݟͨΛ֬ೝ ݴޠΛସ͑ͯදࣔ֬ೝTUBUJDXFCͰͷରԠݕ౼த
։ൃͷਐΊํ ίϯϙʔωϯτΛ࣮ 1 import React from 'react' 2 import {
storiesOf } from '@storybook/react' 3 import WeatherCard from '.' 4 import { currentWeather } from '~/__fixtures__/current_weather' 5 6 storiesOf('components/WeatherCard', module) 7 .add('default', () => ( 8 <WeatherCard 9 currentWeather={currentWeather} 10 /> 11 )) JOEFYTUPSJFTUTY
։ൃͷਐΊํ υϝΠϯϩδοΫͷ࣮ w ZBSOUFTU /0%&@&/7UFTUKFTUOPDBDIFFOWKTEPN 6OJU5FTUΛॻ͖ͳ͕Β࣮ AZBSOUFTUGϑΝΠϧ໊Uςετ໊A $PNQPOFOUͷςετͪΐͬͱΑ͘Θ͔ΒΜ ҙຯ͕͋ΔςετΛ͔͚Δ͔
։ൃͷਐΊํ ΞϓϦͷ࣮ w ZBSOEFW OFYUEFW IPUSFMPBE ಈ࡞֬ೝ͠ͳ͕Β։ൃ
։ൃͷਐΊํ ZBSOTUPSZCPPL ZBSOEFW ίʔυमਖ਼ $PNQPOFOUͷ࣮ ಈతͳڍಈͷ࣮ IPUSFMPBE ZBSOUFTU %PNBJOMPHJDͳͲ ͷ6OJU5FTU
։ൃڥ ࠷ऴ֬ೝ 4UBUJD)5.-&YQPSUͨ͠੩తϑΝΠϧ w ZBSOCVJME OFYUCVJMEOFYUFYQPSU 4UBUJD&YQPSUͰBSUJGBDUΛ࡞ w EPDLFSDPNQPTFVQE
OHJOYίϯςφܦ༝Ͱಈ࡞֬ೝ
։ൃڥ ࠷ऴ֬ೝ 4UBUJD)5.-&YQPSUͨ͠੩తϑΝΠϧ 1 version: '3.1' 2 3 services: 4
nextjs-template: 5 container_name: nextjs-template 6 image: nginx:latest 7 ports: 8 - 80:80 9 volumes: 10 - ./out:/usr/share/nginx/html:cached 11 - ./nginx.conf.d:/etc/nginx/conf.d 12 restart: always
։ൃڥ ࠷ऴ֬ೝ 4UBUJD)5.-&YQPSUͨ͠੩తϑΝΠϧ ϖʔδભҠઌͰϦϩʔυ͢Δͱ/PU'PVOE
։ൃڥ ࠷ऴ֬ೝ 4UBUJD)5.-&YQPSUͨ͠੩తϑΝΠϧ 1 server { 2 listen 80; 3
server_name localhost; 4 5 #charset koi8-r; 6 #access_log /var/log/nginx/host.access.log main; 7 8 location / { 9 root /usr/share/nginx/html; 10 index index.html index.htm; 11 try_files $uri $uri.html /index.html; 12 } ... ͚ͩ͜͜Ճ
σϓϩΠ
σϓϩΠ σϓϩΠઌͷબࢶ w ͳΜΒ͔8FCαʔόʔΛཱͯΔ w 4UBUJD8FCΛϗετ͢ΔαʔϏεΛ͏ w ֤ΫϥυϕϯμʔͷΦϒδΣΫτετϨʔδ ੩త8FCΛϗετ͢ΔαʔϏε w
"[VSF"QQ4FSWJDF4UBUJD8FC"QQT
σϓϩΠ σϓϩΠઌͷબࢶ w ͳΜΒ͔8FCαʔόʔΛཱͯΔ w 4UBUJD8FCΛϗετ͢ΔαʔϏεΛ͏ w ֤ΫϥυϕϯμʔͷΦϒδΣΫτετϨʔδ ੩త8FCΛϗετ͢ΔαʔϏε w
"[VSF"QQ4FSWJDF4UBUJD8FC"QQT
σϓϩΠ "[VSF4UBUJD8FC"QQT1SFWJFX w ੩తαΠτͷϗεςΟϯάαʔϏε w (JU)VC"DUJPOTʹΑΔ#VJME%FQMPZ (JU)VC࿈ܞඞਢ w ΧελϜυϝΠϯରԠɺ44-ূ໌ॻ
ແྉ ΧελϜυϝΠϯͷઃఆΛ͢Δͱɺࣗಈతʹ44-ূ໌ॻ࡞͞ΕΔ w ϓϨϏϡʔػೳ 13Λ࡞͢ΔͱɺϓϨϏϡʔ൛͕ࣗಈσϓϩΠ͞ΕΔ ϚʔδΫϩʔζ͢Δͱຊ൪ө͞ΕɺϓϨϏϡʔ൛ࣗಈআ w ϓϩϏδϣχϯά࣌ʹσϑΥϧτͷઃఆ͕ࣗಈੜ͞ΕΔ w ΞϓϦΤϯδχΞʹ͍͍͢
σϓϩΠ "[VSF4UBUJD8FC"QQT1SFWJFX
σϓϩΠ "[VSF4UBUJD8FC"QQT1SFWJFX
σϓϩΠ "[VSF4UBUJD8FC"QQT1SFWJFX
σϓϩΠ "[VSF4UBUJD8FC"QQT1SFWJFX
͓·͚
͓·͚ 6OJU5FTUॻ͍ͯɺ(JU)VC"DUJPOTಋೖͨ͠ͷͰ$*͠Α͏ ... 12 jobs: 13 build_and_deploy_job: 14 if: github.event_name
== 'push' || (github.event_name == 'pull_request' && github.event.action != 'closed') 15 runs-on: ubuntu-latest 16 name: Build and Deploy Job 17 steps: 18 - uses: actions/checkout@v2 19 with: 20 submodules: true 21 - name: Setup nodejs 22 uses: actions/setup-node@v1 23 with: 24 node-version: '12.x' 25 - run: yarn install --dev 26 - run: yarn test:ci 27 - name: Build And Deploy 28 id: builddeploy ...
·ͱΊ
·ͱΊ w ϑϩϯτΤϯυ։ൃɺ·ͩ·ͩਐԽ͕͍͛͠ w લͷͬͨࣽ͝ײ ແ͘ͳͬͨʁ w ͲΜͲΜ͍͍ײ͡ʹਐԽͯ͠Δײ w ۤ࿑͢Δ͜ͱ͋Δ͚ͲɺόοΫΤϯυಉ͡
w ϑϩϯτΤϯυ։ൃͨͷ͍͠ &OKPZ https://github.com/kaz29/nextjs-template
͓͠·͍