KISS与方法的重要性

时间:2011-01-21 10:30:13

标签: coding-style

我们与好友讨论了以下代码和逻辑。我们有一个处理POST请求的系统(实际上不是REST,只是发布请求)。请参阅以下php以获得想法:

class Pancake {
  public function servePancake()
  {
   if (/* check something on the kitchen*/) {
    echo json_encode(array('status' => 'error', 'message' => 'kitchen offline'));
    exit;
   }

   if (/* check something else on the kitchen */) {
    echo json_encode(array('status' => 'error', 'message' => 'Santa hates you, no pancakes this time'));
    exit;
   }  

   if (/* check if there's something else in the menu */) {
    echo json_encode(array(
     'status' => 'weDoHaveMenuYouShouldCheckItOut', 
     'message' => 'See the menu for a pancake flavor you wish',
     'pancakeTypes' => array('cherry', 'blueberry', 'blackberry')
    ));
    exit;
   }

   // And so on with lot's of options, but pretty simple inside

   // if everything went fine
   echo json_encode(array('status' => 'ok', 'message' => 'Here is your pancake'));
   exit;
  }
 }

有没有理由为每个答案制作方法?我的意思是以下内容:

 protected function respondWithMenu($message, $menu)
  {
   // basically the same json_encode and exit;
  }

  protected function respondWithSuccess($message);
  {
   // Status is succes + same json_encode
  }

  protected function respondWithError($message)
  {
   // Status is error + same json_encode
  }

  protected function respondWithSomethingElse($message, $somethingElse)
  {
   // adding something else to the response
   // and then.... gues what?
   // yeah, json_encode, you're correct!
  }

并使用它们而不是直接json_encode调用。

感谢。

1 个答案:

答案 0 :(得分:2)

代码变得更加自我记录。每当您看到内联注释时,可能会提示将代码提取到自己的方法中,并将注释合并到方法名称中。

代码与其他人的关系更好。这可能是也可能不是你的考虑因素,但是如果有人想要使用200行功能中的10行,那么他们很可能最终会复制并粘贴它,这对任何人来说都没有用。 / p>

在类似的说明中,heckload方法==更容易进行单元测试。测试让圣诞老人高兴。