つらいところ
- 冪等ではない命令がいくつかある
- シート保護
- 条件付き書式
- トランザクション的な機能がない
- 途中で通信不良などで止まっても途中まで実行されてしまっている
- 常にロールバックできるようなコードを余計に書くことになる
- clasp が大前提
- 環境構築が大変
- JavaScript / TypeScript がある程度わからないといじることができない
- しかし恩恵は大きい
$ clasp push --watch
が便利
- しかしメンテがされていない
- 「ファイル名のアルファベット順でファイルが並ぶことに着目した命名」をする必要がある
- 一度 GAS で管理するとなると、何をするにも GAS 経由にしないと簡単に破壊される
- シート側で設定した条件付き書式が GAS での適用命令を走らせたら失われた、など
- シートの削除に代表される、破壊的な操作がカジュアルにやれすぎる*1
- 手動操作とは異なり Undo ができない
- Undo を踏まえたコードを余計に書くことになる
- 実行速度が早くない
- たまに「詰まる」
- 結局手動のほうがよかった、となる
結論
- あまりロックインするとやばいと改めて感じた
- しかし、カジュアルに誰でも使えるツールとしては唯一無二であるので、メリットとデメリットを十分に理解して使うべきだと感じた
- データの取り扱いは GAS ではなく各種言語から API 経由で扱い、書式設定などを GAS でやるという使い分けが必要と感じた
- インフラが GAS、アプリケーションが 各種言語、みたいな感じ
- データを埋め込む場所を指定するだけして装飾を施すフロント部が GAS、データ自体を取扱うのは 各種言語、みたいな感じ
参考になる
*1:これは GAS でない操作でもそうだが…