投稿内容:「【中級以上向け】システムを後で修正しやすくするための命名規則について」
「システム」という言葉の響きから、ITが苦手な方にとっては何か敷居が高く感じさせるものがありそうです。
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcM8946ndaEaidLCeNEIvry75CiLFLwWtkJEJiUnpFqS4Y772lYS5Vpz89KkKhUwNh8Bz5seZ3aHVQGhFpb-F3dv3xAq0nFhkivmWjEoiTK2Js8AI7R3IMzykEVmWhhNWdM9R9Dm8WKrU/s320/%25E3%2582%25B7%25E3%2582%25B9%25E3%2583%2586%25E3%2583%25A001.jpg)
FileMakerの場合は、「システム」というよりは「アプリ」や「管理画面」などと呼んだほうが拒否反応を和らげるかもしれません。
いまひとつ呼び方を見い出せないでいるのですが、そんな僕がFileMaker初級の方にサポートする際に気をつけていることのひとつを書いてみます。
結論から先に言うと、基本的には「日本語あるいは日本文で命名する」ということです。
※あなたがもしFileMaker熟練者であったり英語が得意であれば、この記事はスルーして下さい。
日本語を使えるFileMaker
FileMakerはほとんどを日本語で命名できます。
- ファイル名
- テーブル名
- フィールド名
- テーブルオカレンス名
- レイアウト名
- スクリプト名
- 変数名 etc...
日本語が使えるんだったら、日本語を使いましょう、というのが僕の持論です。
日常使う言語で作ることが、結果的にシステム制作を「わかり易い」ものにすると思っています。
「いやいや、普通に日本語を使って作ってるけど、今さらなに当然のことを言ってるの?」
とお思いでしょうか?
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEha82gdRyuKuyvpjPkQl0X_QOUTi04AkAle_cW_Mbzaf__7moagnuG5A-uPoHU_sECWd8oDbrlG5xu9DWizDW4-8-IWp3NZgLWVVVnTxD8e47mAE__pjSn81eJ2Vm4RRH9N8YJsOO_pWUI/s400/%25E3%2581%25AF%25E3%2581%25A6%25E3%2581%25AA02.jpg)
本来は英語ベースで制作するほうが良い?
開発会社さんなどに委託した場合には、スクリプトがびっしりと英語ばかり並んでいたりします。
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdipd_dxZbU24TIG8iJabQlDjmlOEBkzQGIDiap2r4AZcGI8YHzCBzVzK12lgaPARDiWi5e3t5eEwrTiSkvvMpjipJ0E4FMTKgfa2oLK9InkoQJ8c-0ZaELZso-VYGS4iSmhjpBahHgtc/s640/%25E8%258B%25B1%25E8%25AA%259E%25E3%2581%25A0%25E3%2582%2589%25E3%2581%2591.png)
FileMakerでも他のシステムでも、本来は英語ベースで制作した方が良いと思われます。
理由のひとつに、FileMakerのソフトウェア自体は英語ベースで作られていますから、バグが出にくくなる、ということがあります。
開発会社でプログラマーさんがFileMakerを作る場合、英語ベースで制作することが多いのはそういった理由があるからかと思います。
例えば日本語で変数名をつけると繰り返しフィールドの指定が効かないとか、日本語の命名は時に思わぬ動作不良を起こすことがあります。
変数でバグが起こる例:
(×)テーブル::TEST[$カウント]
↑ 「?」が入って、TESTフィールドに値が入らない。
(○)テーブル::TEST[$count]
↑ 正しく値が入る。
コンピュータの世界で見ると、日本語というのは特殊な文字の部類です。
まあ、英語で開発されたものがほとんどでしょうから当然といえば当然ですかね。
そのため日本語を使って作ると、「なぜか思ったように動かない!?」という思わぬ落とし穴にはまることもあるのです。
それでも日本語をすすめる理由
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwbv1PFIjvok5YQdZo8_NHNu6ZKCpHcZi7CmzUSMwpDZeh6HvpRNPGALV5C5lsIbyvVS3sROMNe4Lx82kva1mS4HUv2QS36KM8YA3S4j-Ho6svPYn-eeO4Y163XHGhCYVaXB9YNarBwHU/s320/%25E5%2592%258C%25E5%25AE%25A401.jpg)
たとえ日本語がコンピュータにとって特殊な文字だとしても、お客様のサポートでは僕はやはり日本語での命名を推奨しています。
その理由は、自分で修正できるようにするためにあります。
例えばフィールド名を英語にするとどうなるでしょうか。
AccountName
AccountType
AccountKana
State
City
Address
Phone1
Phone2
Email1
Email2
:
まあ、この程度ならなんとか何とかなるかもしれません。
でもこれが100個も200個もフィールドが増えてしまったら英語脳で管理しきれるでしょうか。
更にこの調子でテーブルもレイアウトも全部英語にしてしまった場合どうなるでしょうか。
半年ほど時間が経って、さあ機能を追加しようとか、ちょっと修正しようかなと思ったとき、だいたいの人はどうやって作ったかを忘れてしまいます。
そうなると、もう一度構造を把握し直すことに相当な時間を費やしてしまうのは明らかです。
まず頭の中で英語を日本語に翻訳し、しかも「Kana」なんて妙な英語も混じるので尚さら混乱するでしょう。
その翻訳を経た上で、ようやくシステム修正のための解読にとりかかることになります。
カッコ良さを取って無理に難解な命名をした結果、後々は自分を苦しめることになります。
「日本語はダサい」なんて思う人がいるかは分かりませんが、自分で確実に修正できる状態にしておくことが望ましいと思います。
場合によっては日本文でさえ許容する
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaBk-IikOcW9Yr1dTUAT-_rpks9exFHiOGyDs6ZoU2Sa_ZdK2NtWwXyVCmAi1Hx36ElzokGUOndcLZALdUD4zyu5Dadw0uOrZE6b_palJqOeQHuZVytUrtsXjPBnCNmlAcfaDfbT7v5wI/s320/%25E6%2580%259D%25E3%2581%2584%25E5%2587%25BA%25E3%2581%259902.jpg)
僕はよく、「半年後の自分へメッセージを残すように作りましょう」と伝えます。
どんなに格好良いシステムが出来たとしても、自分で修正できないシステムでは拡張もなにも出来ません。
そのためならば、僕は日本文で命名しても良いとさえ思っています。
たとえば重複を確認するためのフィールドを作るとして、商品名がカテゴリ名と重複していないかどうかの状態を見るフィールドを用意したとします。
次のどちらをフィールド名にしますか?
1.商品名重複確認
2.商品名とカテゴリ名の重複状態を確認する用
もし制作するご本人が、半年後も思い出しやすそうだというのであれば「2」のフィールド名を採用してもらいます。
フィールド名が長くなって格好悪くなっても、後で修正できなくなるよりはマシだと考えます。
上級のプログラマーさんからはお叱りを受けるような名前の付け方ですが、僕はそれで良いと思っています。
何より重要なのは、制作するご本人が「理解」して自身でカスタマイズ出来ることなのですから。
以上、僕がサポートのときに命名で気をつけていることでした。
なにかのお役に立てれば幸いです^ ^
今日も良い一日を♪
Blogger Comment
Facebook Comment