unoh.github.com

インデントをなるべく浅くするテクニック

Thu Aug 17 04:20:34 -0700 2006

こんにちは satoです。

インデントが浅いと、コードが見やすいです。
インデントが浅くなりそうなテクニックを紹介します。
時と場合にもよりますし、賛否両論もあると思いますが、寛大な目でみてやってください。

1)処理の判定は正常じゃない場合を書く

 //before
 $data = getdata();
 if ($data) {
  なんか複雑な処理;
 } else {
  return false;
 }
 //after
 $data = getdata();
 if (!$data) {
  return false;
 }
 なんか複雑な処理;


2) array か どうかを判断する場合は array にして処理をする

 //before
 if (is_array($args)) {
  foreach() ...
 } else {
  ....
 }
 //after
 if (!is_array($args)) {
  $args = array($args);
 }
 foreach ...


3) 単純な代入が伴うif文には 三項演算子を使う

 //before
 $data = getdata();
 if (isset($data['id'])) {
  return $data['id'];
 }
 return false;
 //after
 return isset($data['id']) ? $data['id'] : false;


4) forの中での特別処理は continue を使用する

 //before
 foreach ($value as $v) {
  if ($v % 2 == 0) {
   複雑な処理;
  }
 }
 //after
 foreach ($value as $v) {
  if ($v % 2 == 1)
   continue;
  複雑な処理;
 }


5) 複数条件の if は switch で書く

 //before
 if ($v == 'A' || $v == 'AB'  || $v = 'B') {
  処理1;
 }
 else if ( $v == 'O') {
  処理2;
 } 
 else {
  処理3;
 }
 //after
 switch($v) {
 case 'A':
 case 'AB':
 case 'B':
  処理1;
  break;
 case 'O'
  処理2;
  break;
 default
  処理3;
  break;
 } 


他にもナイスなアイディア募集中です!