Чем пожертвовать, DRY или самодокументируемым кодом? Доброй ночи.
Есть приложение, недавно закончил рефакторинг. Появилось много классов, неймспейсов и еще больше функций, в том числе и однострочных. Я старался сделать код самодокументируемым, посему часто можно встретить функции вроде:private function is_map_have_passed_param($map, $param) {
return is_array($map) && isset($map[$param]);
}
private function get_array_of_default_values_from($string) {
return explode('-', $string);
}
Проблема в том, что подобные атомарные функции расплодились по всем классам, и в некоторых местах нарушают DRY - есть даже почти одинаковые функции, но названные по-разному в угоду самодокументируемости. Нельзя просто взять и заменить обратно ту же get_array_of_default_values_from - будет непонятно, что получается из разбиения строки. Потребуется комментарий, а, как известно, лучший комментарий - тот, без которого удалось обойтись.
Поэтому я придумал воспользоваться трейтами, и вынести все атомарные функции в трейт. Это будет 100% DRY, но самодокументируемость скорее всего пострадает: мне придется объединить несколько функций, делающих одно и то же, но имеющие разные имена, в одну универсальную.
Чем лучше пожертвовать? И можно ли усесться на два стула сразу?

21 Авг 2019 в 06:29
403 +1
0
Ответы
1

Как всегда, выбор между DRY и самодокументируемым кодом зависит от конкретной ситуации и приоритетов проекта. В вашем случае, если количество повторяющихся функций значительно и они начинают усложнять код, то, возможно, стоит пожертвовать некоторой самодокументируемостью в пользу DRY.

Использование трейтов для вынесения повторяющихся функций может быть хорошим компромиссом. Вы можете выделить общие функции в трейт, сохраняя при этом их универсальность, и при необходимости добавить комментарии к этим функциям для ясности их назначения.

Важно помнить, что чистый и понятный код важнее обоих аспектов. Поэтому старайтесь найти баланс между DRY и самодокументируемым кодом, чтобы ваш код был легко поддерживаемым и понятным для других разработчиков.

20 Апр 2024 в 13:17
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир