見出し画像

kintoneのフィールドコードをメンテナンスするWebアプリを作りました!

この記事は「すごくない」kintone Advent Calendar 2024の参加記事です。

今日はクリスマスですね。kintoneを愛するみなさんに、ぼくからささやかなプレゼントを用意してみました!

いけてないフィールドコードを調べて、いい感じに修正できるWebアプリです。アクセスして使ってみてくださいね。

フィールドコードを変更すると、プラグインやサービスが動かなくなる可能性があります。このツールは「アプリを更新」しない限り、実際のアプリを変更しないように作ってあります。

運用中のアプリへの利用は慎重に。これから作るアプリにはぜひ、使ってみてください。

*おすすめの利用法は、適当にフィールドを並べて、このツールで後からフィールドコードを変更する方法です。

きみのフィールドコードは大丈夫か?

kintoneのフィールドコードについて、考えたことはありますか?
ささやかだけど、とっても大事なフィールドコードについて、この記事では考えてみたいと思います。

フィールドコードとは

フィールドコードとは「フィールドを指し示す名前」です。

これの、この部分。

フィールドコードがなぜ必要なのかというと、kintoneでは同じフィールド名のフィールドを作ることができます。そのときに、ぼくたちが、どちらがどちらのフィールドかを識別できるのは、フィールドコードが違うためです。

フィールドを表すのはフィールド名ではなく、フィールドコードだということですね。

kintoneのフォーム設定画面でドラッグ&ドロップして作成すると、フィールドコードはデフォルト値が設定されます。

この「デフォルトで付けられるフィールドコード」が問題を引き起こします。フィールドコードを適切に設定することで、アプリのメンテナンスがスムーズになるよ、というわけです。

フィールドコードで失敗した!

ぼくはこのフィールドコードの扱いで何度か失敗しています。具体的に紹介したいです。

では、この設定をみてほしい。

文字列一行のフィールドに計算式で値を入れる設定

これは計算式が設定されたフィールドなのですが、まじで何をどうしているのか読み取れません。困ります。

どうやら、【分類】という名前のフィールドと【商品名】という名前のフィールドを"-"で結合しようとしているらしいです。やれやれ。

フィールドコードはkintoneフィールドの「もう一つの名前」とも言えます。なので、これが設定の折に単体で出てくることも多く、認識しやすい命名をしないとややこしいことになってしまいます。

フィールドコードは計算式のほかにも、プラグインの設定の多くで利用されています。

プラグインの設定画面によっては、フィールドコードを直接入力したり、検索して設定したりします。その時に、特にフィールドコードがデフォルトのままだと、何がどのフィールドなのか、まったくわからなくなります。

フィールドコードのつけかた

ぼくは「フィールドコード=フィールド名」のルールを採用しています。

  • できるだけフィールドコードとフィールド名は一致させる

  • テーブルや関連レコードにもフィールドコードをつける

  • フィールド名がかぶる場合には、フィールド名のほうを変えることを検討する

  • ()などが入ってしまって一緒にできない場合は_などで代用

といったルールで設定しています。

フィールドコードの命名法については論争があると思います。詳しく知りたい方はこの記事の最後に、ぼくがなぜこのルールを採用するようになったかを解説していますので、読んでみてください。

フィールドコードにまつわる問題

★フィールドコードはあとで変えにくい

では、フィールドコードを変えようと思うと、プラグインや関連サービスで利用してしまっていて、変えると動かなくなるといったことが起こります。

関連サービスのどこでフィールドコードが使われているかを調べるのは困難だし、放っておくといろんなシステムがつながりはじめるので、傷口が広がります。

★フィールドコードの問題をみつけにくい

早めに正しく修正したい。でも、フィールドコードはアプリのフォーム画面を開かないと見られません。しかも、フィールドの設定まで開かないと見られません! こまる!

最初にフィールドコードを付け忘れると、ずっとデフォルトのまま残り続けてしまいます。

フィールドコードの設定って大事

フィールドコードを設定し忘れると、アプリのメンテナンス性に影響が出てしまいます。できるだけ忘れないように設定して、設定忘れがないか、定期的に見回りたいものです。

でも、なかなか難しいんですよね。人間だもの。

www.pulsar-works.jpでは「kintoneアプリ定義書」もあるので、今回ご紹介したツールとあわせて、使ってみてください。

それでは、メリークリスマス!

【解説】フィールドコードの命名規約

(注意)この先の話はかなりマニアックなので、ここで読むのをやめてもらって構いません。

どんなフィールドコードをつけていますか?

  • かっこよく英字の名前をつける派

  • 分かりやすく日本語の名前をつける派

ぼくはプログラマなので、最初のころはかっこよくつける派でした。大きな製鉄所のSEをやっていたので、kintoneに触れる前にはデータベースの項目ばっかりつけていました。(メインフレームとOracleを扱っていました。)

英数字6文字(大小なし)の【SEIKBN】みたいな名前です。これは製品規格区分コード。

なので、kintoneを触り始めたころは、【商品名:PRODUCT_NAME】みたいな大文字+アンダースコアのフィールドコードをつけていましたね。

ただ、kintoneを触るうちに、このフィールドコードが、プログラム上に多くあらわれるようになってきました。これはカスタマイズをするとわかるのですが、オブジェクトのプロパティ名として現れるのですね。

なので、大文字のスネークケースが気持ち悪くなって、productNameのようなキャメルを書くようになりました。

さらに時間がたつと、複雑なカスタマイズをするようになったので、このキャメルケースが「変数なのかkintoneのフィールドなのか」分からなくなってきました。目視したときの認知の問題です。

そのころにはどんなアプリをサイボウズ社が作っているか、アプリストアの多くのアプリを研究するようになりました。

例えば、執筆現在で
「備品在庫管理」はフィールドコードがデフォルトのままです。
「To Do」はフィールドコードがパスカルケースです。
「案件管理パック」はフィールドコード=フィールド名です。

アプリストアにあるので、みなさんも追加してみてください😊

注目したのは、サイボウズ社のアプリもばらつきがあるという点、そしてサイボウズ社のアプリは複雑なものはフィールド名とフィールドコードが同じだということです。

kintoneのアプリの構築案件をやっていると、どうしても複雑なアプリを最初にテンプレートとして導入することが多くて、フィールド名=フィールドコードの規約を採用したほうが開発の手間がない、といったことが起こります。

実際、フィールド名とフィールドコードを同じにすることで、メンテナンス性がかなり上がりました。また、表示するフィールド名の重複を見つけることができるようになり、ユーザビリティも向上しました。

フィールドコード=フィールド名の規約がかなり気に入ったので、ぼくはこの方法を採用しています。

ただ、この規約がマイナスになるケースもありました。それは「既存のデータベースとの連携」です。既存のデータベースは大文字のスネークケースが採用されている場合が多く、データベースとの相互連携を表すために、データベースのカラム名と一緒にした方がいい場合がありました。

いまもどんなフィールドコードをつけるべきかは、正しい答えは分かりません。

みなさん、どう運用されていますか?

この記事はおわりです。お読みいただき、ありがとうございました。

いいなと思ったら応援しよう!