Есть ли совет относительно того, как начать исправлять сценарий PHP старомодного стиля?
Несколько дней назад я получил предложение по разработке старого проекта PHP, и старомодным я подразумеваю, что структура не использовала метод кодирования ООП, и это не имеет определенной платформы.
Я смущен на том, где запустить и хотел знать что методы, там для разработки старого сценария.
Примечание: Они не хотят тратить много денег на запуске нового проекта.
Таким образом, какие методы Вы предложили бы для обновления старого сценария PHP?
Можете ли вы дать нам более подробно, возможно, пример.
Даже процессуальный код имеет элементы OOP в нем. Вы можете определить переменные и процедуры, которые относятся к тому же объекту. Вы могли бы перейти на него переписать, но им будет трудно найти ценность в нем, особенно если они скромные, как вы предложили.
»[Netscape ] Единая худшая стратегическая ошибка, которую может сделать любую программную компанию: они решили переписать код с нуля ».
Итак, независимо от того, какой ваш ход действий, приоритет - работать с существующим кодом. Рефакторинг будет одним из лучших методов, которые вы можете использовать.
Что вы можете не сделать, если база кода не обновляется, что вы абсолютно должны? Сколько особенно вы должны обновить для этого действия, чтобы быть возможным? Рассмотрим эти два вопроса.
Зависит от того, что вы имеете в виду под "старым". Старое, как написано для PHP 4? Или "старым", как не ООП? (Или и то, и другое?)
Старо как в PHP4:
Пока вы просеиваете его и либо подавляете предупреждения, либо фактически исправляете устаревшие вызовы функций, все должно быть в порядке. Это просто скучная работа. Легко и дешево.
Старо как в не ООП:
Можно теоретически разработать очень стабильное и масштабируемое приложение без ООП или определенного MVC (или другого) фреймворка. На самом деле, если приложение маленькое по масштабу, то нет причин добавлять сложность спагетти и фрикадельки ООП или фреймворка. Переписать все в ООП с помощью какого-то фреймворка сложно и дорого. И, вполне вероятно, переборщить.
Когда я делаю это, это многоэтапный процесс. Как правило, есть существующий продукт для продолжения работы. Перезаписи с нуля редко вариант, даже если вы закончите делать это в конечном итоге.
Я тогда посмотрите на проект и определите, как я Я собираюсь изменить свою логику. Часто, если нет никаких функций вообще, мой первый проход состоит в том, чтобы обернуть обычное поведение в статические методы. Получите как можно больше повторностей без особых усилий, поэтому я еще не обеспокоен организацией.
После того, как резервирование уменьшается, то я добираюсь до организации. На этом этапе я начинаю планировать моменты моих классов и рефакторируя функции в чистые методы. Это также время для автоматизированных тестов (phpunit). Как только я разумно уверен, добавляю некоторые контроллеры и интегрируйте шаблоны, затем я закончил ... запретить один или два прохождения.
Для меня это все о выявлении, где я есть, где я хочу быть, и сделать план, который может быть выполнен в нескольких небольших шагах. У всех есть свои цели, поэтому нет волшебного плана, кроме своего собственного.
Возможно, ваш код прямо сейчас выглядит так
И вы хотите, чтобы он выглядел так
хорошо, если он просто скрипт, а не весь проект, я бы преобразую его в стандарт кодирования.
Прочитайте их код. Поговори с ними.
Посмотрите на запрошенное изменение с точки зрения существующего кода. Поговори с ними.
Решите, как мало что вы меняете делать то, что хочется. Поговори с ними.
Сделайте это. Поговори с ними.
Когда они просят функциональности, которые могут быть легче сделаны повторно написанием, чем изменение, сделайте это.
Работа с IDE, которая может помочь с рефакторингом.