データベース内のIDなど各種ネーミング

MySQL

引き続きもりもりテーブルを作っていく。

そして仮だけど実際入れたい情報に沿ったデータも
テーブル内にインサートしていく。

IDは
AUTO_INCREMENT
で自動で連番が振られるようにしてたんだけど、
ちょっとまてよ・・?

レコードを削除したら二度とその番号は使えないし、
あのアレはIDなんだ?って結構分かりにくい。。

そうか、マスタテーブルの情報とかはやはりちゃんと考えたIDにしたほうがいいよね。

日本=JPN みたいな。

いろいろなソース内に引っ張られて使用されるとしたら
パッと見何を引っ張ってきているのか分かりたいし。

IDのつけ方についてはこちらのサイトからインスピレーションうけました。

Firefoxアドオンの開発を通じて考えるようになったインタラクションデザイン

以下は上記ページからの引用です。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
●変数名やメソッド名、クラス名を分かりやすくする

変数やメソッド、クラスの名前は、それが何を表しているのか・何をするための物なのかをきちんと表す物にしましょう。例えば以下のようなコードは最悪ですね。

—-
var bool = true; // 変数名が「真偽値である事」だけしか表していない
function f() { … } // 関数に適切な名前が付いていない
—-

これは、以下のような書き方をした方がいいです。
(これはあくまで例です。表す内容がこれとは違う場面であれば、その都度適切な名前を付けましょう。)

—-
var enabled = true; // 変数名から「何かの機能が有効か無効かを示すものだ」という事が分かる
function openTabAndInitialize() { … } // 関数名が処理の内容を表している
—-

ただ、名前に動詞や形容詞、前置詞などが2つも3つも入ってくるようだと、いくら処理の内容をきちんと言い表していても駄目です。
関数や変数に簡潔明瞭な名前を付けられないのは、そもそも設計が悪いからと考えられます。
きちんと設計してあれば、関数や変数には大抵の場合、ちゃんと簡潔明瞭な名前を付けられるのです。

ですから、この例のopenTabAndInitialize()だと以下のように設計し直す事になるでしょう。

—-
function openTab() { // 2つの小さな処理単位からなる、1つの大きな処理単位
var tab = openNewTab();
initializeTab(tab);
}
function openNewTab() { … } // 新しいタブを開く、という1つの小さな処理単位

function initializeTab(aTab) { … } // タブを初期化する、という1つの小さな処理単位
—-

Rubyというプログラミング言語の開発者のMatz氏の言う「名前重要」というスローガンは、この事を指しています。
変数や関数に名前を付ける時はちゃんと考えてから付けないと駄目で、名前付けに困る時は設計を見直す事も視野に入れるべき、という事ですね

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

全体を理解できて読んでいたわけではないですが、
名前のところ、感覚的に腑に落ちました。

良く考えてIDやテーブル名も考え直して、データベース修正。
(ここでSQL文のレコードの更新・データ型の変更・制約の変更の技をおぼえるグッド!

—–

コメント

タイトルとURLをコピーしました