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
Google Apps Scriptを使いこなさない方法
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
kondo_script
September 26, 2023
Programming
1
1.1k
Google Apps Scriptを使いこなさない方法
WE PROVIDE THE APIS "AS IS"!
kondo_script
September 26, 2023
Tweet
Share
More Decks by kondo_script
See All by kondo_script
React Nativeで 防衛戦をする方法
efbmzwyk999
0
100
Other Decks in Programming
See All in Programming
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
200
CDIの誤解しがちな仕様とその対処TIPS
futokiyo
0
200
CSC307 Lecture 13
javiergs
PRO
0
320
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
440
RAGでハマりがちな"Excelの罠"を、データの構造化で突破する
harumiweb
9
2.8k
AI時代のシステム設計:ドメインモデルで変更しやすさを守る設計戦略
masuda220
PRO
5
890
API Platformを活用したPHPによる本格的なWeb API開発 / api-platform-book-intro
ttskch
1
130
文字コードの話
qnighy
44
17k
What Spring Developers Should Know About Jakarta EE
ivargrimstad
0
400
Go1.26 go fixをプロダクトに適用して困ったこと
kurakura0916
0
360
AI Assistants for Your Angular Solutions
manfredsteyer
PRO
0
130
GC言語のWasm化とComponent Modelサポートの実践と課題 - Scalaの場合
tanishiking
0
110
Featured
See All Featured
Are puppies a ranking factor?
jonoalderson
1
3.1k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
110
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.1k
The agentic SEO stack - context over prompts
schlessera
0
690
The Invisible Side of Design
smashingmag
302
51k
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
1
1.3k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.6k
Thoughts on Productivity
jonyablonski
75
5.1k
The browser strikes back
jonoalderson
0
780
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
860
Exploring anti-patterns in Rails
aemeredith
2
290
Abbi's Birthday
coloredviolet
2
5.3k
Transcript
Google Apps Scriptを 使いこなさない方法 Yuuki Kondo
名前:近藤 裕輝(こんどう ゆうき) twitter: @kondo_script 所属:株式会社オトバンク 職業:TypescriptとTDDだいすきエンジニア インフラ/サーバ/フロント/アプリを広く薄く 趣味:スパゲッティを料理すること 自己紹介
オーディオブックで すきま時間にインプット
今日のテーマ
ようするに Google Apps Scriptとの 付き合い方
• Google Workspaceからシュッとつかえるjavascriptランタイム ◦ 環境構築不要ですぐ使える ▪ その割に高性能なエディタ ◦ APIがシュッと作れる ◦
トリガ機能でバッチが作れる ◦ 無料で使える Google Apps Script とは
• Google Workspaceの各アプリのAPIを簡単に呼び出し / 統合できる • 実務でも割と使う ◦ 使用例(体験談) ▪
Google Spread Sheetsで簡単な社内ツールを組む • slackと連携してちょっとした社内の運用改善 • 会計請求業務効率化 ▪ Google Formの結果をゴニョゴニョする ▪ Google Docsで議事録をいい感じに運用する ▪ ちょっとしたプロトタイプのAPI Google Apps Script とは
最高か???
・・・作った直後はね
• バージョン管理や単体テストが(ほぼ)できない ◦ ローカルでgasのコードが書けるclaspというツールはあるがメン テ止まってる(非推奨) • トリガやら権限やらの設定が属人化前提の作りになっている • Google Workspaceのアプリの内容と密結合しがち
• 業務に合わせているうちに機能が肥大化しがち なにがつらいのか
• APIクオータが実際にはなにも保証していない なにがつらいのか 利用規約ではこんな一文も。。。
なにがつらいのか WE PROVIDE THE APIS "AS IS". 訳:動いてなければ動かないですね
なにがつらいのか
結論 Google Apps Scriptはダイソー
ここで一つ困ったこと ベンチャー企業 ダイソーで買い物しがち問題
使いこなさないように使う • 動かなくなるものとして使う • ハックしないで使う • 卒業する計画をたてながら使う
動かなくなるものとして使う • リスクを周知して期待値調整 ◦ どんなに小さな機能でも動かないとパニックになりがち ▪ 人類は業務が不自由になることに耐えられない • 特に引き継ぎはできないものと考える ◦
検証環境作るのが不可能になりがち ◦ テストがないのですべてレガシーコードです(TDD過激派)
ハックしないで使う • Google Apps Scriptをで凝ったものを作るときはだいたい技術選定 が間違っている ◦ 「ハックするメリット > 後のメンテナンスコスト」になる事はほぼな
い(n=3くらいの経験則) ◦ google workspaceをハックすることになるので、情シスの仕事 とコンフリクトしたりする • hyrumの法則に引っ張られてないか気をつけよう
hyrumの法則 あるAPIに十分な数のユーザーがいるとき、API を作った者自身が契約仕様として何を約束して いるかは重要ではない。作られたシステムが持 つあらゆる観察可能(observable)な挙動に関し て、それに依存するユーザーが出てくるもので ある。 「Googleのソフトウェアエンジニアリング」より引用
hyrumの法則 • 要するに ◦ 人類は保証されてない仕様に依存した実装をしがち ▪ ex)リファレンスに書かれていないエラーをハンドリングし た実装 ◦ APIを作る側はそれに気をつけてメンテしよう
▪ と、googleの中の人も(たぶん)考えているのでGoogle Apps Scriptはある程度動く安定して動く ◦ とはいえ、APIを使う側は突然壊れても文句言えない
卒業する計画を立てながら使う • 業務知識を含むコードのポータビリティを確保する ◦ ドメインのコードがGoogle Apps Scriptに依存しないようにする ◦ 部分的にCloud Functionに移行してユニットテストを書く
卒業する計画を立てながら使う • プロトタイプの場合でもシステムからgoogle workspaceやGoogle Apps ScriptのAPIを呼ばない ◦ 可能な限り出力したjsonやcsvに依存するようにする ◦ どうしてもやらなければいけない時はcloud
functionなどでラッ プして呼び出す(特にiOS/Androidアプリ) ▪ APIとして作っておけば後で差し替えできる ▪ 最終責任時点を意識して技術の決定を遅らせる
まとめ兼感想 • なんだかんだでGoogle Apps Scriptは業務で使われてしまう • 用法・用量を守って使う分には便利 ◦ 合言葉はWE PROVIDE
THE APIS "AS IS"!!!!!! • とはいえ本質的な解決にはならないので剥がせる剥がそう • ファジーでシンプルなツールだからこそ設計と運用が重要 ◦ プログラミングの原理原則を意識・活用できて楽しい ◦ それ以上につらかったけどな!!!! おわり