Является ли переписывание приложения PHP в Python продуктивным шагом? - PullRequest
6 голосов
/ 04 декабря 2008

У меня есть несколько старых приложений, написанных на PHP, которые я собираюсь преобразовать в Python - оба веб-сайта начинались как простой статический html, затем перешли на PHP и теперь включают блоги с областями администратора, rss и т. Д. переписать их на Python, чтобы улучшить удобство обслуживания, а также воспользоваться моим опытом, чтобы писать вещи более надежно.

Стоит ли усилий?

Ответы [ 11 ]

14 голосов
/ 04 декабря 2008

Вы должны принять во внимание некоторые детали здесь,

  1. Что вы получите от переписывания
  2. Это экономически мудрое решение
  3. Будет ли легче обрабатывать код для новых программистов
  4. По производительности, это будет хороший вариант?

Эти четыре пункта важны, будет ли работа более эффективной после переписывания кода? Наверное. Но будет ли это стоить стоимость повторной разработки?

Один важный шаг, который нужно выполнить, если вы решите переписать, сделайте 3 документа, сначала проанализируйте проект, что нужно сделать? Как все должно работать? Затем составьте документ с требованиями, что конкретно нам нужно и как это сделать? И последнее, но не менее важное: проектный документ, в который вы помещаете все свои окончательные диаграммы классов, системные операции и как должен работать дизайн и поток страницы.

Это поможет новому и старому разработчикам задуматься о том, «действительно ли нам нужно переписывать?».

4 голосов
/ 04 декабря 2008

Обязательно сопротивляйтесь эффекту Second-system , и вы должны быть в безопасности.

Переписывание существующего проекта дает вам достижимую цель. Вы знаете, в какую сторону вы движетесь. Но не пытайтесь делать слишком много сразу.

2 голосов
/ 04 декабря 2008

Как уже говорили другие, посмотрите, почему вы это делаете.

Например, на работе я переписываю нашу существующую систему инвентаризации / продаж в бэкэнд Python / django. Зачем? Поскольку существующая база кода PHP устарела и будет плохо масштабироваться по мере роста нашего бизнеса (плюс она была построена, когда наша бизнес-модель отличалась, затем была исправлена ​​в соответствии с нашими текущими потребностями, что привело к некоторому коду спагетти)

Так что, в принципе, если вы думаете, что извлечете выгоду из этого способами, которые не просто "сладкое это сейчас на python!" затем пойти на это.

2 голосов
/ 04 декабря 2008

Переписывание очень дорого: вы тратите много времени на то, что не помогает вам напрямую. Джоэл Спольски уточняет это:

Вещи, которые вы никогда не должны делать, часть I

Вы должны сделать это, если выгоды перевешивают затраты; только будьте осторожны, чтобы не недооценивать затраты.

2 голосов
/ 04 декабря 2008

Ну, это зависит ...;) Если вы собираетесь использовать старый код вместе с новым кодом Python, это может быть полезно не столько для скорости, сколько для более легкой интеграции. Но обычно: «Если это не сломано, не исправляйте это». Allso переписывание может привести к лучшему коду, но делать это только при необходимости.

Конечно, это хобби-проект, потому что этот процесс - цель.

1 голос
/ 04 декабря 2008

Я сделал преобразование между сайтом PHP и сайтом Turbogears (Python) для моей компании. Первоначальная причина для этого была двоякой, во-первых, чтобы было проще сделать редизайн, а во-вторых, чтобы можно было легко добавлять функции. Для полного преобразования потребовалось некоторое время, но в итоге мы получили очень гибкий бэкэнд и еще более гибкий и читаемый интерфейс. Мы добавили несколько функций, которые были бы очень сложными в PHP, и в настоящее время мы полностью перерабатываем интерфейс, который оказывается очень простым.

Короче, я бы порекомендовал это, и мой босс, вероятно, сказал бы то же самое. Некоторые люди здесь делают хорошие моменты, хотя. Python не так быстр, как то, что может дать PHP, но то, что ему не хватает производительности, более чем компенсирует универсальность.

1 голос
/ 04 декабря 2008

Как уже говорили другие, переписывание займет намного больше времени, чем вы думаете, а исправление всех ошибок и использование всего, что работает в старой версии, займет еще больше времени. Скорее всего, вам лучше просто улучшить и рефакторинг имеющегося у вас php-кода. Есть всего несколько веских причин для переноса проекта с одного языка на другой:

  1. Производительность. Некоторые языки просто быстрее других, и наступает момент, когда не остается ничего для оптимизации, и использование аппаратного обеспечения для решения проблемы перестает быть эффективным.
  2. ремонтопригодность. Иногда трудно найти хороших людей, которые знают какой-то непонятный язык, на котором написан ваш унаследованный код. В этих случаях может быть хорошей идеей переписать его на более популярном языке, чтобы облегчить обслуживание в будущем.
  3. Портирование на другую платформу. Если вам вдруг понадобится запустить старую программу VB в OS X и Linux, а также в Windows, то вы, вероятно, ищете переписывание на другом языке

В вашем случае кажется, что ни один из вышеперечисленных пунктов не имеет места. Конечно, если это неважное приложение, и вы хотите сделать это для обучения, то обязательно сделайте это, но с деловой или экономической точки зрения я бы долго и пристально смотрел на то, что такое переписывание будет стоимость и что именно вы надеетесь получить.

1 голос
/ 04 декабря 2008

Если вы собираетесь добавить больше функций в код, который у вас уже работает, то было бы неплохо перенести его на python. В конце концов, это увеличит производительность. Вы просто должны сбалансировать это, не перевесит ли задача переписывания потенциальный выигрыш ...

А также, когда вы сделаете это, попытайтесь выполнить юнит-тест столько, сколько сможете.

1 голос
/ 04 декабря 2008

Ваша цель - улучшить приложения или вы хотите изучать / работать с Python?

Если это первое, я бы сказал, что вам следует придерживаться PHP, поскольку вы уже это знаете.

0 голосов
/ 04 декабря 2008

Один элемент, который не появился, - это размер текущей базы кода. В зависимости от того, какой объем кода должен повлиять на ваше решение.

Аргумент Джоэла Спольски никогда не переписывать действителен в контексте кодовой базы размером с Netscape. Принимая во внимание, что меньший кодовый код значительно выигрывает от переписывания.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...