$30 off During Our Annual Pro Sale. View Details »

Google Apps Scriptを使いこなさない方法

kondo_script
September 26, 2023

Google Apps Scriptを使いこなさない方法

WE PROVIDE THE APIS "AS IS"!

kondo_script

September 26, 2023
Tweet

Other Decks in Programming

Transcript

  1. Google Apps Scriptを
    使いこなさない方法
    Yuuki Kondo

    View Slide

  2. 名前:近藤 裕輝(こんどう ゆうき)
    twitter: @kondo_script
    所属:株式会社オトバンク
    職業:TypescriptとTDDだいすきエンジニア
    インフラ/サーバ/フロント/アプリを広く薄く
    趣味:スパゲッティを料理すること
    自己紹介

    View Slide

  3. オーディオブックで
    すきま時間にインプット

    View Slide

  4. 今日のテーマ

    View Slide

  5. ようするに
    Google Apps Scriptとの
    付き合い方

    View Slide

  6. ● Google Workspaceからシュッとつかえるjavascriptランタイム
    ○ 環境構築不要ですぐ使える
    ■ その割に高性能なエディタ
    ○ APIがシュッと作れる
    ○ トリガ機能でバッチが作れる
    ○ 無料で使える
    Google Apps Script とは

    View Slide

  7. ● Google Workspaceの各アプリのAPIを簡単に呼び出し / 統合できる
    ● 実務でも割と使う
    ○ 使用例(体験談)
    ■ Google Spread Sheetsで簡単な社内ツールを組む
    ● slackと連携してちょっとした社内の運用改善
    ● 会計請求業務効率化
    ■ Google Formの結果をゴニョゴニョする
    ■ Google Docsで議事録をいい感じに運用する
    ■ ちょっとしたプロトタイプのAPI
    Google Apps Script とは

    View Slide

  8. 最高か???

    View Slide

  9. ・・・作った直後はね

    View Slide

  10. ● バージョン管理や単体テストが(ほぼ)できない
    ○ ローカルでgasのコードが書けるclaspというツールはあるがメン
    テ止まってる(非推奨)
    ● トリガやら権限やらの設定が属人化前提の作りになっている
    ● Google Workspaceのアプリの内容と密結合しがち
    ● 業務に合わせているうちに機能が肥大化しがち
    なにがつらいのか

    View Slide

  11. ● APIクオータが実際にはなにも保証していない
    なにがつらいのか
    利用規約ではこんな一文も。。。

    View Slide

  12. なにがつらいのか
    WE PROVIDE THE APIS "AS IS".
    訳:動いてなければ動かないですね

    View Slide

  13. なにがつらいのか

    View Slide

  14. 結論
    Google Apps Scriptはダイソー

    View Slide

  15. ここで一つ困ったこと
    ベンチャー企業
    ダイソーで買い物しがち問題

    View Slide

  16. 使いこなさないように使う
    ● 動かなくなるものとして使う
    ● ハックしないで使う
    ● 卒業する計画をたてながら使う

    View Slide

  17. 動かなくなるものとして使う
    ● リスクを周知して期待値調整
    ○ どんなに小さな機能でも動かないとパニックになりがち
    ■ 人類は業務が不自由になることに耐えられない
    ● 特に引き継ぎはできないものと考える
    ○ 検証環境作るのが不可能になりがち
    ○ テストがないのですべてレガシーコードです(TDD過激派)

    View Slide

  18. ハックしないで使う
    ● Google Apps Scriptをで凝ったものを作るときはだいたい技術選定
    が間違っている
    ○ 「ハックするメリット > 後のメンテナンスコスト」になる事はほぼな
    い(n=3くらいの経験則)
    ○ google workspaceをハックすることになるので、情シスの仕事
    とコンフリクトしたりする
    ● hyrumの法則に引っ張られてないか気をつけよう

    View Slide

  19. hyrumの法則
    あるAPIに十分な数のユーザーがいるとき、API
    を作った者自身が契約仕様として何を約束して
    いるかは重要ではない。作られたシステムが持
    つあらゆる観察可能(observable)な挙動に関し
    て、それに依存するユーザーが出てくるもので
    ある。

    「Googleのソフトウェアエンジニアリング」より引用

    View Slide

  20. hyrumの法則
    ● 要するに
    ○ 人類は保証されてない仕様に依存した実装をしがち
    ■ ex)リファレンスに書かれていないエラーをハンドリングし
    た実装
    ○ APIを作る側はそれに気をつけてメンテしよう
    ■ と、googleの中の人も(たぶん)考えているのでGoogle
    Apps Scriptはある程度動く安定して動く
    ○ とはいえ、APIを使う側は突然壊れても文句言えない

    View Slide

  21. 卒業する計画を立てながら使う
    ● 業務知識を含むコードのポータビリティを確保する
    ○ ドメインのコードがGoogle Apps Scriptに依存しないようにする
    ○ 部分的にCloud Functionに移行してユニットテストを書く

    View Slide

  22. 卒業する計画を立てながら使う
    ● プロトタイプの場合でもシステムからgoogle workspaceやGoogle
    Apps ScriptのAPIを呼ばない
    ○ 可能な限り出力したjsonやcsvに依存するようにする
    ○ どうしてもやらなければいけない時はcloud functionなどでラッ
    プして呼び出す(特にiOS/Androidアプリ)
    ■ APIとして作っておけば後で差し替えできる
    ■ 最終責任時点を意識して技術の決定を遅らせる

    View Slide

  23. まとめ兼感想
    ● なんだかんだでGoogle Apps Scriptは業務で使われてしまう
    ● 用法・用量を守って使う分には便利
    ○ 合言葉はWE PROVIDE THE APIS "AS IS"!!!!!!
    ● とはいえ本質的な解決にはならないので剥がせる剥がそう
    ● ファジーでシンプルなツールだからこそ設計と運用が重要
    ○ プログラミングの原理原則を意識・活用できて楽しい
    ○ それ以上につらかったけどな!!!!
    おわり

    View Slide