コーディングスタイル:機能と標準コーディング手順
-
21-09-2019 - |
質問
完全なコードのChの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「の場合」と「それ以外の場合は、」それは意味がないので、さまざまな条件で使用されます。
でスタイル2行:
$this->twitter->login($user, $pass);
if($this->twitter->isLoggedIn())
は、いくつかの状況では読みにくいすぎですが、それは正しいのです。
私にとって最高の1スタイル3です。
所属していません StackOverflow