1 of 18

スプレッドシートのORM(もどき)

ライブラリを作っている話

(Google Apps Script)

Hiroki Akahoshi

2 of 18

おことわり

  • 今日LTすると決めて前に発表した資料をもとに爆速で作り直した物なので色々雑です
  • プロポーザルの方々のつよつよ発表をみて若干ひよってます
  • ゆるして

3 of 18

Hiroki Akahoshi

新卒2年目のフロントエンドエンジニアです!

主にReactを中心に開発を行っています。

(副業でゲーム開発もやっているがあくまでメインはWebフロントエンド)

## 経歴

  • 株式会社CA Tech Kids(2022~2024) ※元バイト先
  • 株式会社 i-plug(2024 ~)

4 of 18

みなさんGASつかってますか?

5 of 18

スプレッドシートの

操作面倒

6 of 18

スプレッドシートのORMもどき?

例えば右のようなスプシがあるとする

  1. 年齢が25歳以上の行
  2. 取り出された行は名前を基準に昇順で並び替え
  3. 列名をキーとした連想配列に変換

といった処理をGASで書くとする

7 of 18

スプレッドシートのORMもどき?

コードは右のようになるはず(まだ簡単な方)

  1. 同じ名前があった場合は年齢の昇順で並び替える
  2. 25歳以上60歳以下かつ都道府県が東京の人の平均年齢を求める

もっとコードが複雑になってわけがわからなくなる😠

8 of 18

簡単にかけたらよいよね?

9 of 18

ということで作りました!!

GASsma

※アイコン仮

10 of 18

さっきの処理をGASsmaで書いてみる

  • 年齢が25歳以上の行
  • 取り出された行は名前を基準に昇順で並び替え
  • 列名をキーとした連想配列に変換

列名もライブラリが自動で読んでくれる!

11 of 18

スッキリした!

12 of 18

ところでこのコード見覚えありませんか?

そうですねPrismaですね

GAS + Prisma = GASsma

13 of 18

基本的にPrismaの仕様に準拠

追加

削除

更新

14 of 18

もちろん統計も可能

25歳以上60歳以下かつ都道府県が東京の人の平均年齢を求める

15 of 18

ローカルでも開発可能

## 前提

GASにはClaspというCLIツールがある(あまり知られていないけど)

  • これによりローカルで開発することが可能
  • さらにGASをTypeScriptで書くこともできる

TypeScript向けにGASsmaは開発機能を提供

16 of 18

ローカルでも開発可能

## 前提

Prismaにはschema.prismaに書いたファイルから型ファイルを生成する機能がある

GASsmaではyamlファイルから型ファイルを生成するように

17 of 18

展望(仕様検討中)

## joinを利用できるように

## マイグレーション機能

## yamlファイルだけでなくschema.prismaを使えるように

18 of 18

詳しいところは公式リファレンスに!

ご清聴ありがとうございました!