Googleサービスと連携して省エネ開発、「TokyoGAS #4 2013秋」に行ってきた

Google Apps Scriptをご存じですか? Google Apps Scriptとは、Google DocsのスプレッドシートやGoogle MapsなどのGoogleのサービスを結び付けることができるスクリプト言語です。スクリプト言語はJavaScriptベースですので、Web系のエンジニアなら簡単に作成できると思います。よく使われる場面としては、フォーム画面をGoogle Docsでフォームを作成して、解答があったらGmailで管理者にメールで通知といったしくみがあります。

今回は10/18に開催された『TokyoGAS #4 2013a秋』というイベントに出席して、日本でのGoogle Appsの活用事例やハンズオン、最近のGoogle Apps Scriptの変更点などの発表を伺ってきました。

いつ戻おり、この勉強会の中から特に参考になった点をつらつらと書いていきます。


🎳 Google Apps Scriptチュートリアル

最初セクションは、ノンIT女子の松田さんさんによる、Google Apps Scriptの初心者向けのセクションでした。ハンズオンでは説明にしたがってScriptを実行するのに夢中になっていたので、手順をメモしきれませんでした(笑)

ということで、代わりにオススメのチュートリアルを紹介。

ブログ:Google Apps Scriptの始め方

Google Apps Scriptの始め方

LIGさんのブログ記事で、Google Apps Scriptの初心者の方のとっかかりとしてはこれ以上ないくらいわかりやすく説明が書かれています!

動画:Google Apps Script入門

Google Apps Script入門

次は鉄板なドットインストールさんの動画チュートリアル。こちらは3分位の動画が16本くらいで50分位で全部見れて、ちょっとしたことならできるようになってしまいます。

電子書籍:Google Apps Scriptでプログラミングを学ぶ本

Google Apps Scriptでプログラミングを学ぶ本

あとラシクさんでもe-bookによる、Google Apps Scriptの本が無料公開されています。電子書籍なら一度ダウンロードしてしまえば、場所を選ばず読めちゃいますよね!

🍄 Google Apps Scriptの活用事例

Webアプリケーション:123MAPS

(株) ラシクさんによるGoogle Apps Scriptの活用事例の紹介がありました。123MAPSというアプリケーションの紹介がありました。

商店街のお店のオーナー向けに、Google Docsのスプレッドシートを管理画面にして、Google Maps上に位置情報を表示するためのしくみだそうです。商店街の人にいかに使ってもらうかを考えこんで作っている点がすばらしいです!

Google Apps Scriptのメリット

123MAPSの事例紹介の中で、Google Apps Scriptを使う場合のメリットという話がありました。

* スプレッドシートをDBのように使うことができ、入力効率が高い
* 一般的な管理画面の活用が不要になる
* JSベースなのでGASの学習コストが低い
* Google サービスの連携が楽(アカウント管理もGoogleでできる)
* Googleのクラウドベースでサービスを作れる
* トリガー(スケジューラ)系の機能が充実している

ただし、注意点もあってGoogle Apps自体は御存知の通り有償です。ですので、Google Appsをすでに導入していたりすると理想的なようです。

社内ポータルサイト:Google Apps Script + Google Site

とあるおもしろ法人さんで働かれているインフラエンジニアな方が、実践されているGoogle SiteとGoogle Apps Scriptを使った社内ポータルサイトについての事例紹介がありました。社内の備品管理やちょっとした便利ツールを公開しているようです。

私感としては、エンジニアドリブンな会社で、Google Appsを契約している場合にはテスト的にツールを配布するのにコレ以上な上くらいのベストプラクティスだと感じました^^

エンジニア目線でのGoogle Apps Scriptのベスト・プラクティス

社内ポータルのお話の中で、エンジニア目線で規模が大きめのプログラムを書く時に注意すべき点と言ったお話がありました。

* Gooleサービス毎に処理を作りきってソースを分ける
=> Google Drive、CalendarなどそれぞれにClassを分けて作る
=> 再利用性、メンテナンス性を考慮してコードを書く
=> libraryに落としこむことができる

* 画面周り(UiLnstanceオブジェクト)の記述はdoGet()にまとめる
=> 複雑な画面構成でなければdo Get()次にベタ書きのほうが可読性が高い
=> ソースを見ながら、画面を理解できるようにしておく

* 書くUiLnstanceオブジェクトにハンドラを設定して処理とリンクさせる
=> オブジェクトにsetId()しておくとハンドラ内でそのオブジェクトにアクセスできる

* 表示確認はテスト環境を用意してデプロイしながら
=>「版を管理」でバージョンを保存
=>「Webアプリケーションとして導入」で保存したバージョンを選択
=> テスト環境として用意したGoogleサイトで表示する

GASでの業務アプリケーションのお話

Html + JavaScriptのアプリケーションをGoogle Apps Scriptを活用して開発をされた際の事例紹介がありました。

Google Apps Scriptは小規模な開発であればほんとうにすばらしいツールですが、数十人〜百人規模のユーザーがいる本格的な業務用アプリケーションを作る場合には、かなりノウハウが必要なようです。特にリレーショナル・データベースがない点を十分に意識して設計をして、スモールスタートで開発・運用を始めることが重要なようです。

🐮 直近3ヵ月でのGoogle Apps Scriptの大きな更新情報

最後のセッションで直近3ヵ月でのGoogle Apps Scriptの大きな更新情報について紹介がありました。個人的にはEclipsのプラグインが提供されるようになったのはすごく大きなインパクトだと思います。将来的には、Googleのクラウドと連携させることができたりしたらおもしろそうです^^

* Spreadsheet Data Validationというスプレッドシートでのバリデーション機能の提供が開始
* DocListApp >> Drive Appにスクリプトの体系が移行している
* Eclipsプラグイン => GASを開発できるようになった。まだ制約が多い
* Google フォーム上にyoutubeを表示できるようになった(GASも可)
* GUIビルダーの提供が停止された

🚜 おまけ

会場内でGoogle Apps Scriptのことを調べている時に、Google Apps Scriptでスクレイピングをおこなえるというプラクティスを見つけました。これは応用がありそう^^

Google Apps Script スクレイピング

🏈 感想

勉強会自体が和気あいあいな雰囲気で、本当にステキでした。また、今後月に1回くらいの頻度でハンズオン・勉強会を計画しているそうです。次回が楽しみ^^

📚 おすすめの書籍