$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Google Apps Scriptを使いこなさない方法
Search
kondo_script
September 26, 2023
Programming
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
94
Other Decks in Programming
See All in Programming
JETLS.jl ─ A New Language Server for Julia
abap34
1
360
複数人でのCLI/Infrastructure as Codeの暮らしを良くする
shmokmt
5
2.3k
令和最新版Android Studioで化石デバイス向けアプリを作る
arkw
0
390
開発に寄りそう自動テストの実現
goyoki
1
860
30分でDoctrineの仕組みと使い方を完全にマスターする / phpconkagawa 2025 Doctrine
ttskch
3
820
C-Shared Buildで突破するAI Agent バックテストの壁
po3rin
0
380
dotfiles 式年遷宮 令和最新版
masawada
1
760
sbt 2
xuwei_k
0
270
SwiftUIで本格音ゲー実装してみた
hypebeans
0
160
手が足りない!兼業データエンジニアに必要だったアーキテクチャと立ち回り
zinkosuke
0
630
tparseでgo testの出力を見やすくする
utgwkk
1
200
俺流レスポンシブコーディング 2025
tak_dcxi
14
8.6k
Featured
See All Featured
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
390
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.8k
It's Worth the Effort
3n
187
29k
The Language of Interfaces
destraynor
162
25k
The Art of Programming - Codeland 2020
erikaheidi
56
14k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
54k
Building Adaptive Systems
keathley
44
2.9k
BBQ
matthewcrist
89
9.9k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
196
70k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
253
22k
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"!!!!!! • とはいえ本質的な解決にはならないので剥がせる剥がそう • ファジーでシンプルなツールだからこそ設計と運用が重要 ◦ プログラミングの原理原則を意識・活用できて楽しい ◦ それ以上につらかったけどな!!!! おわり