【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のデフォルト項目に合わせることでした。
しかし困ったことに、厳密には一般的なアッパーキャメルケースと異なるのです。
赤枠の通り、スペースが入っていたり、emailは全部小文字だったりします。
エレメントにおいてもスペースが入りがちです。
Bubbleはこのあたり非常に優秀で、スペースだったり、なんと日本語が入っていてもほぼ問題なく動作します。
なので自由度は高いですが、命名規則は定めないと最初に書いた問題が起きます。
またBubbleに合わせたオリジナルの命名規則を定めるより、既存の規則に合わせるほうが早いし、引継ぎ時も理解しやすいです。
これらを総合し僕は現在、アッパーキャメルケースに落ち着いています。
ルールさえ決めて守れば、最低限OK
しかし実はアッパーキャメルケースをベースに、Bubbleで使いやすいようにカスタマイズしています。
たとえばUserテーブルに、プロフィールの必須項目と任意項目が混じっている場合。
どちらが該当するか見やすくするため、先頭に情報を追加します。
必須項目ならDF_(Defaultの略)、任意項目ならOP_(Optionの略)といった感じです。
これまたBubbleの特性ですが、DBページにて命名を変更すると、全ページの設定内容も合わせて更新されます。
コーディングの場合は置換作業が発生するので、普通こんな命名はできません。
Bubbleのこういった特性は正直便利なので、活かしていいと思います。
スネークケースでもいいし、スペースを入れてもいいし、全て日本語でもいい。
(後者2つは通常ありえないので、個人的には挙動が怖いですが…これまで不具合は聞いたことないです)
ただし基本的には、命名規則、つまり「ルール」として定め、それを遵守すること。
単語の選定や、動詞・名詞の使い分け等、意識すべき点はまだまだありますが、
まずはこれで最低限、おかしなことにはならないと思います。