[GAS]オブジェクト指向によるGAS開発のススメ #1要件定義

GAS

どうも。つじけ(tsujikenzo)です。このシリーズでは、2021年9月から始まりました「ノンプロ研GAS中級講座6期」について、全7回でお届けします。今日は7回目で最終回です。最終回は、なんと5回に渡ってお送りいたします。

前回のおさらい

前回は、「HTTP通信・API」をお届けしました。

今回は、卒業LT大会で発表しました 「オブジェクト指向によるGAS開発のススメ」 をお届けします。

卒業LTのアジェンダ

  1. 要件定義
  2. 外部設計
  3. 内部設計・コーディング・テスト
  4. クラス設計のコツ
  5. シートクラス

はじめに

前回(GAS中級講座5期)の、卒業LTでは 「ノンプログラマーによるGAS開発モデル」 という、内容をお届けしました。

プロの開発手法をまなび、ノンプログラマーにも取り入れられる要素はないか、という考察をしたものです。

今回のシリーズでは、その進化版で、オブジェクト指向のエッセンスを取り入れたGAS開発を、お届けします。(ノンプログラマーのわたしが、個人的に学んだことをアウトプットしますので、間違いなどはご容赦ください)

オブジェクト指向のエッセンス

流行り廃りもありますが、プログラムの開発・保守・運用を楽にする手法の1つが、オブジェクト指向プログラミングです。

わたしも、勉強をはじめたばっかりで、少しずつブログ化しています。

オブジェクト指向とは、実世界のヒト・こと・モノを「オブジェクト」という単位でとらえ、ソースコードに反映させることです。

GAS開発を楽にしてくれる手法だと信じていますので、興味のあるかたはぜひ、一緒に学びましょう。

今日、第1回目は、「要件定義」から始めていきます。

ユースケース図

要件定義をするときに便利なツールが、ユースケース図です。

今回は、「スプレッドシートで日報を作成し、マネージャーにPDFをメールする」という、業務アプリケーションを作成したいと思います。

ユースケース図を書こう

ユースケース図は、「そのシステムでユーザーがなにをできるのか」を可視化したものです。

あまりむずかしく考えずに、直感で書いてみましょう。

まず、システムを真ん中に置いてみます。 

こと

次に、やりたいこと(○○する)を並べてみます。ここで、「将来的に使うかもしれない」という機能は、記入しないことをオススメします。(たとえばGoogleドライブに保存する、とかSlackに通知を飛ばすなど)

本当に必要な、コアな部分に集中しましょう。

とくに、スプレッドシートにレコードを追加するばあいなどは、「フォームから入力させたい」と考えるかもしれません。

しかし、現段階では「スプレッドシートを開いて、1行追加する」と考えましょう。

フォームから入力などは、あとで機能を追加すればいいのです。

ヒト

システムを操作するヒトが必ずいると思いますので、ヒトを記入します。

この段階では、ヒトは、それぞれの処理を実行できると考えていいでしょう。 

いずれは、処理はすべて連携され、「日報を入力するだけで、メールが送信される業務アプリケーション」にしたいかもしれません。

しかし、まずは、個別に処理を実行できるという考え方が大事です。

トリガーなどは、あとで機能を追加すればいいのです。

モノ

ヒトが処理することに対して、アイコンなどをおいて、なにを操作するのかイメージを固めましょう。

とくに、とりあつかうものが、スプレッドシートなのか、PDFなのか、メールなのか、など、具体的なアイコンがあるとわかりやすいです。 

このシステムと連携するものとして、日報を管理する人事部のシステムがあるかもしれません。

しかし、今後連携するシステムのモノまで考える必要はありません。別のシステムとは、APIで連携させていきます。

API連携などは、あとで機能を追加すればいいのです。(システムをAPIで連携したものを、マイクロサービスと呼びます。)

完成図

実際に使用するシートなどが決まっていたり、定義できるばあいは、ユースケース図に書き込んでしまいます。

完成したユースケース図はこちらです。 

まとめ

以上で、「要件定義」をお送りしました。

ウォーターフォール開発のように、ガチガチに要件定義をして、仕様を細かく決めるのではなく、ユースケース図をざっくりと書くのがコツです。

ガチガチに書いても、あとで変更は必ず発生します。なにごとも「ざっくり」でいきましょう。

申し遅れましたが、開発にはMURALJamboardといったホワイトボードツールがオススメです。

次回は、 「外部設計」 をお届けします。

参考資料

このシリーズの目次

[GAS]オブジェクト指向によるGAS開発のススメ

  1. 要件定義
  2. 外部設計
  3. 内部設計・コーディング・テスト
  4. クラス設計のコツ
  5. シートクラス
タイトルとURLをコピーしました