Скрипт - это простой код без классов.
Проблема состоит в том, что дописание кода с использованием конструкции if (if($new) {/*новое поведение*/} else {/*старое поведение*/}), постепенно превращает код в гордеев узел для чтения. Затем может понадобиться и ещё что-то дописать и код будет устрашающе расти и запутываться.
Решение превратить код в класс, разделить всё выполнение на методы, а затем наследованием расширить этот класс до нового класса, переопределив только те методы, которые поменялись - красивое, но существует вероятность при превращении исходного кода в класс что-то забыть, что-то напутать (например, какую-то переменную, которая должна быть доступна во всех методах, забыть сделать свойством объекта класса), и в итоге что-то где-то сломается, то есть нужно будет ещё одно серьёзное тестирование (тестировать данный скрипт не очень просто, так как он много что меняет в базе и уследить за всем не просто).
Пытаясь найти идеальную середину между читаемостью кода (простотой последующего расширения) и Гиппократовским принципом "не навреди", что посоветуете?
Спасибо большое!
Спустя 2 минуты, 43 секунды (30.11.2011 - 14:07) Игорь_Vasinsky написал(а):
непонял... так нечитабелен, сяк - боишся сломат.
расширяй в процедурном стиле, придерживаяся стиля
обильные комменты в начале кода
обильные комменты по ходу кода.
расширяй в процедурном стиле, придерживаяся стиля
обильные комменты в начале кода
обильные комменты по ходу кода.
Спустя 20 минут, 13 секунд (30.11.2011 - 14:27) TranceIT написал(а):
Для удобочитаемости можно использовать функции.
Отлично читается... Функции в том же порядке в начале файла. Или даж каждую ф-цию в отдельный файл и подключаем по необходимости.
if (/*условие*/)
function func1();
if (/*условие*/)
function func2();
if (/*условие*/)
function func3();
if (/*условие*/)
function func4();
if (/*условие*/)
function func5();
Отлично читается... Функции в том же порядке в начале файла. Или даж каждую ф-цию в отдельный файл и подключаем по необходимости.
Спустя 12 минут, 27 секунд (30.11.2011 - 14:39) johniek_comp написал(а):
А вы понимаете зачем вообще нужны классы? Я бы за комментировал и не парился бы этому поводу.
Спустя 13 минут, 51 секунда (30.11.2011 - 14:53) killer8080 написал(а):
abracadabra
а так
и читабельно, и старый код трогать не надо. Тупо выносишь его в отдельный файл.
а так
if($new)
include 'new.lib.php';
else
include 'old.lib.php';
и читабельно, и старый код трогать не надо. Тупо выносишь его в отдельный файл.
Спустя 21 час, 47 минут, 12 секунд (1.12.2011 - 12:41) abracadabra написал(а):
Игорь_Vasinsky, TranceIT, johniek_comp, killer8080
Спасибо огромное за ответы! Очень приятно - такой отзывчивый форум! =))
TranceIT
Да, это самый подходящий вариант, спасибо!
killer8080
В условиях того, что старый код постепенно станет невостребованным, этот вариант тоже очень классно подходит, спасибо!
Спасибо огромное за ответы! Очень приятно - такой отзывчивый форум! =))
TranceIT
Да, это самый подходящий вариант, спасибо!
killer8080
В условиях того, что старый код постепенно станет невостребованным, этот вариант тоже очень классно подходит, спасибо!