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
kondo_script
September 26, 2023
Programming
1
470
Google Apps Scriptを使いこなさない方法
WE PROVIDE THE APIS "AS IS"!
kondo_script
September 26, 2023
Tweet
Share
Other Decks in Programming
See All in Programming
AWSでゲームサーバーを運用! Amazon GameLiftのお話
iriikeita
0
200
Activities at Cairo Library
cairolibrary720
0
1.2k
ぼっちを避けて楽しむためのアノテコノテ / Various Tips and Tricks to Avoid Loneliness and Have Fun
nrslib
3
1.7k
Folding Cheat Sheet #7
philipschwarz
PRO
0
150
Async Await: Mastering Python's Time-Bending Tricks - EuroPython2024
yanbo
1
290
SRE チーム立ち上げ前に考えたこと・取り組んだこと / Considerations and Preparations Before Establishing an SRE Team
mackey0225
3
320
最近追加した型の紹介とその振り返り
aki19035vc
0
170
I/O Extended Android in Korea 2024 ~ Whats new in Android development tools
pluu
0
250
How to use Macrobenchmark
veronikapj
0
160
feature環境をGitHub ActionsとCloudFormationでいい感じに管理する
nealle
2
310
AWS初心者ってどうやってAWSを学ぶ?〜アプリエンジニアがやってよかったアーキテクチャ学習方法〜
yamanashi_ren01
0
190
20240706_CDKConf
takuyay0ne
0
1.2k
Featured
See All Featured
Why You Should Never Use an ORM
jnunemaker
PRO
51
8.9k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
155
14k
Building Your Own Lightsaber
phodgson
101
5.9k
Intergalactic Javascript Robots from Outer Space
tanoku
266
26k
Fantastic passwords and where to find them - at NoRuKo
philnash
42
2.7k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
248
20k
Typedesign – Prime Four
hannesfritz
37
2.2k
It's Worth the Effort
3n
181
27k
What the flash - Photography Introduction
edds
65
11k
Thoughts on Productivity
jonyablonski
64
4.1k
RailsConf 2023
tenderlove
16
720
How GitHub (no longer) Works
holman
305
140k
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"!!!!!! • とはいえ本質的な解決にはならないので剥がせる剥がそう • ファジーでシンプルなツールだからこそ設計と運用が重要 ◦ プログラミングの原理原則を意識・活用できて楽しい ◦ それ以上につらかったけどな!!!! おわり