何かに貢献したいエンジニアはGASを使うと手軽に実現できるかもしれない、という話
Google Apps Script Advent Calendar 2018 - Qiita の3日目を担当させていただきます。furuichiと申します。
作ったもの
「JSおじさん寺子屋」という Slack のチャンネルがあります。JSおじさんこと中西さんが1日に1つ出題する JavaScript のお題を参加者が codesandbox.io 上で解いていき、技術力の向上を目指していくオンライン道場です。 お題は Google Docs のスプレッドシート上で共有され、出題者は回答のURLをそれぞれ自分の欄に貼り付けていきます。 スプレッドシートに回答が貼り付けられた時、それがトリガーとなって回答者名、URL、何日目のお題に対する回答という内容が Slack のチャンネルに自動投稿される Bot を GAS で作成しました。コードについては今回は省略いたします。 寺子屋なのでBot名は「teraco」です。スプレッドシートと Slack の連携は GAS で作られるツールとしてはオーソドックスな内容ですが、チャンネル参加者の方には喜んでもらえたので作ってみてよかったなと思いました。
作成した経緯
まず、「JSおじさん寺子屋」の母体である「もくもく寺」について軽くご説明をしたいと思います。
もくもく寺
フロントエンド・Railsなどの領域をテーマに、各自もくもく作業をする会です。connpass にコミュニティがあり、過去にはReact、Nuxt.js、Dockerなどのハンズオンも開催されました。先日の Docker ハンズオンでは私もスタッフとしてお手伝いさせていただきました。
オンライン上では Slack にワークスペースがあり、ほぼ毎日何かしらの話題が共有され意見交換が活発に行われています。JS, Rails 含め経験豊かな人たちが集まっていて眺めているだけでも勉強になるし、都内勤務ではない私も輪の中に入れてもらって色々とお世話になっています。もともと、Webエンジニアに転職する前からこのコミュニティに参加しており、ワナビー状態の私にも様々なお役立ち情報や技術のTipsなどを参加者の方々から教えていただけて転職の夢を叶えることができました。
JSおじさん寺子屋について
寺子屋の発足はもくもく寺運営者のむろさんのこのツイートがきっかけでした。
JSもっと書けるようにならないと…
— 📸 (@murokaco) 2018年11月13日
寺子屋の詳細についてはむろさんのこちらの記事をご覧ください。
私が作ろうと思った理由
チャンネル内でスプレッドシートが運用されることとなり、その流れで Slack に回答が自動連携される仕組みが欲しいな、という声が上がったので「GASなら多分実現できますよ」と自分からツール作成に名乗り出ました。最初は手探りでしたが、JSベースで書けることからネット上の知見を色々参考にすることで1週間で完成させることができました。
今年の春くらいからGASで何かを作ろう、と思ってはいたのですが何も思い浮かばず手をつけていない状態でした。また、お世話になっているコミュニティに対し、技術的な成果物で恩返しがしたいと思っていたので、ちょうどよいタイミングで自分の2つの目標を達成することができました。(余談ですが、このアドベントカレンダーに登録したタイミングでは何をやるかまだ決めていなかったので、ツールを作ることでここに書くネタを生み出すこともできて一石三鳥といった感じです)
GASでコミュニティに貢献するメリット
GASでのツール開発のメリットは、大掛かりな環境構築が必要ない点にあります。ブラウザ上のエディタからプロジェクトを開始することができ、運用フェーズに入っても Logger API を使うことで手軽に運用状況の監視が可能です。
唯一の難点としては ES2015 記法に対応していないことですが、旧来のJS記法に耐性や経験がある人にとっては些細な問題でしょうか。また、clasp などを使えばローカル環境で開発・テストも行えます。
また、自動投稿という形でスプレッドシートや Slack など業務ツール上で大きな力を発揮してくれるので、Webアプリに必要とされるようなUI設計に頭を悩ませずとも手軽に有用なものが作れます。エンジニアとして技術を使って人に価値を提供する上で、社内や所属コミュニティといった同業者同士の集まりの中でもそれを達成することは非常に意味があると考えています。GAS はミニマルな形でそういった価値創造が実現可能です。目に見える形で素早く何かを作って他者に貢献したい、という願望を持っている人にとってはうってつけのツールなので、ぜひ活用してみてください。