見出し画像

【Bubble】データベース等の命名規則について

AppAuto Community代表の、あぽとです。
https://twitter.com/apopotoapoto

今回はデータベース(DB)やエレメントの命名規則についてと、僕のBubbleにおける命名方法を紹介します。

命名規則の重要性

そもそもDBやエレメントの命名は軽視されがちですが、非常に重要です。
もし適当に命名すると、次のようなことが起きます。

・可読性が悪くなるので、思わぬミスによるバグが出てしまう

・後から見て、どこにデータが格納されているか分からない

・↑自分なら分かるとしても、引継ぎ先の人が分からない

・何のDBであるか分からず、アプリを改修できない or 削除してしまいアプリが動かなくなる


一般的な命名規則

一般的には大きく「キャメルケース」「スネークケース」「ケバブケース」があります。

キャメルケース(camelCase)

単語の先頭を大文字にする命名規則。
そのうち、先頭の単語だけ小文字にする(camelCase)のが「ローワーキャメルケース」、先頭の単語も大文字にする(CamelCase)のが「アッパーキャメルケース」「パスカルケース」。

スネークケース(snake_case)

全て小文字で、単語間をアンダーバーでつなぐ命名規則。

ケバブケース(kebab-case)

全て小文字で、単語間をハイフンでつなぐ命名規則。


一般的に、キャメルケースはPHPやjsなどの関数で、スネークケースはDBで、ケバブケースはHTMLやファイル名で使われます。

また大前提として、命名において全角・半角スペースは入れません。
コーディングの場合、スペースによってidやclassと認識されるためです。


あぽとの命名方法

僕はBubbleにおいて、DBもエレメントも基本的には「アッパーキャメルケース」を使用します。

理由は次のとおりです。

・Bubbleのデフォルト項目が"ほぼ"アッパーキャメルケースなので合わせたい

・スネークケースやケバブケースより短く収まる

・前職の名残で使い慣れている

最重要視してるのは1番目の、Bubbleのデフォルト項目に合わせることでした。
しかし困ったことに、厳密には一般的なアッパーキャメルケースと異なるのです。

スクリーンショット 2021-08-31 22.36.14

赤枠の通り、スペースが入っていたり、emailは全部小文字だったりします。
エレメントにおいてもスペースが入りがちです。

Bubbleはこのあたり非常に優秀で、スペースだったり、なんと日本語が入っていてもほぼ問題なく動作します。

なので自由度は高いですが、命名規則は定めないと最初に書いた問題が起きます。
またBubbleに合わせたオリジナルの命名規則を定めるより、既存の規則に合わせるほうが早いし、引継ぎ時も理解しやすいです。

これらを総合し僕は現在、アッパーキャメルケースに落ち着いています。


ルールさえ決めて守れば、最低限OK

しかし実はアッパーキャメルケースをベースに、Bubbleで使いやすいようにカスタマイズしています。


たとえばUserテーブルに、プロフィールの必須項目と任意項目が混じっている場合。
どちらが該当するか見やすくするため、先頭に情報を追加します。

必須項目ならDF_(Defaultの略)、任意項目ならOP_(Optionの略)といった感じです。

これまたBubbleの特性ですが、DBページにて命名を変更すると、全ページの設定内容も合わせて更新されます。
コーディングの場合は置換作業が発生するので、普通こんな命名はできません。


Bubbleのこういった特性は正直便利なので、活かしていいと思います。

スネークケースでもいいし、スペースを入れてもいいし、全て日本語でもいい。
(後者2つは通常ありえないので、個人的には挙動が怖いですが…これまで不具合は聞いたことないです)

ただし基本的には、命名規則、つまり「ルール」として定め、それを遵守すること。

単語の選定や、動詞・名詞の使い分け等、意識すべき点はまだまだありますが、
まずはこれで最低限、おかしなことにはならないと思います。