$30 off During Our Annual Pro Sale. View Details »

GAS活 #4 「Claspを用いた モダンGAS開発」

GAS活 #4 「Claspを用いた モダンGAS開発」

takanakahiko

May 20, 2019
Tweet

More Decks by takanakahiko

Other Decks in Technology

Transcript

  1. Claspを用いた
    モダンGAS開発
    takanakahiko @ GAS活 #4

    View Slide

  2. Instructions
    あとで公開します
    ハッシュタグでTwitterにリンクを掲載します.
    内容は変わるかもしれません.
    再利用スライドが多いです
    2回目の人はすみません...
    撮影
    撮影OK!
    撮影ダメなスライドでは以下の表示をします.
    - Cameras allowed
    - More info at https:/
    /speakerdeck.com/takanakahiko
    - Please Impression to @takanakahiko
    2

    View Slide

  3. Hello!
    I am takanakahiko
    I like Pripara, Drawing and Programming.
    Graduate Student(Grade M2) at Takushoku Univ.
    Work at GaiaX Co.Ltd. and Japan Digital Design, Inc.
    You can find me at @takanakahiko
    3

    View Slide

  4. GASの
    メリット/デメリット
    悪いところを知ると,良さを引き出せる
    1

    View Slide

  5. GASのメリット
    ◉ G suiteのサービスを扱える
    ◉ トリガーの選択肢が多い
    ◉ ブラウザ上で記述できる
    ◉ 環境カスタマイズの必要がない
    「手軽な G Suite マクロ環境」という位置づけ
    5

    View Slide

  6. GASのメリット
    ◉ G suiteのサービスを扱える
    ◉ トリガーの選択肢が多い
    ◉ ブラウザ上で記述できる
    ◉ 環境カスタマイズの必要がない
    「手軽な G Suite マクロ環境」という位置づけ
    6
    注目

    View Slide

  7. それは本当にメリット?
    ◉ ブラウザ上で記述できる
    ◉ 環境カスタマイズの必要がない
    7
    ◉ ブラウザ上でしか記述できない
    ◉ 環境がカスタマイズできない

    View Slide

  8. Google Apps Scriptのデメリット
    ブラウザでしか記述できない
    ◉ いつものエディタで書きたい...!
    環境がカスタマイズできない
    ◉ 古いタイプのJS -> 拡張性に難
    8

    View Slide

  9. GASの新しい書き方
    GASは”古い技術”じゃない
    2

    View Slide

  10. Clasp
    Develop Apps Script projects locally.
    10

    View Slide

  11. 11
    Claspとは
    ローカル(オフライン)で書いたコードを
    GASにPush & Pull できるCLIツール

    View Slide

  12. 作業の流れ
    1. ClaspとGASを連携する
    2. 手元でコードを書く
    3. ClaspでPushする
    4. 実行する
    5. エラーがあれば2に戻る
    ...手間では?(いやそんなことはなく)
    12

    View Slide

  13. Super Awesome
    Tools & Utilities
    Clasp
    13
    ローカルで書くことで使える
    ローカルで書けるようにする
    Claspの有効活用

    View Slide

  14. Clasp & [???]
    Claspは組み合わせで真価を発揮します
    3

    View Slide

  15. 組み合わせられるツール群
    ◉ Git : バージョン管理ツール
    ◉ ES(TS)Lint : ソースコードのチェックツール
    ◉ VS Code 他(Editor) : 使い慣れたエディタを
    ◉ TypeScript : 型を扱えるJavaScript
    And more ...
    15

    View Slide

  16. TypeScriptを使う利点(ex : VSCode)
    ◉ 引数をいちいち調べる必要がない
    ◉ エディタで補完が使えるようになる
    16
    createAlldayEventメソッドは こういう引数を渡すと ... こういうデータが取得できる

    View Slide

  17. Usage
    17
    $ clasp create
    ◉ GASプロジェクトを作成
    $ clasp push
    ◉ ソースコードをアップロード

    View Slide

  18. DEMO
    ● $ npx sao clasp でプロジェクト作成
    ○ 参考 : https://www.npmjs.com/package/sao-clasp
    ● $ clasp create --rootDir ./src でGASプロジェクト作成
    ● $ clasp push でソースコードのアップロード

    View Slide

  19. OSSとしてのGAS
    GASはよりオープンに
    4

    View Slide

  20. ClaspはOSSです
    OSSとは
    ◉ ソースコードが公開されているソフトウェア
    ◉ 誰でもContribute(貢献)できます
    つまり
    ◉ Claspについて独学が可能
    ◉ 機能の提案や議論が可能
    20

    View Slide

  21. OSS貢献のすすめ
    ◉ OSSを使う
    ◉ OSSの開発に参画する
    21

    View Slide

  22. ● Google Apps Script (GAS) の本を書きました ->
    ● GAS流行れ流行れ....
    ● GASが便利になるツールClaspを良くしよう
    (動機が不純すぎる)
    22
    きっかけ

    View Slide

  23. ● https:/
    /github.com/google/clasp/issues/57
    ● 「対話形式に操作をしたいよね」というIssue
    23
    はじめてのContribution

    View Slide

  24. ● 方針が決まっているものを実装しよう!
    ○ 「こうしよう」「でも手が足りない」というやつ
    ● タイポの修正をしよう!
    ● 質問系のIssueに対応しよう!
    あまり考えなくても(答えが決まってる),貢献できるやつをやる
    24
    スタンス

    View Slide

  25. ● レビューされないとマージされない仕組みがある
    ○ メンテナが責任持ってレビュー
    ● 自動でテストする仕組み
    ○ CIであったりでテストが通らないとマージできない
    -> (一般的に)PR出すだけでは迷惑にならない
    25
    ミスして迷惑かけるかも?

    View Slide

  26. 26
    1位 : Googler 2位 : Googler
    3位 : ぼく
    気が付いたら

    View Slide

  27. Any questions ?
    You can find me at
    ● @takanakahiko
    [email protected]
    Thanks!
    27

    View Slide