Задать вопрос

Надо ли расписывать всё по переменным?

Насколько знаю, программисты - те, кто меряется не "у кого длиннее", а у кого короче.

В связи с этим для меня часто возникают непонятки. Вот, скажем, такой абстрактный пример:

public function doTheWork($string) 
{
    $arg1 = $this->getValue(1);
    $arg2 = $this->processor->process($string);
    $arg3 = $this->data->some_string ?? '';

    $result = $this->doSomething($arg1, $arg2, $arg3);

    $return result;
}


Вот видел, что некоторые пишут так. Но это же очень длинно - и ведь введенные переменные используются только один раз, а есть принцип - не плодить лишние сущности. Почему бы не написать так:

public function doTheWork($string) 
{
   return $this->doSomething(
        $this->getValue(1),
        $this->processor->process($string),
        $this->data->some_string ?? ''
   );
}


- по-моему идеально, ничего лишнего. Это нормальный вариант? Если нет, то почему? В чем его недостатки? И в чем преимущества прописывания значений по переменным?
  • Вопрос задан
  • 161 просмотр
Подписаться 1 Оценить Комментировать
Решения вопроса 1
Denormalization
@Denormalization
В первом варианте лучше читаемость. Ты не в твиттер пишешь, чтобы ужимать код.
Чем выше читаемость - тем проще поддержка кода.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
sabramovskikh
@sabramovskikh
Можно, но читаемость кода ухудшилась.
Моожно вообще тогда все в строку писать, все вычисление какойнить астрономической сущности
Ответ написан
Комментировать
Daemon23RUS
@Daemon23RUS
Это путь к:
public function dW($s){return $this->dS($this->g(1),$this->p->p($s),$this->d->s ?? '');}
Надо ли ?
Ответ написан
@krypt3r
Вставлю своё ИМХО. С точки зрения читабельности между примерами нет разницы (для меня, по крайней мере). Если в своем коде я вижу нечто примеру 1, я почти всегда приведу код ко второму варианту. А зачем создавать лишние переменные? Если бы я их как-то обрабатывал внутри метода с многократным к ним обращением, тогда да, создание дополнительных переменных оправдано. А так я за вариант 2.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы