powered by nequal

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:

collapse all expand all

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 に落とし込むように心がければ,コードの見通しも良くなるのではないでしょうか?

また,値の仕様変更する事が発生した際にも,コード側は一切の変更が発生しないで済みます.