MENU

【GAS】gs ファイルの命名規則とソート機能

  • URLをコピーしました!

こんにちは、etau です 🤓

待望の gs ファイルのソート機能、「アルファベット順にファイルを並べ替える」 が落ちてきましたね!

せっかくの機会ですので、手作業でのファイルの移動を極力避けて、命名規則を上手に使ってファイルのソート ボタンひとつで目的の並び順にする方法を考えていきます。

目次

gs ファイルとは

gs ファイルについては、1 つの gs ファイルにまとめてコードを書かれる方も、複数使われる方もいると思います。

プロジェクトが作成されるときに「コード.gs」ファイルが 1 つある状況です。

コード.gs ファイル

この gs ファイルにコードを書いていくわけですが、gs ファイルとその操作について説明していきます。

gs ファイルをわける理由

弊社のコーディング ガイドラインでは、以下のルールに応じて gs ファイルをわけます。

  1. 関数は、トリガー単位
  2. クラスは、クラス単位
  3. enum は、「enums.gs」
  4. グローバル定数などをまとめた「global.gs」

gs ファイルに適切な名前をつけて、上記ルールで運用をおこなうとコードの見通しがよくなります。

また、問題が発生した場合やリファクタリングの際にも、gs ファイル単位にコードが集約されているため、どの gs ファイルにアクセスすればよいか、確認しやすくなります。

今回追加されたソート機能がない状況では、上記の 1 – 4 の並び順になるよう、gs ファイルを追加するたびに手動で並び替えが必要でした。

gs ファイルの操作

gs ファイルは、追加・削除・移動・ファイル名の変更が可能です。

この操作について、説明していきます。

gs ファイルの追加

スクリプト エディタの画面で [+] ボタンから [スクリプト] を選択します。

gs ファイルの追加

すると、「無題.gs」ファイルができます。

追加された gs ファイル

つづいて、このファイル名を変更していきます。

gs ファイル名の変更

スクリプト エディタの画面で、ファイル名を変更したい gs ファイルの右側にある [︙] – [名前を変更] をクリックします。

gs ファイル名の変更

ファイル名が編集可能になるので、変更します。

ファイル名を変更された gs ファイル

つぎにファイル名を変更した gs ファイルを移動します。

gs ファイルの移動

スクリプト エディタの画面で、移動させたい gs ファイルの右側にある [︙] – [ファイルを上に移動] もしくは [ファイルを下に移動] をクリックします。

gs ファイルの移動

この操作によって gs ファイルが移動できていることが確認できます。

移動された gs ファイル

最後に gs ファイルの削除の方法です。

gs ファイルの削除

スクリプト エディタの画面で、削除したい gs ファイルの右側にある [︙] – [削除] をクリックします。

gs ファイルの削除

ポップアップに表示された [削除] ボタンをクリックします。

「削除」のポップアップ

以上で、ファイルが削除されていることが確認できます。

gs ファイル単位で削除した場合、ファイルの復元はできないようです

gs ファイルの命名規則

それでは、今回の本題であるソート機能が追加された以降の gs ファイルの命名規則についてまとめていきます。

目標はファイルを追加してもソート機能をポチッとして終了です。

あらためて、4 つのパターンを確認すると、3「enums.gs」と 4「global.gs」 に関してはファイル名が決まっているので、関数の書かれている 1 と、クラスの書かれている 2 について考えていきます。

1 と 2 の gs ファイル名に接頭辞をつけて、希望の並び順にソートする方法をとります。

接頭辞の前に、社内のコーディング ガイドラインで決められている gs ファイルの命名規則についてお伝えしたいのですが、そのためには GitHub についての説明が必要になります。

「GitHub」と「Google Apps Script GitHub アシスタント」

弊社では、コードのバージョン管理に「GitHub」と「Google Apps Script GitHub アシスタント」を利用しています。

そこで gs ファイルの名前も GitHub で管理されるファイル名を意識して、ケバブ ケースを使います。

ケバブ ケースは、アルファベットの小文字のみを利用し、単語と単語はハイフンでつなぎます。

このケバブ ケースで命名された gs ファイルに接頭辞をつけていきます。

gs ファイルの接頭辞

今回必要な 2 つのパターン「関数の書かれた gs ファイル」と「クラスの書かれた gs ファイル」について接頭辞を加えていきます。

関数の書かれた gs ファイルの接頭辞

関数が書かれたの gs ファイルには「app/」と接頭辞をつけます。

関数に関しては「function/」という命名でも問題ないのですが、コードの確認やトリガーの設定など、すべての起点となるため、ソートをした場合に、次で説明するクラスより上に表示させたかったため、この接頭辞を選んでいます

クラスが書かれた gs ファイルの接頭辞

クラスが書かれた gs ファイルには「class/」と接頭辞をつけます。

スクリプト エディタでの表示

2 つの関数が書かれた gs ファイルと 3 つのクラスが書かれた gs ファイルを持つプロジェクトを上記の例に従って命名した場合の例です。

ソート機能を使うの地下のように表示されます。

規則にしたがって命名された gs ファイル

目的通りの表示ができています。

GitHub での表示

接頭辞の最後に「/」をつけることにより「Google Apps Script GitHub アシスタント」を利用して、GitHub へ [↑] ボタンで 更新 (マージ) すると、「/」前までの名前のフォルダに、「/」より後のファイル名で格納してくれます。

プッシュ (マージ) されたファイル

app フォルダ には、「main-app.gs」と「sub-app.gs」、class フォルダ には「test-a.gs」「test-b.gs」「test-c.gs」が存在します。

GitHub リンク

GitHub
GitHub - FrontWorks-Inc/blog_gs-file-naming-rules-and-sorting-function: create repository create repository. Contribute to FrontWorks-Inc/blog_gs-file-naming-rules-and-sorting-function development by creating an account on GitHub.

まとめ

というわけで、gs ファイルに関するコーディング ガイドラインは、当分この運用でいきたいと考えています。

  1. 関数は、トリガー単位で、接頭辞に「app/」
  2. クラスは、クラス単位で、接頭辞に「class/」
  3. enum は、「enums.gs」
  4. グローバル定数などをまとめた「global.gs」
  • すべてのファイル名はケバブ ケースで表記する。

この状態で、ソート機能を使えば手動での並び替えが必要なくなります。

出番の少ないシンプル トリガー系の関数や、カスタム関数などの置き場は「global.gs」ファイルにまとめるか、「app/simple-triggers.gs」や「app/custom-functions.gs」にまとめるか、検討中です。

みなさんおすすめの gs ファイルの管理・命名規則方法があれば教えてください。

それでは、また 🤓

gas-gs-file-naming-rules-and-sorting-function_featured-image-1

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

株式会社フロント・ワークス代表取締役の etau です 🤓
へーしゃは「ノンプロ協会」に、個人では「ノンプロ研」所属しています。
趣味は「マンガ」「料理 (特にスパイス カレー)」「お酒」「コーヒー」「コーチング」「マネジメント」です。

目次