「ノンプログラマーのためのスキルアップ研究会」通称ノンプロ研主催のAPIプログラミング講座【freee APIコース】の受講と並行して、同時多発開催されているノンプロ研講座の「GAS×freee APIコース」のTA(ティーチングアシスタント)を務めております。
この講座は
- GAS初心者講座 全6回
- freee APIコース 全4回
のコンバインド講座です。
かくいう私もノンプロ研で受けた最初の講座がGAS初心者講座でした。この最初のプログラミング学習をきっかけに実務でも使えるツールを自分で作れるようになり、お仕事でばりばり活用できています。
本日はノンプロ研 GAS初級 + freeeAPI講座第2期の第1回です。
— 山口征啓@AI_QUEST2021 (@ID_HelpDesk) September 17, 2021
今月から始まったfreeeAPIとのコンバインドコースは大人気でなんといきなり2コース同時開催になっております!#ノンプロ研 #GAS初級 pic.twitter.com/B9oWu8OQ4g
こちらの記事では、
- 今まさに講座を受講している方
- ノンプロ研講座「GAS×freee APIコース」に興味がある方
- 復習しなくてはいけない自分
のための復習・補足情報をまとめたいと思います。
スクリプトエディタが開かない時は
スクリプトエディタの開き方
とにもかくにも、 プログラミングはスクリプトエディタ(コードを書くツール)を開くところから始まります。 Google Apps Script(通称GAS)の場合はブラウザ操作で開きます。
https://tonari-it.com/gas-script-editor/
読込中のまま進まないときは
ただ稀に、スクリプトエディタを開こうとしても読込中のまま先にに進まないときがあります。そんなときは、そのまま待機せずにURLを新しいタブやウインドウに貼付けるなどして開きましょう。
console.log() とは長い付き合いになります。
講座ではプログラミング学習の定番とも言えるHello World!をもじってHello GAS!の出力からスタートします。
そこで登場するのがconsole.log()です。このconsole.log()とはこれから長いお付き合いになります。
https://tonari-it.com/gas-console-log/
出力=情報を人間の目で見える形に表示すること
出力って言葉は実にプログラミング的だなと思うのですが、要は情報を人間の目で見える形に表示することですね。
素早くconsole.log()を入力するには
長いお付き合いになるconsole.log()ですが、毎回毎回入力するのもなかなか手間です。 私はMacユーザーなのですが、使っていないキーボードキーにホットキー(ショートカット)を割り当てて、console.log()がすぐに入力され、さらには()のなかにまでカーソルが戻るようにしています。
これにはBetterTouchToolという有料アプリを使用しています。将来の時間が買えるのでどんどん課金しましょう。
BetterTouchToolのキーシーケンスの設定方法については以下の動画が参考になります。
その他、自身のパソコンの日本語入力ソフトによく使うフレーズを辞書登録するという方法もあります。ノンプロ研に所属されている方でGoogle日本語入力を使用されている方は、メンバー有志で作ったコーディングスニペット集が利用できます。Slackで「コーディングスニペット集」を検索してみてください。
私自身は、コーディング中は英語<>日本語の切り替えを最小限にしたいので、コーディングスニペットは使用していません。
リテラルって何?美味しいの?
続いてconsole.logの()の中身に入力する数値や文字列の書き方の作法を講座では解説されました。
この書き方の作法のことを「リテラル」と呼びますが、はじめて聞いた時になぜこんな馴染みのない言い方をするのだろうと思いました。今後もちょいちょい登場しますが、その度に「??」が頭に浮かびますが、みんな同じなので気にせずいきましょう。
とりあえずは「リテラル = 何かの書き方の作法」との理解からのスタートで大丈夫?だと思います(私もふわふわしているポイントです)。
ただ実は、この「何か」の部分がプログラミング学習の肝になってくるのですが、それまた別のお話…
コードにはコメントを書こう
続いて、コードの処理には影響しないメモ=コメントの書き方が解説されました。
サボりがちで怠惰な私は、プログラミング学習初期の頃このコメントもあまり活用していませんでした。
いちいちメモを残すのめんどくさいよね。
簡単なことだから覚えてるよね。
なんて思っていましたが、案の定、数ヶ月後に「??」が頭に飛びまくりました。未来の自分は他人です。他の人にわかるようにコメントを残しておきましょう… ってこれってプログラミングに限らず他の仕事でも同じかもしれませんね。
変数・定数の名前の付け方
続いて、変数・定数の登場。「変数・定数は情報を格納する箱」のようなものです。この箱の使いこなしが、プログラミングの醍醐味になってきます。
ここで悩むのが変数・定数の名前の付け方です。
- 基本的に英語
- 意味がわかりやすいものに
- GASの主流はキャメル記法
というのが作法ですが、この名前の付け方が定まってくると、後から見返した時に読みやすいコードとなります。この読みやすいコードというのは後々決定的に重要になってくるので、ノンプロ研メンバーの聖典のひとつ「リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック」を読みましょう。
APIを操るにはデータ型の理解が必須
今回の講座のゴールは、「GASを使ってfreeeAPIを操作して実用的なツールを作れるよになる」なのでAPIが操作できるようにならないとゴールできません。
freeeAPIに限らず、APIから情報を取得して操作するにはこのデータ型の理解がとてつもなく重要です。
型を理解するにはまず、「人間にとって見えてる表示が同じでもコンピューターにとっては同じではない」ということがあると理解する必要があります。
以下のようなコードがあります。
function myFunction_001() {
console.log(123);
console.log('123');
}
この出力結果は
となり人間にとっては同じ結果です。しかしtypeof演算子でデータ型を調べると
function myFunction_002() {
console.log(typeof 123);
console.log(typeof '123');
}
こうなります。
人間にとって同じ123に見えてもコンピューターにとってはまったく別のデータとして扱われます。
今は、「ふーんそうなんだ。当たり前じゃない?」と思われるかもしれませんが、このポイントは、後々ボディーブローのようにプログラミング初学者を苦しめます(予言)。
とにかく、
「人間にとって見えてる表示が同じでもコンピューターにとっては同じではない」
を記憶の片隅に格納しておいてほしいです。
エスケープシーケンスもじわじわ効いてくる
講座の内容はすべて重要なのですが、スプレッドシートで分析したデータをSlackやメールに通知するとか、Google Driveにダウンロードしたcsvファイルをスプレッドシートに読み込むとか、Gmailで受け取ったメールの本文を検索して一部を抜き出すなど実用的なシーンでじわじわ効いてくるのがエスケープシーケンスです。
\n =改行
\t =タブ
あっさりした顔して、肝心の見せ場で登場するのでお忘れなく。
テンプレート文字列も素早く入力できると便利
変数・定数を式を埋め込めるようになるテンプレート文字列 ${}も登場頻度が高いので、BetterTouchToolを使ってホットキーを割り当てています。
Gmailへの差し込み、SlackやChatWork、LINEなどへの通知に大活躍します。
ノンプロ研講座「GAS×freee APIコース」1日目の補講記事はここまで
1日目にもかかわらず講座の内容も盛りだくさんでしたが、補講記事もかなりモリモリの内容になってしまいました。正直このテンションを維持して毎回記事を更新する自信はありません…
三日もたなければ三日坊主とも言えないですよね。不安です。