Форум → Программирование → PHP для идиотов → улучшить код
улучшить код
Страницы: ← Следующая страница →
-
Есть один скрипт. Написан в процедурном стиле. Разбит на функции, делающие что-то с БД, делающие HTML, функции, выносящие часть логики из основного скрипта и просто разные функции. Дергается все это из одного файла.
Конфиг в виде файла с константами, которые используются абсолютно везде. Указатель на БД - глобальная переменная, ошибки через die и т.д.
Переписывать с нуля я пытался несколько раз, но каждый раз бросал и только погружался в отчаяние.
Посоветуйте, как можно постепенно, по шагам, улучшать подобный код. У кого-нибудь был подобный опыт?
В целом скрипт работает хорошо и если бы не потребность что-то в него дописывать время от времени (мешает зависимость от конфига с этими идиотскими константами в частности) вопрос даже не стоял бы. -
Янв. 22, 2013, 12:04 д.п., спустя 33 минуты 32 секунды
оставить как есть, забросить и переписать с 0 :)Сапожник без сапог -
Янв. 22, 2013, 4:49 д.п., спустя 4 часа 44 минуты 55 секунд
Ну хоть бы обругал кто, я может переписал бы.
Большая проблема с мотивацией. -
Янв. 22, 2013, 9:31 д.п., спустя 4 часа 42 минуты 13 секунд
соберись, тряпка!
(помогает?)ιιlllιlllι унц-унц -
Янв. 23, 2013, 7:59 д.п., спустя 22 часа 27 минут 57 секунд
lolcat, если кодишь на php 5.3, то обгораживаешь все файлы неймспейсом напримере
namespace SomeOldSystem;
#код
в итоге вся старая система доступа в одном неймспейсе, можно развить тему дальше и написать эмулятор для существующего кода с использованием возможностей неймспейсов, то есть переопределение функции и бла бла бла.
А поверх забобахать классный фреймворк, и SomeOldSystem, научить работать с этим фреймворком, путем use и тех же переопределений. -
Янв. 24, 2013, 1:13 д.п., спустя 17 часов 14 минут 13 секунд
Замыкания на php так уебищны, что даже нет никакого желания их использовать. Это при том, что JS (и его замыкания) мне очень нравится.
Инкапсуляция говна с обстройкой его хорошим кодом - проще сразу написать с нуля, тем более что кода не так и много, тысяч пять строк, не больше.
Начал с изничтожения констант.
>Этот топик скрыли: adw0rd
Воспринимаю это как комплимент моему гению программирования! -
Янв. 24, 2013, 1:19 д.п., спустя 5 минут 21 секунду
Уебищны, не замыкания собственно, а отсутствие нормальных контекстов видимости …
Замыкания на php так уебищны, что даже нет никакого желания их использовать. -
Янв. 24, 2013, 4:41 д.п., спустя 3 часа 22 минуты 37 секунд
true
Уебищны, не замыкания собственно, а отсутствие нормальных контекстов видимости …
Замыкания на php так уебищны, что даже нет никакого желания их использовать.Сапожник без сапог -
-
-
Янв. 24, 2013, 12:33 п.п., спустя 2 часа 11 минут 50 секунд
А какую вы хотите получить новую архитектуру?
Стройте рядом новый костяк проекта.
Затем постепенно переносите функционал в новый костяк, а в старых функциях делайте вызовы к новому.
У меня подобный проект третий год на руках. Пишется новый функционал, постепенно переносится на новый лад и старый.
На примере:Указатель на БД - глобальная переменная
C БД вся работа через "новый" класс BD. Для обратной совместимости инициализируется также глобальная переменная ($global_db = db::getHandle()). Но в новом коде её никто не использует.
C die() тоже можно поиграть. Сделайте свою функцию обработки myDie() и пройдитесь по коду автозаменой. -
Янв. 24, 2013, 12:35 п.п., спустя 2 минуты 30 секунд
хороший код старый, раз хендл использует!)
А какую вы хотите получить новую архитектуру?
Стройте рядом новый костяк проекта.
Затем постепенно переносите функционал в новый костяк, а в старых функциях делайте вызовы к новому.
У меня подобный проект третий год на руках. Пишется новый функционал, постепенно переносится на новый лад и старый.
На примере:Указатель на БД - глобальная переменная
C БД вся работа через "новый" класс BD. Для обратной совместимости инициализируется также глобальная переменная ($global_db = db::getHandle()). Но в новом коде её никто не использует.
C die() тоже можно поиграть. Сделайте свою функцию обработки myDie() и пройдитесь по коду автозаменой.Сапожник без сапог -
Янв. 24, 2013, 1:51 п.п., спустя 1 час 16 минут 2 секунды
хороший код старый, раз хендл использует!)
Местами :) -
Янв. 25, 2013, 8:13 п.п., спустя 1 день 6 часов 22 минуты
C die() тоже можно поиграть.
Die уже давно завернут в красивую функцию. Но суть-то порочна!рядом новый костяк проекта
Да, это я и хочу проделать.
Хотелось бы бестпрактик на тему улучшения процедурного кода. Без конкретного понимания, что делать влезаю в код и сразу хочется совершить сеппуку. -
Янв. 31, 2013, 3:11 п.п., спустя 5 дней 18 часов 57 минут
Сделай сэппуку, будь мужиком!ιιlllιlllι унц-унц
Страницы: ← Следующая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!