kintoneカスタマイズ初心者の方へ〜学びはきっと楽しい

みなさん、こんにちは。かりんこラボの坂本です。

最近、kintone関係のTwitterを見ていて、カスタマイズをはじめる方、チャレンジしてみたいと思っている方がたくさんいらっしゃるのだなと感じています。

先日、「kintoneカスタマイズの解説「ドシキンカス」のYouTubeライブ勉強会に参加させてもらったのですが、生徒役で参加されていた大石さんが、JavaScriptを書いて動かして、動いたときの反応がとても素敵で「楽しい!」と何度も言われていたのがとても印象的でした。
学びは楽しい。最近ちょっと忘れてしまっていた「新しいことを知ることで、もっと自分にできることが広がるのは楽しい」ということを思い出させてもらえました。

https://pj.asunote.jp/first_step_of_kintone_customise/


私も今でこそ、kintoneカスタマイズやプラグインを作ったりしていますが、もう何(十?)年も前、最初に入社するまで、パソコンはほぼ触ったことがなく、プログラムのコードなんて書いたことも見たこともありませんでした。
そんな知識0の状態から、どうやってプログラムを書くことを覚えたのかをちょっと振り返りつつ、私が思うkintoneカスタマイズを勉強するときに意識すると良さそうなポイントを書いてみたいと思います。

私もまだまだカスタマイズで悩むことはありますが、kintoneカスタマイズに取り組もうとされている初心者の皆さんの参考に少しでもなったら嬉しいです。

カスタマイズの勉強で意識すると良いと思うこと

kintoneカスタマイズ初心者の方が、おそらく最初に行うのは、developer networkでサンプルコードをコピーして、自分のkintone環境に合うようにちょっと修正してみる、ということだと思います。
私も、プログラムの知識0で入社後、先輩に最初に取り組まされたのは、下記のことでした。

  1. 人の書いたコードを読む。
    まずは、先輩の書いた動いているプラグラムを動かしてみて、コードがどういうふうに書かれているかを読まされました。
    ここで、ざっくりとコードの書き方のパターンや、どういうタイミング(イベント)があって、そこでどう処理が動くのかというのをなんとなく理解しました。
  2. 人の書いたコードをちょっとだけ修正する。
    新人はイチから新しいプログラムを作らせられることはなく、まずは、すでに動いているプログラムに軽微な機能追加や、バグ修正を行いました。
    ここでは、エラーとなったとき、思ったとおりの結果にならないときの原因の探り方(デバッグ)を覚えました。

サンプルコードや人の書いたコードを理解する

developer networkで参考になるコードをコピペして修正するというときに重要なのは、コピーしたコードをキチンと理解するということ。
「とりあえず、コピぺして前後は何してるか分からないけど、フィールドコードっぽい部分を変更したら動いた!」だけでは、その時は良くても自分のkintone環境で何か問題が起きたときや、変更への対応ができなくなります。

理解する第一歩として、日本語で、そのコードが何をしているのか説明してみるのがいいのかなと思います。

kintone.events.on('app.record.edit.change.ドロップダウン_0', function(event) {
  var record = event.record;
  record['文字列_0'].disabled = true;
  return event;
});

1行目:レコード編集画面で、フィールドコードが ドロップダウン_0 のフィールドの値が変更されたときに、
2行目:イベントオブジェクトのレコードオブジェクトをrecordという変数にいれて、
3行目:record(レコードオブジェクト)の中のフィールドコードが 文字列_0 のフィールドを入力不可にして、
4行目:イベントオブジェクトをリターンする

developer network の kintone APIの解説を読んだり、ググったりしながら、わからない単語や動きを調べましょう。
イベントオブジェクトって何?なぜそのタイミングで動かすの?などなど、なぜ?なぜ?が出てきて調べていけば、どんどん理解が深まっていきます。

修正したコードが思い通りに動かなくて、誰かに質問するときにも「何をしているのか、どういう意味でそれを書いたのか」を説明できることは重要なことです。
それに、イチからコードを書けなくても、キチンと内容を説明できるようになっていたら、たくさんあるサンプルコードのなかから部分的に組み合わせて処理を作ることができるようになってきます。

私も経験ありますが、一生懸命調べたり、誰かに聞いてもどうしても理解できないということも出てきます。
そんな時は、あまり深く追求せずに、これはお決まりのルールなんだ、とか、なんとなく頭の片隅に残してとりあえず、勉強としては、先に進んでもいいんじゃないかと思っています。
勉強・練習を続けていると、どこかのタイミングで、「そういえば、あの時よく分からなかったアレはそいうことだったんだ!」とピンとくることがあるはずです。

追記で参考リンクを載せましたが、安易にコピペしたものを実際の業務に導入するには、問題があることも認識しておく必要はあります。

想像力をもつ

一発で完璧なコードを書けることは、きっとほとんどなくて、デバッグすると思います。
エラーになれば、エラーメッセージが表示されてポイントを絞れるけれど、エラーも表示されないのに、うまく動かない場合は厄介ですよね。

そんなデバッグで必要になるのは、順を追って現象を読み解いていける力+想像力が問題解決能力に繋がるんじゃないかと思っています。
順を追って読み解いていって、問題発生ポイントの場所を見つけるのは、みなさん、もう当然おわかりだと思います。

想像力については、例えば「日付フィールドに値が入力されていたら動くけど、もしかして値が入っていないときはうまく動かないんじゃないか?」とか「自分はちゃんと動くのに他の部署の人が動かないのは、もしかしてそのフィールドに権限がないからじゃないか?」とか、「もしかして」を想像・仮定すること。
色々な「もしかして」を想像して、その部分が本当に想像どおりなのか検証をしていってみてください。

質問力をつける

ググったり、自分なりに試したりしても分からない時は、誰かに質問することになると思いますが、この時の質問力も大事だと考えています。

最初に書いた「コードを理解する」ところでも書きましたが、「何をしているのか、どういう意味でそれを書いたのか」をキチンと説明できないと、せっかく回答してくれる方も答えにくいし、何度もやりとりを繰り返したりして無駄な時間を使ってしまいます。
下記のようなことを意識して、質問するといいのかなと思います。
ダラダラ長くなってしまうとそれはまた伝わらないので、完結に伝えることもポイントです。

  • どのタイミングで、どういうことをしたいのかを説明する。(背景もあるとわかりやすい)
  • 書いたコードを示す。(参考にしたものがあればそれも)
  • どこまで動いて、どのあたりが想定どおりにならないのか、本当はどういう動きにしたいのかを具体的に説明する。
  • エラーが出ていたら示す。
  • 自分が試してみたことを説明する。
  • 正しいkintone用語を使う。

「コピペできる完全なソースコードをください」ではなく、どうやって動くようにするのか、その考え方を教えてくれる人やコンテンツを探して、質問していくのが大事だと思います。

正解は一つじゃない

kintoneで同じことをやろうとしても人それぞれ作るアプリが違うように、JavaScriptの書き方も勉強方法だって、人それぞれです。
私が新人の頃と違って、今はカスタマイズの情報を収集できるコンテンツがたくさんありますし、kintoneに特化したところでも、developer networkコミュニティはもちろん、Twitterなどでも、質問に答えてくれる方々がいらっしゃいます。
そんな環境で学べるkintoneカスタマイズは、きっと楽しいと思います!

最後は、参考記事へのリンクです。ぜひこちらも読んでみてください。

■サイボウズ株式会社 竹内さん

■R3 INSTITUTE 金春さん

■プロジェクト・アスノート 松田さん