ФорумПрограммированиеPHP для идиотов → улучшить код

улучшить код

  • lolcat

    Сообщения: 383 Репутация: N Группа: Кто попало

    Spritz Янв. 21, 2013, 11:31 п.п.

    Есть один скрипт. Написан в процедурном стиле. Разбит на функции, делающие что-то с БД, делающие HTML, функции, выносящие часть логики из основного скрипта и просто разные функции. Дергается все это из одного файла.
    Конфиг в виде файла с константами, которые используются абсолютно везде. Указатель на БД - глобальная переменная, ошибки через die и т.д.

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

    В целом скрипт работает хорошо и если бы не потребность что-то в него дописывать время от времени (мешает зависимость от конфига с этими идиотскими константами в частности) вопрос даже не стоял бы.
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz Янв. 22, 2013, 12:04 д.п., спустя 33 минуты 32 секунды

    оставить как есть, забросить и переписать с 0 :)
    Сапожник без сапог
  • lolcat

    Сообщения: 383 Репутация: N Группа: Кто попало

    Spritz Янв. 22, 2013, 4:49 д.п., спустя 4 часа 44 минуты 55 секунд

    Ну хоть бы обругал кто, я может переписал бы.
    Большая проблема с мотивацией.
  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz Янв. 22, 2013, 9:31 д.п., спустя 4 часа 42 минуты 13 секунд

    соберись, тряпка!
    (помогает?)
    ιιlllιlllι унц-унц
  • proga66

    Сообщения: 15 Репутация: N Группа: Кто попало

    Spritz Янв. 23, 2013, 7:59 д.п., спустя 22 часа 27 минут 57 секунд

    lolcat, если кодишь на php 5.3, то обгораживаешь все файлы неймспейсом напримере

    namespace SomeOldSystem;

    #код

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

    А поверх забобахать классный фреймворк, и SomeOldSystem, научить работать с этим фреймворком, путем use и тех же переопределений.
  • lolcat

    Сообщения: 383 Репутация: N Группа: Кто попало

    Spritz Янв. 24, 2013, 1:13 д.п., спустя 17 часов 14 минут 13 секунд

    Замыкания на php так уебищны, что даже нет никакого желания их использовать. Это при том, что JS (и его замыкания) мне очень нравится.

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

    Начал с изничтожения констант.

    >Этот топик скрыли: adw0rd
    Воспринимаю это как комплимент моему гению программирования!
  • AlexB

    Сообщения: 4306 Репутация: N Группа: в ухо

    Spritz Янв. 24, 2013, 1:19 д.п., спустя 5 минут 21 секунду


    Замыкания на php так уебищны, что даже нет никакого желания их использовать.
    Уебищны, не замыкания собственно, а отсутствие нормальных контекстов видимости …
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz Янв. 24, 2013, 4:41 д.п., спустя 3 часа 22 минуты 37 секунд



    Замыкания на php так уебищны, что даже нет никакого желания их использовать.
    Уебищны, не замыкания собственно, а отсутствие нормальных контекстов видимости …
    true
    Сапожник без сапог
  • proga66

    Сообщения: 15 Репутация: N Группа: Кто попало

    Spritz Янв. 24, 2013, 7:43 д.п., спустя 3 часа 1 минуту 31 секунду

    lolcat, :|

    Я имел ввиду не замыкания, а http://php.net/manual/ru/language.namespaces.importing.php .
  • lolcat

    Сообщения: 383 Репутация: N Группа: Кто попало

    Spritz Янв. 24, 2013, 10:21 д.п., спустя 2 часа 37 минут 51 секунду

    proga66, черная магия какая-то.
  • AndryG

    Сообщения: 237 Репутация: N Группа: Адекваты

    Spritz Янв. 24, 2013, 12:33 п.п., спустя 2 часа 11 минут 50 секунд

    А какую вы хотите получить новую архитектуру?

    Стройте рядом новый костяк проекта.
    Затем постепенно переносите функционал в новый костяк, а в старых функциях делайте вызовы к новому.

    У меня подобный проект третий год на руках. Пишется новый функционал, постепенно переносится на новый лад и старый.

    На примере:
    Указатель на БД - глобальная переменная

    C БД вся работа через "новый" класс BD. Для обратной совместимости инициализируется также глобальная переменная ($global_db = db::getHandle()). Но в новом коде её никто не использует.

    C die() тоже можно поиграть. Сделайте свою функцию обработки myDie() и пройдитесь по коду автозаменой.
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz Янв. 24, 2013, 12:35 п.п., спустя 2 минуты 30 секунд


    А какую вы хотите получить новую архитектуру?

    Стройте рядом новый костяк проекта.
    Затем постепенно переносите функционал в новый костяк, а в старых функциях делайте вызовы к новому.

    У меня подобный проект третий год на руках. Пишется новый функционал, постепенно переносится на новый лад и старый.

    На примере:
    Указатель на БД - глобальная переменная

    C БД вся работа через "новый" класс BD. Для обратной совместимости инициализируется также глобальная переменная ($global_db = db::getHandle()). Но в новом коде её никто не использует.

    C die() тоже можно поиграть. Сделайте свою функцию обработки myDie() и пройдитесь по коду автозаменой.

    хороший код старый, раз хендл использует!)
    Сапожник без сапог
  • AndryG

    Сообщения: 237 Репутация: N Группа: Адекваты

    Spritz Янв. 24, 2013, 1:51 п.п., спустя 1 час 16 минут 2 секунды

    хороший код старый, раз хендл использует!)

    Местами :)
  • lolcat

    Сообщения: 383 Репутация: N Группа: Кто попало

    Spritz Янв. 25, 2013, 8:13 п.п., спустя 1 день 6 часов 22 минуты

    C die() тоже можно поиграть.

    Die уже давно завернут в красивую функцию. Но суть-то порочна!

    рядом новый костяк проекта

    Да, это я и хочу проделать.

    Хотелось бы бестпрактик на тему улучшения процедурного кода. Без конкретного понимания, что делать влезаю в код и сразу хочется совершить сеппуку.
  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz Янв. 31, 2013, 3:11 п.п., спустя 5 дней 18 часов 57 минут

    Сделай сэппуку, будь мужиком!
    ιιlllιlllι унц-унц

Пожалуйста, авторизуйтесь, чтобы написать комментарий!