rhaco1-doc :: 099-tips/01-easy-to-read-coding.txt
http://wikihub.org/wiki/rhaco1-doc/099-tips/01-easy-to-read-coding
Table of contents:
- rhaco
- モデル
- テンプレート
- ビュー
- プロジェクト
- セットアップ
- ユーティリティ
- データベース
- テスト
- arbo
- Tips
- ブログチュートリアル
- README
Updates:
読みやすいコードを書く
例えば,project.xml の choices で,次のような列を作成します.
<column name="status" type="integer" require="true" label="ステータス"> <choices> <data caption="有効">1</data> <data caption="無効">0</data> <data caption="草稿">2</data> </choices> </column>
で,モデルのロジックでこのステータスに依って処理を分岐させる際には,こんな感じになりますよね.
<?php class Hoge extends HogeTable{ function verifyStatus(){ : if($this->getStatus()==2){ //なんか処理 : return false; } : return true; }
で,後で必ず思うのが,「2 ってなんや?」って事です.
こんな時にわざわざproject.xmlを読むのって面倒ですよね.
そこで, project.xmlに"<define/>" を用いてあらかじめ,ステータスの値を定義します.
<define name="STATUS_DRAFT" value="2"/>
こうしておくと,次のようなコードになり,その場で処理の内容を完璧に把握することができます.
<?php : if($this->getStatus()==Rhaco::constant(VAR_STATUS_DRAFT)){ //なんか処理 } :
このとき,"VAR_STATUS_DRAFT" は rhaco の setup で自動的に作成されますので, PDT 等のエディタを用いた際には,自動補完が可能なようになっています.
処理の分岐にステータスを利用する箇所が発生する毎に,define に落とし込むように心がければ,コードの見通しも良くなるのではないでしょうか?
また,値の仕様変更する事が発生した際にも,コード側は一切の変更が発生しないで済みます.


