[英]Coding style: function and procedures coding standard
Code Complete 2的7.6章讓我感到困惑,我附帶了一些示例代碼(在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”和“ else if”在不同的條件下使用,因此沒有意義。
在樣式2行中:
$this->twitter->login($user, $pass);
if($this->twitter->isLoggedIn())
在某些情況下很難閱讀,但這是適當的。
對我來說,最好的是Style 3。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.