勉強したことのメモ

webプログラマが勉強したことのメモ。

GASを使ってみて感じたメリットとデメリット

   

Google Apps Scriptを色々勉強した中で感じたメリットとデメリットをメモ。

 

メリット

開発までのハードルが低い

開発環境が最初から用意されている為、LAMP環境構築のような面倒な作業が不要。エディタも内臓されているのでブラウザさえあれば開発が行える為、開発までのハードルが非常に低い。

基本無料

PHPでWebシステムを作成する場合はレンタルサーバやVPSを用意する必要があり、安くても月数百円程度かかるがGASだと基本無料。

Google Appsとの連携が強力

GmailやGoogleカレンダー等、Google Appsとの連携が容易に行える。特に祝日APIのようにPHP単体では対応が難しいものでも、Googleカレンダーと連携することで簡単に開発できるといったケースがある。

スクレイピングの際にIP制限を考慮しなくて良い

PHPからスクレイピングを行う際に「同一IPから頻繁にアクセスすると制限をかけられるかも……」と考慮する場合がある。そのような場合プロキシで対応できるものの自前でプロキシサーバを用意するのはお金がかかる。

GASだと複数のIPからスクレイピングしてくれるようなので、上記を考慮しなくて良いのがありがたい。

 

デメリット

各種制限や上限がきつい

実行時間・回数に制限が設けられており、項目によっては上限が低いと感じるものがある。例えばメール送信は「100/日」とかなり少ないように感じた。

課金することで上限を増やせるがそれでもサイトやシステムによっては厳しいように思われる。

処理速度・実行速度が遅い

これに関してはあくまでも私の体感となるが、PHP+MySQLで開発したWebアプリよりも処理速度・実行速度がかなり遅いように感じる。PHPだと数秒で終わる作業がGASだと10秒以上かかったりする。

大量のデータを取り扱うのは難しい

GASでデータベースのような機能を持たせる場合はスプレッドシートを利用する形になる。しかしコチラを見てみると1シート5000~6000行程度が限度とのことで、MySQLからすると取り扱えるデータ数がかなり少ない。

トリガーで細かい時間指定ができない

Cronだと「毎日4時55分に実行」等の細かい時間指定ができるが、GASだと「1時間に1回」等の指定方法になる。個人ツールだと大体問題ないかと思われるが、他システムと連携する場合に困るケースが出てくる可能性がある。

 

まとめ

小規模なシステムや個人ツールを開発する場合は選択肢の一つとして検討しても良い。しかし複数人が閲覧・利用するようなシステムやサイトの根幹を担うというのは難しいように思われる。

 - Google Apps Script, Google

  関連記事

GoogleMapでメインカラーを変更する方法

GoogleMapAPIを用いたMAPでカラー変更をしたかった。カラーコードの指 ...

reCAPTCHA v2でAjaxは使わずにチェック状況を確認する方法

reCAPTCHA v2を実装する案件があり以前の記事を参考に組み込んでみたもの ...

GASで特定サイトをスクレイピングし、画像をGoogleドライブに保存

Google Apps Scriptで特定のサイトにスクレイピングし、画像が掲載 ...

GoogleMapAPIで現在地取得と目的地までのルート表示

GoogleMapAPIを使って現在地を取得しつつ、目的地までのルートを表示させ ...

GoogleMapAPIで住所・経度緯度入力後にマーカーを移動させる

フォーム内に住所・経度・緯度のテキストボックスを設置し、住所を入力後にボタンを押 ...

Google map APIでマーカー(アイコン)を好きな画像に変える

Googleマップでユーザーにマーカー画像をアップロードさせて、それをマップ表示 ...

GoogleスプレッドシートとPHPの連携

GoogleスプレッドシートとPHPプログラムを連携させたいという案件をたまに見 ...

GASでGoogleカレンダーと連携してイベントの取得・追加・削除

Google Apps Scriptの勉強としてGoogleカレンダーと連携させ ...

Google maps apiで[ReferenceError: rd is not defined]のエラー

Google maps api使っていて、ちゃんと書いているはずなのに、 Ref ...

GoogleMapAPIでクリックした座標にマーカーを設置

GoogleMapAPIでクリックした位置にマーカーを設置し、座標の経度緯度をテ ...