命名規則について

872 views
Skip to first unread message

本田

unread,
Dec 10, 2010, 2:04:39 AM12/10/10
to fmdevs
本田です。

実用的な議題の一発目として、どこにも確固とした情報の無い、FileMakerの命名規則全般を扱いたいです。本来はコーディング規約の一環として扱
うべきでしょうが、FileMakerの場合、命名のみの要素が多いため、ここだけ先に取り上げた方が、見通しが良いと思います。


当然ですが、目指すのは飽くまで考慮された規則の一例であって、FileMakerの用途を考えると、その規則が使いにくい場合も多々ある筈です。叶う
なら、半数のケースが淀みなく扱える規則、そういうものにしたいです。

-

議論の端緒として、FileMakerで命名可能な要素を挙げておきます。

・ファイル
・テーブル
・TO
・フィールド
・レイアウト
・レイアウトオブジェクト
・スクリプト
・変数
・カスタム関数
・値一覧
・外部データソース
・カスタムメニュー
・アカウント
・アクセス権セット
・拡張アクセス権

いやあ、多いなぁ…。

-

これらに対して、それぞれどの様な命名規則が考えられるか、また、開発を楽しくし、メンテナンスを容易にするか、といった話題を投げてもらえるとありが
たいです。自分はこうしているとか、ここに迷っているとか、情報はなんでも構いません。

参考として、FileMakerでの命名規則に関するWeb上の情報と、他の言語等に於ける命名規則の例を挙げます。まあ、FileMakerの場合は
そのまま使えるものは少ないでしょうから、多言語等の情報は本当に参考程度になると思います。

■FileMakerの命名規則についての情報

・どんな命名規則にしてますか? - FileMaker Forums
http://forums.filemaker.com/posts/c6c90b8e97/comments

・フィールド名の命名規則につきまして。 - 初心者のFileMaker pro Q&A
http://www.russ.jp/stepbbs/step.cgi?mode=view&no=48301

・命名規則 - FileMaker Wiki
http://fmwiki.net/index.php/%E5%91%BD%E5%90%8D%E8%A6%8F%E5%89%87

・FileMaker Naming Conventions and Standards | DB Services
http://www.dbservices.com/articles/filemaker-naming-conventions-and-standards

■他の言語等についての情報

・Google C++スタイルガイド日本語訳(命名規則) - 変電工
http://www.henshi.net/k/hiki.cgi?GoogleCppStyleGuide#l66

・Javaのネーミング規約 - ThinkIT
http://thinkit.co.jp/free/tech/15/3/1.html

・命名規約 - Zend Framework Manual
http://framework.zend.com/manual/ja/coding-standard.naming-conventions.html

・JavaScript coding standards | drupal.org
http://drupal.org/node/172169

-

また後で、自分の採用しているものを、まとまってる範囲で流します。

# 「ネーミング規約」という語がありますが、「命名規則」とどちらで呼ぶのが良いでしょうか?
# コーディング規約と対応してるんで、ネーミング規約の方が良さそうなんですが、
# 日本語としての通りは、圧倒的に命名規則の方が広いようです。

本田

unread,
Feb 1, 2011, 12:16:33 AM2/1/11
to fmdevs
お久しぶりです、本田です。

始めておきながら勝手な都合で停止してましたが、本業が一段落したので再開します。
まずは、放置してあった命名規則。

本来の意味での命名規則も重要ですが、FileMakerの場合、命名に非ASCII(当然、主に日本語)を用いるか、という問題があります。これへの
見解がないと命名規則全体を考えにくく、まず、これについて考えたいです。

FileMakerそのものは、命名可能な要素の名に非ASCII文字を用いても、特に問題ありません。そもそも、日本語版FileMakerでは作成
のデフォルト時、既に非ASCII文字が用いられる要素が多くあります。これまでの経験上も、非ASCII文字で命名をしたために発生したトラブルは、
ほぼありません。
一方で、FileMaker外との連携を考えると、非ASCIIを用いるために、潜在的なトラブルの可能性を抱えるのは間違いありません。

今のFileMakerが動作するプラットフォームに、ASCIIのリソース名しか解釈できないものは無いと思います。ただ、非ASCII文字は比較的
複雑な解釈が必要で、例えば正規化が非互換だったりします。ファイル名をキーとする場合もあるFileMakerのファイルが、異なるファイルシステム
を複数移動した場合、こういったリスクは高くなります。
また、FX.phpやAPI for PHPなどのライブラリで、データ部のマルチバイト対応は徹底されていても、構造部の処理では穴がある可能性もあ
ります。命名可能な要素全ての非ASCII対応を保証する処理系は、そうそう無いでしょう。

一方で、非ASCII(というか日本語)での命名には明確なメリットがあります。クライアントが自ら更新していく場合、命名が日本語かどうかで、担当者
の抵抗感が大きく違います。システム開発の経験が無い場合、英語がある程度使える人であってもこの抵抗感はあり、日本語で命名するだけで、とても触って
もらいやすくなります。

以上を踏まえ、自分の考えを。
日本語などの非ASCII文字を用いた命名は、上記の様なリスクを理解し許容した上で、FileMakerを採用する理由に合わせて決定すべきだと思っ
ています。もし、ユーザー側で積極的に更新を行うのであれば、日本語での命名は、多くのユーザーにとって大切な要件です。
逆にデベロッパ側でしか更新を行わないのであれば、非ASCIIでの命名を選ぶことで、潜在的なリスクを減らせます。
どっちつかずの、例えば幾つかのレイアウトのみユーザーが更新するといった場合、部分的に異なる命名規則を採用した方が、線引きが判りやすく良いのでは
と思います。

複数の命名規則をケースで使い分けるのは混乱の元にもなりますし、そもそもFileMakerでの開発をどういう商品として位置づけるか、その違いも出
てくるものだと思います。
いかがでしょうか。

Kengo Kyuragi

unread,
Feb 2, 2011, 6:22:02 AM2/2/11
to fmdevs
キュウラギです。

みなさんご無沙汰しております。

命名規則については、私も今ちょうど改めて試行錯誤中でございます。

結論としては本田さんも言われているように、

> FileMakerを採用する理由に合わせて決定すべきだと思っています。

ということになると思うのですが、私の場合はということで。

現在のところ FileMaker での開発をやっていてクライアントに自ら更新してもらうということがないのと、
今後は FileMaker 以外のシステムや Web との連携が増えていくだろうことや、
その際ファイル名などに日本語等を使用した場合のリスクを少しでも排除したいこと考えますと、

・基本命名できるものは半角英数字とアンダースコアのみを使用する。

ということで名前をつけていっております。

先に本田さんが上げられているように、
FileMaker で命名可能な要素は多岐に渡ります。

各要素の名称をルール化する上での利点としては、
やはり、開発スピードの向上や、メンテナンスの効率化などが上げられるわけですが、
FileMaker の場合は、基本的に FileMaker の開発環境の GUI の中で効率良く管理できる名称ということが前提になってくると思
います。

その状況を考えますと各要素毎で効率の良い命名方法が変わってくるのかなと。

いろいろあるのですがファイル名を例にあげますと、
ファイル名の管理が必要になってくる場面というのは、
おおよそ以下みたいな状況ではないでしょうか。

・各 OS 上でのファイルとしての管理
・外部データソースの管理ウインドウ
・リレーションシップグラフでのファイル指定
・FileMaker Server Admin Console でのデータベス管理画面

などなど。

こういった各要素毎の具体的に管理される状況などを、
どこかにまとめた上で議論をすすめるのはいかがでしょうか。

ちなみに、私の場合のファイル名は、

・Admin
・Home
・DB
・Dev

などと一階層だけディレクトリをつくって、
その中に以下みたいに機能毎に分けてファイル名をつけております。

・Client.fp7
・Project.fp7

みなさんはディレクトリで分けられたりってされていますか。

Kengo Kyuragi

unread,
Feb 2, 2011, 7:11:56 AM2/2/11
to fmdevs
キュウラギです。

私も参考程度にですが。

> ■FileMakerの命名規則についての情報

以前に出たような気がしましたが、

■ FileMaker Development Conventions
http://www.filemaker.com/downloads/pdf/FMDev_ConvNov05.pdf

細かく説明されています。

> # 「ネーミング規約」という語がありますが、「命名規則」とどちらで呼ぶのが良いでしょうか?
> # コーディング規約と対応してるんで、ネーミング規約の方が良さそうなんですが、
> # 日本語としての通りは、圧倒的に命名規則の方が広いようです。

規約と規則を辞書で調べてはみたんですが、
この場では今のところは規約としてまとめていくということでもないかと思いますので、
どちらか決めるのでしたら「規約」より「規則」の方がしっくりくるのかなと。

ということで利用者の多い方の「命名規則」ではいかがでしょうか。

あと、面倒なので全文引用しちゃってますが、
こちらのグループでは問題なかったでしょうか。
> ・どんな命名規則にしてますか? - FileMaker Forumshttp://forums.filemaker.com/posts/c6c90b8e97/comments
>
> ・フィールド名の命名規則につきまして。 - 初心者のFileMaker pro Q&Ahttp://www.russ.jp/stepbbs/step.cgi?mode=view&no=48301
>
> ・命名規則 - FileMaker Wikihttp://fmwiki.net/index.php/%E5%91%BD%E5%90%8D%E8%A6%8F%E5%89%87
>
> ・FileMaker Naming Conventions and Standards | DB Serviceshttp://www.dbservices.com/articles/filemaker-naming-conventions-and-s...
>
> ■他の言語等についての情報
>
> ・Google C++スタイルガイド日本語訳(命名規則) - 変電工http://www.henshi.net/k/hiki.cgi?GoogleCppStyleGuide#l66
>
> ・Javaのネーミング規約 - ThinkIThttp://thinkit.co.jp/free/tech/15/3/1.html
>
> ・命名規約 - Zend Framework Manualhttp://framework.zend.com/manual/ja/coding-standard.naming-convention...
>
> ・JavaScript coding standards | drupal.orghttp://drupal.org/node/172169

flogskin

unread,
Feb 3, 2011, 12:01:35 AM2/3/11
to fmd...@googlegroups.com
本田です。
久良木さん、返信ありがとうございます。
2通分まとめてお返事します。

命名に使用する文字種については、
まず、半角英数字 + アンダースコアのみで考えて構わないと思います。
制約の強い規則があれば、緩める方向では考え易いでしょうし。

そして、
「FileMaker の開発環境の GUI の中で効率良く管理できる名称」、
「各要素毎の具体的に管理される状況などを、どこかにまとめた上で議論」、
とても重要な観点、ありがとうございます。
独りでやんなくて良かったなあと実感します。

仰る通り、その要素を取り扱う具体的な場面を想定しなくては。
まずこの洗い出しが、各要素毎に必要ですね。

ファイルの場合だと、

・各 OS 上でのファイルとしての管理
・外部データソースの管理ウインドウ
・FileMaker Server Admin Console でのデータベース管理画面

は該当しますが、

・リレーションシップグラフでのファイル指定

これは外部データソースとして登録されたものが対象のため、
ファイル名は隠蔽されています。
「スクリプト指定」や「値一覧の編集」等のダイアログで提示されるものも、
外部データソースとして抽象化されているので、除外されます。
他に思い当たるものは、以下ぐらいでしょうか。

・デザイン関数での引数や戻り値
・ウインドウタイルとのデフォルト値
・「共有ファイルを開く」ダイアログ
・「FileMaker ネットワーク設定」ダイアログ
・「ODBC/JDBC 共有設定」ダイアログ
・「インスタントWeb公開」ダイアログ
・スクリプトデバッガ内「アクティブなスクリプト:」
・Developer ユーティリティ

こういったリストの管理はGroupsだと面倒なので、
Google Sitesの方に溜めていった方が良さそうです。
取り敢えず「命名規則」ページを作ったので、
上に挙がったものを記入しておきます。

-

紹介していただいたPDF、ざっと見てみました。

> ■ FileMaker Development Conventions
> http://www.filemaker.com/downloads/pdf/FMDev_ConvNov05.pdf

探し方が悪いだけで、ちゃんとあるんですね、こういう資料。
恥ずかしいですが、他の有用な資料も含め、かなり見てません。
URLで引くと、同様の資料、まだまだ大量にありそうです。

http://www.google.co.jp/search?num=50&hl=ja&q=site%3Ahttp%3A%2F%2Fwww.filemaker.com%2Fdownloads%2Fpdf%2F

で、このファイルの内容ですが、規則そのものではなく、
FileMakerや周辺の仕様と、推奨するガイドラインなんですね。
でも計算式のフォーマッティングや文字種の使用可否表、
命名可能な要素の細かな取り扱いまであって、滅茶苦茶有用です。
日本語版が無いのは仕方ないんでしょうけど、
こういうリソースの情報ぐらいはちゃんと提供すればいいのに。

このPDFはガイドラインですが、そのまま採用できるものも多そうです。
例えば以下はファイル名についての原則部分の引用です。

1. Should use only the characters.
- Upper & Lower case aA - zZ
- Number 0,1,2,3,4,5,6,7,8,9
- Single and double underscores “_” “__”
2. Should NOT contain spaces.
3. Should NOT start with numbers.
4. Should NOT use file name to indicate versions.
5. Should NOT contain periods other than the single period used for
the extension.
6. Should consistently use singular or plural names.
7. Individual words should consistently be separated using one of the
following methods.

但し語の区切りについては推奨があるだけなので、
これも含めて、汎用性ある規則としてしまいたいです。
プレフィックス・サフィックスの部分も、
少し読んだ限り、くどそうに見えます。

命名可能な要素をひとつずつ取り上げ、
その名称が扱われる場面の洗い出しと、
FMDev_ConvNov05.pdf中の該当箇所のピックアップ、
こういう流れで、大まかな規則が決められると良いと思います。

-

全文引用ですが、各人にお任せします。
私自身は、メリットをあまり感じない事と、
後から参照する際、検索結果にノイズが増えるので、使ってません。
実際の所、なんかもう10年以上前から全文引用について、
不毛な掛け合いが絶えず起きるので、関わり合いを避けてます。
トラフィックの差も今では小さいんだし、
Gmailだって全文引用部分は自動的に隠します。
どちらでも大丈夫じゃないでしょうか。

Kengo Kyuragi

unread,
Feb 5, 2011, 9:07:36 AM2/5/11
to fmdevs
キュウラギです。

いつも反応おそくてすみません。

> 「FileMaker の開発環境の GUI の中で効率良く管理できる名称」、
> 「各要素毎の具体的に管理される状況などを、どこかにまとめた上で議論」、
> とても重要な観点、ありがとうございます。
> 独りでやんなくて良かったなあと実感します。
>
> 仰る通り、その要素を取り扱う具体的な場面を想定しなくては。
> まずこの洗い出しが、各要素毎に必要ですね。

上記の実際の管理する場面でのポイントなのですが、
以下のような点も考慮して名称を決めたらいいのかなって思います。

私は基本 Mac の環境で開発しているのですが、
他のアプリに比べて微妙な感じで FileMaker の GUI は独特なので、
結構ポイントになってくるのではないでしょうか。

・各要素を管理するウインドウで名称などで並び替えができるか。
・カテゴリ分けして管理ができるか。
 ハイフン入れて区切り線にして見た目で区別して管理するとか、
 せっかく GUI があるのにナンセンスかなと。
・検索や抽出ができるか。
・複数選択してキー操作やドラッグ & ドロップで移動できるか。
・コピーペーストできるか。
 そのペースト後の内容はリスト内のどの位置にペーストされるか。
 フィールド管理画面でカスタム順位にしてると一番下にペーストされるので。
 私はフィールド管理画面では基本的に名称でのソートは行っていないので結構気にします。
・複数ウインドウ間でコピーペーストやドラッグ & ドロップで移動できるか。
・そもそも集中して管理できる環境があるのか。
 オブジェクト名やスクリプトの引数など、
 みなさんはどう管理されているのでしょうか。

などなど。

できる限り無用な操作がいらないような管理方法で、
少しでも効率よく開発できたらと試行錯誤しております。

これらは各バージョン毎でも違ってきますね。

また、その他にも外部のツールを利用できるかもポイントではないでしょうか。

■ FMClipboardBroker
http://www.key-planning.co.jp/software/utility/254-fmclipboardbroker

以下ページも参考にしてます。

■ FMClipboardBroker もどきを Windows で作る
http://filemaker-kou.seesaa.net/article/152607356.html

あと、上記ページでも紹介されている、

■ Clip Manager
http://myfmbutler.com/index.lasso?p=422

これらのツールを効率よく利用する前提での名称ですね。

> ・リレーションシップグラフでのファイル指定
>
> これは外部データソースとして登録されたものが対象のため、
> ファイル名は隠蔽されています。

確認しました。

変更できたんですねー。

いつもファイル名のままとくに気にせず使ってたので、
今確認してみて気がつきました。

うれしい発見です。

> こういったリストの管理はGroupsだと面倒なので、
> Google Sitesの方に溜めていった方が良さそうです。
> 取り敢えず「命名規則」ページを作ったので、
> 上に挙がったものを記入しておきます。

こちらも確認しました。

私の方でも気づいた点は記入していきますね。

Kengo Kyuragi

unread,
Feb 6, 2011, 2:56:45 AM2/6/11
to fmdevs
キュウラギです。

> これらは各バージョン毎でも違ってきますね。

Pro 版と Advanced 版でもですね。

flogskin

unread,
Feb 6, 2011, 10:36:11 PM2/6/11
to fmd...@googlegroups.com
本田です。

私も返信遅く、すみません。
ただ、日々の実務の中からフィードバックしていくものなので、
各自余裕を以て、じっくり進めばいいんじゃないでしょうか。

んで、命名規則。
色んな段階の条件が出てきたので、一度まとめてみます。
過不足あったら修正を下さい。


■命名対象となる要素

・ファイル
・テーブル
・TO
・フィールド
・レイアウト
・レイアウトオブジェクト
・スクリプト
・変数
・カスタム関数
・値一覧
・外部データソース
・カスタムメニュー
・アカウント
・アクセス権セット
・拡張アクセス権


■命名に用いる総文字種

(全てシングルバイト)
・アルファベット
・数字
・アンダースコア
・ドット(ファイル名のみ)


■規則の検討で考慮すべき事

・命名対象要素が評価される状況
・命名対象要素を取り扱うインターフェース
・管理の効率性
・判り易さ
・FileMakerのバージョン
・FileMakerのグレード
・FileMaker既存の命名規則
・FileMaker既存の予約語


以上に基づき、命名対象要素ごとに、
何を規則として定義するか、ざっと考えてみました。


■規則として決定すべき事

・文字種
命名対象要素によっては、必ずしも、
上記総文字種全てを用いるべきではない可能性があります。
少なくとも、ファイル名は既に、拡張子の為のドットを必要とします。

・禁則
先頭の数字など、他言語では一般的な制約が、
FileMakerには存在しない場合があります。
互換性の確保の為にも、そういったものは禁止されているべきです。
また、敢えて積極的に禁止すべきパターンもあり得ます。

・プレフィックス, サフィックス
判り易さの為にも、効率良い管理の為にも、
何らかのプレフィックスやサフィックスは必要になります。
FMDev_ConvNov05.pdfなども参考に、
原則的なものと、汎用的なものと、それぞれ決まるのではないでしょうか。
このパターンは、特に要素別で大きく違いそうです。

・セパレーション
キャメルケースかアンダースコアのいずれか、
或いはそれらを組み合わせたり、連続させたり、
とにかく統一的な区切りの表現を決める必要があります。

・固有名, 固有パターン
定数的なものなどの汎用的なパターンや、
主キーや独自の予約語など、
命名対象要素ごとに、更に特殊な扱いが必要なものもあります。


以上、思い付いたものを並べました。
決めるべき事が多いように見えますが、
最後に集約すれば、主パターンと例外幾つか程度の、
コンパクトな規則に出来るんじゃないかと思います。

決める作業の土台になるものなので、
これが大方洗い出せれば、各要素の検討に移れます。

-

FileMakerのGUIについて。
色んな所で不満を書いてますが、
リソースを管理する術として設計されてんのか?という、
なんかもう根本への苛立ちがあります。
理不尽な制約や、基本的な機能の不足、バグ。
FileMakerClipboardBrokerもどき作ったり、
DDRの解析してみたりしてますが、
解決出来ていない問題も多々あります。

命名規則に限らず、設計規則でそれらをカバー出来れば、
設計の迷いが減るだけでなく、より手入れし易くなります。
FileMakerを使い込んでないと分からない、
独特のGUIに合わせた考慮、確かに必要だと思います。

因みに、オブジェクト名もスクリプト引数も、
管理がややこしいので多用してません。
スクリプト引数は、スクリプトの名称を
ScriptName(arg=defaultValue) なんて風にしてますが、
()使う罪悪感があります。
オブジェクト名は…ソース見ろで済ませてますね。
変数も、データビューワーで生死追い掛けてみたら、
「え? ="" でunsetなの!?」って驚いて以来、
自前で集約管理する仕組みの実装は諦めました。

しかし、計算式のエディタ部分だけでも、書体は等幅にして欲しい。
今はエディタにFileMaker計算式用のカラーリングやシンタックスルール書いて、
コピーペーストでやり取りしてます。

Reply all
Reply to author
Forward
0 new messages