Духовность™
Продвинутый новичок
использовать функцию или повторять код?
Есть класс порядка 700 строк. Есть методы типа:
этот вспомогательный метод используется только в 2 местах, в таких же protected final методах (впрочем, видимость тут просто к слову):
вопрос: как боле правильно в таких вот случаях - выносить код методов типа createSimpleRowObjectFromArray в отдельные методы, как сейчас сделано или повторять этот код там. где сейчас вызовы createSimpleRowObjectFromArray?
Что не нравится уже сейчас:
- цепочки методов при таком подходе получаются уже большой глубины, до вложенностью 3-4 и я начинаю беспокоиться о быстродействии - уже пахнет "жаренным"
- становится трудно ориентироваться в коде.
Есть класс порядка 700 строк. Есть методы типа:
PHP:
protected final function createSimpleRowObjectFromArray($data)
{
$object = new $this->model_class_name();
if ($data)
{
foreach ($data as $key => $value)
{
$object->$key = $value;
}
}
return $object;
}
PHP:
protected final function findSimpleRowObjectByParams($params)
{
$res = $this->selectSimpleRowRes($params);
$object = $this->createSimpleRowObjectFromArray($res->fetch_assoc());
return $object;
}
Что не нравится уже сейчас:
- цепочки методов при таком подходе получаются уже большой глубины, до вложенностью 3-4 и я начинаю беспокоиться о быстродействии - уже пахнет "жаренным"
- становится трудно ориентироваться в коде.
А если серьезно, у Фаулера есть такая формулировка подходов тестирования: проверка состояния и проверка поведения. Хотя это он про TDD, но вообще это к любому коду относится. Просто делай боле содержательные состояния. По идее это должно привести к тому, что из кода исчезнут бесполезные вызовы, которые тебе не нравятся.
Хотя мне в последнее время больше нравится подход java - final class... Но это не тот случай.