今週のお題「名前をつける」
久々にお題に挑戦してみます。今回は、プログラミングをする際の命名について語りたいと思います。
プログラミングにおいて命名は重要
一部、日本語で書けるプログラミング言語もあったりはしますが、プログラミングは基本的にローマ字で記述します。はてなブログもそうですが、スターボタンを押した際には、「⚪︎⚪︎さんが⚪︎⚪︎さんの⚪︎⚪︎の記事のスターボタンを押したよ!」という指令をプログラムを通して、はてなブログのデータベースに記録され、その記事を開いた時にはデータベースから、その記事に対してのスターの情報を取得し、誰がいくつスターを押したかが分かるように画面を表示するわけです。

はてなブログさんのブログサービスに不具合が起きた場合などエンジニアが調査をするわけですが、プログラムで使用している変数と呼ばれるものやデータベースで管理しているテーブルと呼ばれるもの、テーブルの中で管理しているデータの名前を適切に付けないと、調査するエンジニアが混乱してしまいますので、システム開発における命名は非常に重要です。
英語センスは多少なりに問われますが、全てのエンジニアが英語に長けているというわけでもないので、一般的な英単語を使用し、読みやすいように設計されています。
命名の一例
はてなブログのこのページですが、「アカウント設定」となっています。はてなブログに登録しているアカウント情報を管理しているページなわけですが、このアカウント設定をデータベースで記録する場合、アカウント設定の各情報を管理するテーブルが必要になりますが、アカウントを管理しているという事が感覚的に分かるようにテーブル名は、
ACCOUNT
とします。頭文字だけ大文字だとか命名規則は様々ですが、私はテーブル名は大文字で記述するのが好きです。好みもありますが、会社毎に命名規則が定められていることも多いです。みんながみんな好き勝手ルールも無く名前を付けていたら管理しづらくなります。
そして、このACCOUNTテーブルには、アカウントに関するデータを保持させます。アカウント設定ページを見るだけでも管理するデータは、以下があります。
ニックネーム
パスワード
プラン
メール通知などもありますが、主要なデータはこの4つでしょうか。これをテーブルのデータとして以下の通りに定義します。
HATENA_ID
NICKNAME
MAIL_ADDRESS
PASSWORD
PLAN_TYPE
これをテーブルの1レコード(1行)のデータとして管理します。メールアドレスは画面には無いですが、メール通知にも使用するので、必要なデータとなります。その人のアカウント情報を検索したい場合は、はてなIDが重複しないデータとなるはずですので、はてなIDをキーにして検索します。

こうやって名前を付けることで、エンジニアがアカウントに問題が発生した際に「ACCOUNT」テーブルを検索し、該当のユーザーのはてなIDやメールアドレスで検索し、そのユーザーのアカウント情報を確認するわけですが、命名をしっかりすることで、直感的にどのテーブルにどのようなデータが入っているかが分かりますね。
このようにシステム開発における命名というのは、システムのメンテナンスにおいて非常に重要な役割を果たしています。プログラムは書かないと動作しませんが、動かした後のメンテナンスが長く、また、書いた人がずっと面倒を見れるわけではないので、他者が読んでも分かるように意識して書かないといけません。プログラムは書かないと動きませんが、「読み物」です。
まとめ
非IT系の方にも分かるようにお題を使ってシステム開発における命名について取り上げてみました。自分なりには、ちゃんと説明出来た気がしますが、日をおいて、この記事を改めて見てみたいですね。
時間をおいて見てみると、他人が書いたような新鮮な気持ちで見れるので、今後の記事を書く際の改善にも役立てていきたいです。