@Alk90
php, mysql, jquery, css, html, api

Как решить проблемы с НЕ дублированием кода?

Всем привет! Когда начинал изучать php, везде призывали к тому, чтобы код ни в коем случае не дублировался... Мол будешь изменять что-то и придется ползать по файлам и изменять одно и то же везде, и где-то забудется...
Но никто не упоминал о другой стороне медали...
Как вы боретесь с такой ситуацией? Когда хочется изменить этот единственный код для одной части приложения, и меняя его затрагиваются те, о которых я уже не помню. В итоге всё ломается...
  • Вопрос задан
  • 116 просмотров
Пригласить эксперта
Ответы на вопрос 3
@sidni
Php Developer
Сложно ответить сумбурный вопрос.
Но если в кратце.
Когда хочется изменить этот единственный код

Это не означает что у вас весь уникальный код в одной функции, методе или объекте, их может быть сотни (максимально не зависимых друг от друга) как конструктор или луковица объеденные в один функционал (S в абривиатуре SOLID) поскольку функционал может разный то и состовляюшие (элементы) могут по разному комбинироваться и поэтому когда хочется что то поменять в идеале вы заходите в метод длинною около 20 строк и спокойно меняете не боясь что то сломать.
Ответ написан
Комментировать
VladimirAndreev
@VladimirAndreev
php web dev
Есть метод getWhatever(), который общий для всех.
Вы можете в конкретном классе реализовать свой getWhatever(), в котором написать parent::getWhatever() и модифицировать общий результат до частного случая.
getWhatever() не должен быть private и final
Ответ написан
Комментировать
index0h
@index0h
PHP, Golang. https://github.com/index0h
SOLID.
DRY - хортшая практика, но не везде применима. Например у вас есть две в чем-то похожие сушности, далеко не факт что их стоит наследовать от общего родителя иили объединять сервисы что с ними работают. При написании тестов DRY может быть даже анти практикой.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
11 мая 2024, в 00:19
1000 руб./за проект
10 мая 2024, в 23:51
30000 руб./за проект
10 мая 2024, в 23:33
2500 руб./за проект