にゃあ

命名規則について

3ヶ月前のコードはまるで他人が書いたかのように感じることは良くあります。他人に感じるならまだしも、目も当てられないコードになっていることさえあります。理由には「コーディングスタイルが決まってない」、「スキルが向上した」、「そのときの気分で」などがあると思いますが、原因はともあれ3ヶ月後の自分が今のコードを読んで理解できるように一貫したコードにする必要性を感じ始めました。

決めたいもの

  1. クラス名
  2. メソッド名
  3. 関数名
  4. 変数名
  5. テンプレート名
  6. ファイル名

命名規則を設定する上での問題

PHPの関数にはis_file_existsみたいに小文字とアンダースコアからなるものと、htmlSpecialCharsのように大文字と小文字からなるものがあります。これが既にコーディングスタイルを統一する上で障害になっているのは明らかです。

参考になるもの

自分流に命名規則を考える

  • 英字の大文字と小文字が基本。
  • 数字は使わない(utf8とかしょうがないときは許容とする)。
  • 小文字から始め、二つ目以降の形態素は頭を大文字にする。
  • 曖昧さや誤解を防ぐため、省略はしすぎない。
  • ハンガリアン記法は必要に応じて使う。

クラス名

{名前空間}_{クラス名}
名前空間:英数字の大文字・小文字。名前空間の階層はアンダースコアで示す。
クラス名:英数字の大文字・小文字
ex, Suin_ObjectHandler

メソッド名

英数字の大文字・小文字。
動詞か動詞+目的語にする。
ex, getVer, isError, insert
できるだけ英文法になぞったネーミングにしたいが、あまり格が多種多様だと統一性がなくなってしまうので、格も人工的に決めてしまう。

  • 主格(~が):表示しない
  • 対格(~を):無標。というかV+Oという語順 ;getVer
  • 与格(~のために、~へ):to, for ;getVerForSql
  • 属格(~の):of ;getHeightOfImage
  • 具格(~で):by ;getElementById
  • 様格?(~として):as ;getVerAsArray

関数名

英数字の小文字とアンダースコア。
ex, suin_get_int

変数名

英数字の小文字・大文字
ex, $storyId

テンプレート名

XOOPSだとSmartyのテンプレートは全てhtmlになってしまうが、必ずしもテンプレートがHTML形式に使われるとは限らないのであって、tplにするのが妥当だと考え次のようにする。

  • 管理用:{dirname}_admin_{テンプレート名}.tpl
  • ブロック:{dirname}_block_{テンプレート名}.tpl
  • 公開側:{dirname}_main_{テンプレート名}.tpl
  • includeされるテンプレート:{dirname}_inc_{テンプレート名}.tpl
  • メール:{dirname}_mail_{テンプレート名}.tpl

ファイル名

ファイル名はURLの一部になる可能性があるので、関数名同様に英数字の小文字とアンダースコアにする。
ex, suin_objecthandler.php

これで3ヵ月後のコードは自分のコードになるだろうか?

とりあえず、この命名規則でしばらくやってみることにします。


コメント&トラバ

トラックバックを送る

無関係なスパムのトラックバックを防止するため、リンク先で本サイト(suin.asia)への言及が確認されないトラックバックは破棄しています。

トラバURL : http://suin.asia/trackback/54

コメントを書く

お名前* URL
本文*
合い言葉* ←「wh26percs」と入力して下さい。
* この記事の話題と関係ないコメントはどんな内容でも削除します。(移動できないので)

トラックバック

トラックバックがないのはさみしいにゃん…。

コメント

コメントはないです。誰かコメント書いてよぅ…。

Author

Submenu

Recent Entries

XOOPS Cube Dev Ring

氷川 XOOPS Module 開発室

Recent Comments

Recent Trackbacks

facebookいいね