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


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

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

 6
Author: Rich Bradshaw, 2008-12-04

11 answers

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

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

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

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

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

 14
Author: Filip Ekberg, 2008-12-04 11:54:58

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

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

 4
Author: stesch, 2008-12-04 11:57:06

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

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

 2
Author: Stein G. Strindhaug, 2008-12-04 11:57:32

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

Вещи, Которые Ты Никогда Не Должен Делать, Часть I

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

 2
Author: daf, 2008-12-04 12:17:20

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

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

Итак, в принципе, если вы думаете, что получите от этого какую-то выгоду это не просто "мило, что теперь это на python!", тогда действуйте.

 2
Author: Bartek, 2008-12-04 13:39:05

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

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

 1
Author: troelskn, 2008-12-04 11:53:50

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

А также, когда вы это сделаете, постарайтесь собрать как можно больше.

 1
Author: Bartosz Radaczyński, 2008-12-04 14:07:12

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

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

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

 1
Author: dagw, 2008-12-04 14:40:13

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

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

 1
Author: Robbie, 2008-12-04 19:55:51

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

 0
Author: Jared, 2008-12-04 14:14:49

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

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

 0
Author: Gavin Miller, 2008-12-04 15:03:10