Что лучше переписать все как есть на php или сделать это на python?
Всем привет.
Я работаю чуть больше года прогером (до этого опыта 0) в команде SEO-шников и делаю внутренние сайты, работаю с клиентскими если есть острая необходимость и мало-помалу пишу внутреннее приложение именно для команды, т.е. там всякие сканы сайтов, работа с API аналитики, серпстата и т.д., вообщем такие штуки которые упрощают ежедневный анализ проектов.
И вот это внутреннее приложение начинал писать один прогер (который меня малость обучил что да как), и писал он его с нуля, с нуля это значит что без фреймворка т.е. свой велосипед (даже не знаю можно ли его назвать фреймворком)))). В то время я мало про это знал и мне было все равно как он сделан главное что работает и так было даже проще из-за того что я освоился очень быстро. Прогер оставил разработку сразу как я смог решать определенные задачи сам.
И вот сейчас когда задач становиться все больше и больше я начал думать чтобы переписать все это дело на "нормальном" фреймворке, под словом нормальный я понимаю проверенный, надежный и т.д. одним словом не свой велосипед, остановился я на yii2, но тут есть одно но, php для некоторых задач не самый лучший выбор.
Например нужно взять все ссылки из сайтмапа и пройти по каждой, сохраняя некие данные по каждой, сайтмапы очень большие и php для того чтобы пройти один сайтмап нужно будет примерно неделя времени, а делать это нужно желательно еженедельно. И я решил что такие вещи буду делать на питоне, который уже изучаю.
И вот суть, начиная ковырять yii2, я подумал, а нужно ли переписывать на php-фреймворк, может лучшим решением будет переписать уже на питоне (джанго), это даст возможность быстрее изучить язык и многие задачи которые php делал медленнее ускорить.
Хочу узнать ваше мнение, как вы считает стоит ли такое делать, или все же сделать все как есть на php (yii2) и делать определенные задачи кусками питона.
Вопрос с описанием получились большими за что прошу прощения, но мне показалось что для полноты картины это нужно знать)
Во-первых, питон не быстрее пыха, а если и быстрее, то в прикладных задачах. Во вопросах "обхода сайтмапа" - пайтон Вам не даст каких-то значительных преимуществ.
Нужно ли все переписывать - нужно, всегда нужно, рефакторинг - часть разработки. Вопрос на чем - это уже Вам решать, я лично не советую yii.
Но, если есть желание учить пайтон - то, это пожалуй, лучшее время начать его учить в деле, это куда продуктивнее.
я про сайтмап написал так как это самаый хороший пример по задаче которую мне пока что сложно решить, я говорю не про сам парсинг, а про парсинг в несколько потоков.
Скопирую сообщение)
"я думаю что он быстрее в том плане что на питоне проще сделать даже тот парсинг в несколько потоков, на php я пробовал делать но не получилось и к тому же все вопросы которые возникают по этому поводу очень сложно решить, так как задавая их на форуме и т.д. все говорят что в php сделать асинхрон. просто жуть как сложно и оно в 99% не нужно и все такое, и оставляя сам вопрос открытым)"
Лучше писать на том, что знаете/хотите знать.
Не думайте, что питон сильно быстрее PHP. На некоторых бенчмарках, последний даже оказывается чуть шустрее. Поговорите с командой на этот счёт, если у них предпочтений нет, то выбирайте то, что понравилось больше.
я думаю что он быстрее в том плане что на питоне проще сделать даже тот парсинг в несколько потоков, на php я пробовал делать но не получилось и к тому же все вопросы которые возникают по этому поводу очень сложно решить, так как задавая их на форуме и т.д. все говорят что в php сделать асинхрон. просто жуть как сложно и оно в 99% не нужно и все такое, и оставляя сам вопрос открытым)
Для "распараллеривания" процесса обхода сайтов в любом случае требуется либо очередь, либо гипервизор.
И то и то, Вам придется "поднимать" на любом языке.
Да, в пайтоне это несколько проще из коробки. Но и пых не стоит на месте, сейчас такие задачи на нем решаются без особых костылей, чуть-ли не нативно.
Артём Белоусов: честно говоря я думал про питон именно из-за того что говорили что он хорош в асинхроне и скорости, но судя по комментам это далеко не так), спасибо за советы, ещё все обдумаю и буду принимать решение)
Разница между производительность yii2 и django если и есть, то не значительная. А для обработки сайтмапа можно использовать cron, можно запускать по несколько процессов. Если хотите быстро, то есть go или node.js.
Сергей БАрд: Ну я имел ввиду несколько процессов параллельных в cron. Если знаете php, то рекомендую laravel, там есть очереди, через которую такие задачи решать удобно. YII2 не рекомендую, там можно научится плохому, если нет опытного тимлида.
vanillathunder: думал хорошо про YII2 так как мне его советовали, а про laravel говорили обратное, и я в меру того что процентов на 95 общаюсь с seo-шниками которые не понимают это, и 5% с несколькими прогерамми, и обучаясь в основном сам в нете поверил что он самый так сказать приятный), спасибо большое!)
Дам совет: соберетесь переписывать - не переписывайте все сразу. Сначала сделайте обертку из фреймворка (например, что фреймворк принимал все запросы а птом перенаправлял старому коду). Это позволит юзать компоненты фреймворка совместно с старым кодом. А затем преписывайте потихоньку, порциями. И релизить надо порциями. Много раз видел как пытаются переписать все и сразу - всегда это заканчивается фейлами.
да, я это понимаю, планирую делать так, то что сейчас работает пока не трогать, пусть себе пыхтит как и до этого, а новое начать делать в другом месте т.е. на локалке и когда новый сможет делать хотя бы половину того что делает приложение сейчас, начинать делать переход на сервере)
Если хотите переписать из соображений обучения на том, чего не знаете - сразу приготовьтесь к квесту, к совсем другому порядку затрат времени, к огромному числу ошибок.