我们与好友讨论了以下代码和逻辑。我们有一个处理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调用。
感谢。
答案 0 :(得分:2)
代码变得更加自我记录。每当您看到内联注释时,可能会提示将代码提取到自己的方法中,并将注释合并到方法名称中。
代码与其他人的关系更好。这可能是也可能不是你的考虑因素,但是如果有人想要使用200行功能中的10行,那么他们很可能最终会复制并粘贴它,这对任何人来说都没有用。 / p>
在类似的说明中,heckload方法==更容易进行单元测试。测试让圣诞老人高兴。