编码风格:功能和编码标准程序
-
21-09-2019 - |
题
代码的7.6章全2困惑我,我已经附加了一些示例代码(在PHP)介意告诉我哪种风格是最好的?或暗示更好的东西?感谢
样式1
public function register($user, $pass) {
if($this->model->isRegistered($user)
{
return false;
}
else if($this->twitter->login($user, $pass))
{
return $this->model->addUser($user, $pass);
}
return false;
}
样式2
public function register($user, $pass) {
if($this->model->isRegistered($user)
{
return false;
}
$this->twitter->login($user, $pass);
if($this->twitter->isLoggedIn())
{
return $this-model->addUser($user, $pass);
}
return false;
}
样式3
public function register($user, $pass) {
if($this->model->isRegistered($user)
{
return false;
}
$status = $this->twitter->login($user, $pass);
if($status)
{
return $this->model->addUser($user, $pass);
}
return false;
}
目前,我正在利用方式1.虽然我不是很确定如果正确的。
解决方案
我不想听起来太失礼,但我喜欢的3个提议的风格没有人。如果我检查防止功能的执行条件,我会一直用这种风格坚持下去。一般来说:
function action()
{
if ($guard_condition1)
return $failure;
if ($guard_condition2)
return $failure;
do_action();
return $success;
}
所以我重写代码如下:
public function register($user, $pass)
{
if ($this->model->isRegistered($user))
return false;
if (!$this->twitter->login($user, $pass))
return false;
return $this->model->addUser($user, $pass);
}
无论如何,如果你需要在你提出什么意见,我会投票方式3。
其他提示
在式1“if”和“如果其他”用于不同的条件,所以没有什么意义。
在样式2行:
$this->twitter->login($user, $pass);
if($this->twitter->isLoggedIn())
有太多难以在某些情况下阅读,但它是正确的。
有关我最好的一个是式3。
不隶属于 StackOverflow