gallu’s blog

エンジニアでゲーマーで講師で占い師なおいちゃんのブログです。

規約

テーブル名はわかりやすいものを用いる。テーブル名の後ろに"_table"、"_tbl"などは付与しない。
理由:
おいちゃんview嫌いだし。だとすると、_tableとか付ける理由がとりあえず見あたらないから。


一方で。カラム名は少し丁寧に。特に「id」とかいう名前は禁止。clientテーブルのIDなら「client_id」とかにしたい。
理由:
コーディング中の一瞬のとまどいが避けられるのと。この辺決めとくと、あとで「外部キーとほにゃららを自動で」なんて時に、カラム名の一致だけで見やすいからなんか便利な気がして。
まだ結構もやってるけど。

  • コーディングの基本

インデントはスペース2文字
理由:
好みだからw
タブだと、環境依存もあるしねぇ。


銘々規約は蛇(オール小文字&アンスコで繋ぐ)
理由:
これも好みw
…なんかオールドタイプな気がしないでもないけど。まぁそれはそれでよし。


if文は、可能な限り左側に定数を持ってくる
理由:
「間違って比較のつもりで代入しちまったよヲイ」的エラーが防げるから。


比較は、数値やbooleanなら"==="、文字列にはstrcmpまたはstrncmpあたりを用いる
理由:
2a問題( http://d.hatena.ne.jp/gallu/20061108/p1 )参照。


正規表現は可能な限り回避の方向で
理由:
基本「重い処理」だから。ごく簡単なものならそも正規表現いらないし、複雑ならむしろ状態遷移とかを視野に入れるべき。

  • classを書く時の色々

書く内容の順番は「コンストラクタ&デストラクタ」「初期処理」「雪駄下駄*1」「public(&protected)なメソッド」「privateなメソッド」「クラス変数の定義」の順番で。
理由:
「人に見せたい部分」から「見せたくない部分」へ流れている流れにしたいから。


クラス変数は必ずprivate。かつ「雪駄下駄以外」のあらゆるところでの直接操作禁止。
理由:
「随所に関所( http://d.hatena.ne.jp/gallu/20080225/p1 )」参照。


クラス変数は、名前の最後にアンスコを付ける
理由:
一目でわかるから。先頭にアンスコを付けないのは…「なんか問題があるらしい」と聞いたのだけど理由失念(苦笑
いずれにしろ、おいちゃんが教わって身についちゃったんだからあとは好みとしか言いようがないw


コンストラクタの引数は原則不許可
理由:
エラー捕捉が面倒だから。なのでコンストラクタに処理を書くのも原則禁止。
やるのは唯一「初期処理メソッドのcall」だけ。


初期処理メソッドは可能な限り実装しよう
理由:
インスタンスを再利用したいから。或いは「インスタンス生成によるメモリ食い」の節約のため(苦笑
余り美しいお作法じゃないんだけど…現実とのせめぎ合いが、ねぇ(苦笑


また思い出したりしたときに多分memoりますw

*1:setter/getterの事…って説明しなきゃわからんジョーク飛ばすなや