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
GASで始めるサーバーレス 頑張らない社内アプリケーション開発
Search
t-yng
August 31, 2019
Technology
1
290
GASで始めるサーバーレス 頑張らない社内アプリケーション開発
builderscon tokyo 2019 LT 登壇資料
https://builderscon.io/tokyo/2019
t-yng
August 31, 2019
Tweet
Share
More Decks by t-yng
See All by t-yng
ChatGPTを活用した英文添削アプリケーション個人開発.pdf
tyng
0
51
型からモックデータ生成コードを自動生成する
tyng
0
42
WebAssemblyでオセロを作ってみた
tyng
0
350
Other Decks in Technology
See All in Technology
OCI Vault 概要
oracle4engineer
PRO
0
9.7k
RubyのWebアプリケーションを50倍速くする方法 / How to Make a Ruby Web Application 50 Times Faster
hogelog
3
940
Shopifyアプリ開発における Shopifyの機能活用
sonatard
4
250
SREが投資するAIOps ~ペアーズにおけるLLM for Developerへの取り組み~
takumiogawa
1
220
第1回 国土交通省 データコンペ参加者向け勉強会③- Snowflake x estie編 -
estie
0
130
Exadata Database Service on Dedicated Infrastructure(ExaDB-D) UI スクリーン・キャプチャ集
oracle4engineer
PRO
2
3.2k
TypeScript、上達の瞬間
sadnessojisan
46
13k
AGIについてChatGPTに聞いてみた
blueb
0
130
いざ、BSC討伐の旅
nikinusu
2
780
隣接領域をBeyondするFinatextのエンジニア組織設計 / beyond-engineering-areas
stajima
1
270
OCI 運用監視サービス 概要
oracle4engineer
PRO
0
4.8k
Making your applications cross-environment - OSCG 2024 NA
salaboy
0
190
Featured
See All Featured
Mobile First: as difficult as doing things right
swwweet
222
8.9k
Thoughts on Productivity
jonyablonski
67
4.3k
Building Your Own Lightsaber
phodgson
103
6.1k
Happy Clients
brianwarren
98
6.7k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
42
9.2k
[RailsConf 2023] Rails as a piece of cake
palkan
52
4.9k
Optimising Largest Contentful Paint
csswizardry
33
2.9k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
246
1.3M
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
25
1.8k
Building Applications with DynamoDB
mza
90
6.1k
Designing for humans not robots
tammielis
250
25k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
27
840
Transcript
GASͰ࢝ΊΔαʔόʔϨε ؤுΒͳ͍ࣾΞϓϦέʔγϣϯ։ൃ Builderscon Tokyo 2019 LT
ࣗݾհ • ༄ ྙߒʢͳ͗ ͱͻΖʣ • @TGreenmonkey (t-yng) • Hamee
גࣜձࣾ ɾϑϩϯτΤϯυ͕͖ ɾझຯͰ Flutter Λษڧத
ձࣾͰͷͱ͋ΔͰ͖͝ͱ...
͓ޓ͍ͷ͜ͱΛΔͨΊʹ ࣾ༻ͷࣾһͷϓϩϑΟʔϧ ϖʔδΛ࡞ͬͯ΄͍͠Ͱ͢ ͍͍Ͱ͢Α
͓ޓ͍ͷ͜ͱΛΔͨΊʹࣾһ ͷϓϩϑΟʔϧϖʔδΛ࡞ͬͯ ΄͍͠Ͱ͢ ͍͍Ͱ͢Α ࣾͷϓϩϑΟʔϧϖʔδΛ ։ൃ͢Δ͜ͱʹͳͬͨ
ϓϩϑΟʔϧϖʔδͷཁ݅ ɾࣾͷϓϩϑΟʔϧϖʔδ͕ཉ͍͠ ɾϓϩϑΟʔϧใࣾһ͕ࣗ༝ʹฤूՄೳ ɾमਖ਼݁ՌϦΞϧλΠϜʹө
None
࠷ॳͷΠϝʔδ ϓϩϑΟʔϧΛฤू Ͱ͖Δը໘ ૢ࡞ ߋ৽ ϓϩϑΟʔϧҰཡ ϓϩϑΟʔϧϖʔδ Ӿཡ ϓϩϑΟʔϧ HTML
ੜ ΞϓϦέʔγϣϯαʔόʔ
ͪΐͬͱͬͯʂʂ
ϓϩϑΟʔϧϖʔδΛϖʔδ ࡞Δ͚ͩͩΑͶʁ
࠷ॳͷΠϝʔδ ϓϩϑΟʔϧΛฤू Ͱ͖Δը໘ ૢ࡞ ߋ৽ ϓϩϑΟʔϧҰཡ ϝϯόʔհϖʔδ Ӿཡ ϓϩϑΟʔϧ HTML
ੜ ΞϓϦέʔγϣϯαʔόʔ
࠷ॳͷΠϝʔδ ϓϩϑΟʔϧΛฤू Ͱ͖Δը໘ ૢ࡞ ߋ৽ ϓϩϑΟʔϧҰཡ ϝϯόʔհϖʔδ Ӿཡ ϓϩϑΟʔϧ HTML
ੜ ΞϓϦέʔγϣϯαʔόʔ ͗͢ͳ͍ʁʁ
ແବʹ͔͔࣌ؒΓͦ͏ %#ͱ͔αʔόʔͷཧΓͨ͘ͳ͍
ಇ͖ͨ͘ͳ͍ʂʂ
GASΛͬͯ ؆୯ʹղܾͰ͖ΔΜ͡Όͳ͍ʁ
GASͱʁ ɾGoogle͕։ൃͨ͠εΫϦϓτϓϥοτϑΥʔϜ ɾεϓϨουγʔτͳͲͷυΩϡϝϯτͱ࿈ܞ͕Մೳ ɾdoPost, doGet ؔͰPOSTɺGETϦΫΤετ ɹΛॲཧͰ͖Δ ɾHTMLService Λར༻ͯ͠ɺHTMLฦ͢͜ͱ͕Ͱ͖Δ
=> ؆қతͳWebαʔόʔɺAPIαʔόʔͱͯ͑͠Δ
ϓϩϑΟʔϧΛฤू Ͱ͖Δը໘ ૢ࡞ ߋ৽ ϓϩϑΟʔϧҰཡ ϓϩϑΟʔϧϖʔδ Ӿཡ ϓϩϑΟʔϧ HTML ΞϓϦέʔγϣϯαʔόʔ
ฤूը໘ΛͲ͏ʹ͔͢Δ
ૢ࡞ ߋ৽ ϓϩϑΟʔϧҰཡ ϓϩϑΟʔϧϖʔδ Ӿཡ ϓϩϑΟʔϧ HTML ΞϓϦέʔγϣϯαʔόʔ Google Sheets
Λར༻
ૢ࡞ ߋ৽ ϓϩϑΟʔϧҰཡ ϓϩϑΟʔϧϖʔδ Ӿཡ ϓϩϑΟʔϧ HTML ΞϓϦέʔγϣϯαʔόʔ DBΛͲ͏ʹ͔͢Δ
ૢ࡞ ϓϩϑΟʔϧϖʔδ Ӿཡ ϓϩϑΟʔϧ HTML ΞϓϦέʔγϣϯαʔόʔ ɾDBͱͯ͠ར༻ ɾdoPost ؔͰAPIαʔόʔͱͯ͠ಈ࡞ APIαʔόʔ
ૢ࡞ ϓϩϑΟʔϧϖʔδ Ӿཡ ϓϩϑΟʔϧ HTML ΞϓϦέʔγϣϯαʔόʔ ϓϩϑΟʔϧҰཡ ΞϓϦέʔγϣϯαʔόʔ ΛͲ͏ʹ͔͢Δ
ૢ࡞ ϓϩϑΟʔϧϖʔδ Ӿཡ ϓϩϑΟʔϧ HTML Webαʔόʔ ϓϩϑΟʔϧҰཡ ɾdoGetؔ + HTMLService
ɹͰHTMLΛฦ͢ ɾಈతͳHTMLͷੜ͕͍͠ ɾը໘ߏஙΛͲ͏͢Δ͔ʁ
ૢ࡞ ϓϩϑΟʔϧϖʔδ ʢSPAʣ Ӿཡ ੩తHTML Webαʔόʔ APIαʔόʔ ϓϩϑΟʔϧ ʢfetchͰऔಘʣ SPAʢγϯάϧϖʔδΞϓϦέʔγϣϯʣͰ࣮ͯ͠ϑϩϯτͰը໘Λߏங
SPAͰ࣮͢ΔͳΒ React ͍͍ͨ
ਓͱͯ͠ͷ͕͞ʢஊͰ͢ʣ
ૢ࡞ ϓϩϑΟʔϧϖʔδ ʢSPAʣ Ӿཡ ੩తHTML Webαʔόʔ APIαʔόʔ ϓϩϑΟʔϧ ʢajaxͰऔಘʣ ɹ੩తͳHTML͔͠ฦͤͳ͍
React Ͳ͏Έ͜͏ʁ SPAʢγϯάϧϖʔδΞϓϦέʔγϣϯʣͰ࣮ͯ͠ϑϩϯτͰը໘Λߏங
ϏϧυࡁΈ js, css શ෦ೖΓͷ ੩తHTML Λੜ 1. js, css ΛϏϧυɺόϯυϧ
ͯ͠ bunlde.js Λੜ 2. bundle.js Λ jantimon/html-webpack-pluginΛͬͯ HTMLʹΠϯϥΠϯల։ ΠϯϥΠϯల։ Ϗϧυ Ϗϧυ bundle.js
webpack.common.js
ΠϯϥΠϯʹల։
GASͷσϓϩΠ google/clasp Ͱ GAS ʹ ੩తHTML ΛσϓϩΠ What is clasp?
Google͕ެࣜͰఏڙ͍ͯ͠ΔCLIͰGASϓϩδΣΫτΛཧͰ͖Δπʔϧ GASͷө͜Ε͚ͩͰྃ
ૢ࡞ ϓϩϑΟʔϧϖʔδ ʢSPAʣ Ӿཡ ϓϩϑΟʔϧ ʢajaxͰऔಘʣ ੩తHTML Webαʔόʔ ϓϩϑΟʔϧҰཡ ࠷ऴߏ
ϩʔΧϧϏϧυ HTMLΛσϓϩΠ/clasp ͬͨͶʂ ʌ(ˏʈ˜ʈˏ)ů
·ͱΊ ɾGAS + SPA + Clasp ɹͰ͓खܰʹαʔόʔϨεͳ։ൃΛ࣮ݱͰ͖Δ ɾ؆୯ͳ͚ࣾͷΞϓϦέʔγϣϯͳΒίϨͰे ʢͨͩ૾Ҏ্ʹ͍ =>
ରࡦ͢Εૣ͘ͳΔ͔ʣ
͓ΘΓ