【開発】


MySQL4.xとPHP4.xを使用しています。

チームで開発する時、
ソースの可読性をあげるために、
変数名は、単語の切れ目で大文字と小文字で・・・
というルールが暗黙で決まっていると思います。

× $red_line
○ $redLine

しかしながら、MySQLのフィールド名は大文字小文字を区別しないので

× `redLine`
○ `red_line`

みたいなことになっています。

MySQLは、大文字分かってくれないから仕方ない
というのも暗黙っぽいですね。


さて、可読性と世界中のルールを考えると、
× $red_line
○ $redLine
の方が良い感じもしますが、
PHPからMySQLのデータとのやりとり時に、
変数名のコピペ失敗して、
typoしちゃうこともあるので、

いっそのこと、PHPもMySQLも
× `redLine`
○ `red_line`
ってしちゃった方がバグが少ないかなと思ったりするのですが、
皆様のご意見をお聞かせください。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2008/03/22 21:45:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答4件)

id:lifehacks No.1

回答回数12ベストアンサー獲得回数0

ポイント23pt

ちょっとそれは厳しすぎるのでは?ライトウェイトなスクリプトとしては、事前コンパイルを前提としないし。予期せぬパターンで出現するバグをより含みやすくすると思うのだが。

id:caster777

もう少し分かりやすく書いていただけると幸いです。

2008/03/16 15:14:44
id:yyok No.2

回答回数59ベストアンサー獲得回数3

ポイント23pt

確かに最近は世間的には、大文字小文字の組み合わせが多いと思います。

私の場合は、

http://www.sra.co.jp/wingnut/standards-j_toc.html

「GNUコーディング規約」の中のこれ

http://www.sra.co.jp/wingnut/standards/standards-ja_5.html#SEC26

「変数、関数、ファイルの名前付け」を参考にしてました。

最近は

http://shugo.net/ruby-codeconv/codeconv.html

「Rubyコーディング規約」の命名規則も少し気にしてます。

どちらも変数名、メソッド名(関数名)については

・小文字使用

・区切りは'_'(アンダーバー)

という点は共通です。

Rubyコーディング規約についてはクラス名だけは区切りを使わず、大文字小文字の組み合わせです。

確かにこれだとクラス名とメソッド名、属性名の区別がつきやすいのでわかりやすそうです。

id:caster777

おお!!

ありがとうございます。

GNUコーディング規約やRubyコーディング規約では、

アンダーバーで区切るのですね。

知りませんでした。

2008/03/16 15:16:53
id:watch00 No.3

回答回数112ベストアンサー獲得回数0

ポイント22pt

>ってしちゃった方がバグが少ないかなと思ったりするのですが、

名前の付け方とバグとはあまり関係ないと思います。

DBのネーミングルールとプログラム言語のネーミングルールが

違うことも良くあります。

redLineで統一しても良いのではないですか?

フィールド名は大文字小文字を同一視するだけで、大文字小文字のまま

のはずです。

http://youkey.spaces.live.com/Blog/cns!DF5ABB2B86ACBDDB!230.entry

red_lineでもよいと思いますよ。

昔のPerlとかCとかこのスタイルですしね。

多数決で決めても良いぐらいの問題のように私は思います。

id:caster777

あ、すみません。

バグっていうか、typoが多くなって、エラーが起きるというか。。。

例えば、DBからred_lineを引っ張ってきて、

$red_Line = $dbResult['red_line'];

(略)

print $redLine;

な感じにしちゃってどこがエラーかみつけにくいことが出ちゃうんです。

> red_lineでもよいと思いますよ。

なるほど、スタイルは自分で築いていけばいいかもしれませんね。

2008/03/16 15:21:32
id:cuspos No.4

回答回数49ベストアンサー獲得回数10

ポイント22pt

個人で開発するツール類であれば、コーディング規約はいろいろあるので個人的になじみやすいものでいいと思います。私の場合は以前redLineでしたが、今はRubyを好んで使っているのでred_lineです。

チームで開発する場合はばらばらだと面倒なんで、PHPであれば標準規約でredLineだと思うのでそちらにあわせたほうが良いような気がします。私もid:watch00さんのおっしゃられるように多数決で決めても良い問題のような気がします。まー多数決となると結局言語の標準規約を多く採用している人が多いと思いますので、個人的には標準規約になるべくあわせるようにと思っています。

http://phpspot.net/php/man/pear/standards.html?t=phps

http://framework.zend.com/manual/ja/coding-standard.html

あと私も良くやっちゃうんですが、コピペはしないほうがバグは減りますね。後は適切にクラス設計して冗長なコードを排除できるように学習中です。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません