LINUX.ORG.RU

Аналог режима PHP для Python/Ruby


0

2

Знаю, на ЛОРе не любят PHP (я собственно его тоже не люблю), но у него есть классная фишка - отсутсвие необходимости перезагружать сервер. То есть отредактированный файл тут же подхватывается - никакой задержки ни при разработке, ни пре деплоее.

Вообще лучше всего из скриптовых языков я знаю Python, но вообще можно и Ruby - есть ли для них такой же механизм работы?

Я сейчас использую bottle.py - у него есть ощутимая (хотя и не долгая) задержка при перезагрузке сервера. Может у других фреймворков с этим лучше?

★★★

Ответ на: комментарий от KRoN73

Время подъёма окружения фиксировано.

Nope. У сложного приложения конфигурационного кода во много раз больше чем у простого. Растет сложность => растет время. Это как раз у аппсерверов оно постоянно.

baverman ★★★
()
Ответ на: комментарий от baverman

У сложного приложения конфигурационного кода во много раз больше чем у простого

Мы рассматриваем одиночный hello-world.php или нормальный фреймворк с набором приложений? «Конфигурационный код» в любом нормальном проекте один и тот же на весь проект.

Растет сложность => растет время.

Nope.

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

«Конфигурационный код» в любом нормальном проекте один и тот же на весь проект.

Если он больше не разрабатывается, то да, согласен.

baverman ★★★
()
Ответ на: комментарий от KRoN73

Давно хотел спросить. Где можно посмотреть сделанные тобой проекты, на PHP? И если на них нет счетчиков, то приблизительное число уников и хитов в день.

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

baverman ★★★
()
Ответ на: комментарий от baverman

Где можно посмотреть сделанные тобой проекты, на PHP?

Из тех, что можно раскрывать (а то получал уже по шапке за раскрытие одного из проектов :)):
http://www.aviaport.ru — но там посещаемость не высокая, до 10 тыс. уников в сутки и до 50 тыс. визитов.

Безусловно, мои форумы, что http://balancer.ru/forum/ в комплекте с airbase.ru, balancer.ru и т.п. — это всё один проект внутри. Тут статистика у меня открытая: http://top.mail.ru/visits?id=1574967&period=0&date=2011-12-24&

Правда, статистика не показывает, скажем, несколько миллионов хитов в сутки от счётчиков top.airbase.ru (тоже на том же движке, всё один проект — http://trac.balancer.ru/bors-airbase/ )

Вроде, не разоблачение секрета, что сейчас понемногу перевожу на свой движок http://www.forexpf.ru (140 тыс уников, 1,5 млн. визитов)

KRoN73 ★★★★★
()
Ответ на: комментарий от baverman

Очень бы хотелось эмперически определить этот предел.

Пока не столкнулся :) Хотя варианты миграции рассматриваю. От реализации своего фреймворка на Питоне (на основе принципов, отработанных в BORS на PHP) до совсем тупого варианта BORS/PHP -> BORS/Quercus/Tomcat -> переписывание узких мест на Java (самое простое решение, на которое можно перейти в любой момент, хотя и не изящное)

KRoN73 ★★★★★
()
Ответ на: комментарий от theos

В боттле тоже такое есть, только вот оно ограничено шаблонами. Если хочется попровить опечатку в исходнике - перезапуск. Но я видимо смирюсь :)

Допиши функциональность в bottle.py.

А вообще, в php такое тоже есть. Когда виндоюзер, пишущий на php, и заливающий через ftp (про hg не слышавший никогда), т.е. абсолютно типичный php-разработчик, в процессе загрузки через ftp обновил только три инклюда из пяти - тогда может быть не то, что ошибка «позвоните позже, или настройте кэширование на сервере», а вообще непредсказуемое поведение.

kid_lester
()

Nginx+Passenger в development-режиме перегружает код сам, если файлы менялись.

В production для перезапуска приложения надо сделать touch tmp/restart.txt, целиком перезагружать сервер не нужно.

INFOMAN ★★★★★
()
Ответ на: комментарий от theos

оно платное, но бета-тестерам ок

с жабы, горячая перезагрузка там работает только если не меняется структура класса

а причина в безблагодатности!
предлагаю для начала выкинуть спринг, он не нужен :)

зависит от технологии, у меня она работает (в т.ч. и для структуры классов) как минимум в двух проектах

stevejobs ★★★★☆
()

классная фишка - отсутсвие необходимости перезагружать сервер

Уровень детского сада. Видно у ТС нет даже нормального опыта работы с тем же ПХП.

anonymous
()
Ответ на: комментарий от anonymous

Видно у ТС нет даже нормального опыта работы с тем же ПХП.

Что значит даже? Нету никакого, и не собираюсь получать.

theos ★★★
() автор топика

Тред не читал, но предсказываю топик стартер пользуется оффтопиком

zz ★★★★
()
Ответ на: комментарий от zz

но предсказываю топик стартер пользуется оффтопиком

Почини предсказывалку. На маке, перешел с этих ваших линуксов.

theos ★★★
() автор топика
Ответ на: комментарий от AGUtilities

cherrypy умеет

Спасибо, потыкаю.

theos ★★★
() автор топика
Ответ на: комментарий от VirRaa

Почему? Не модно любить, а?

Нет. На мой взгляд крайне не стройный и не локаничный язык. И библиотека изкаробочная просто свалка.

theos ★★★
() автор топика
Ответ на: комментарий от theos

На мой взгляд крайне не стройный и не локаничный язык.

В чём это выражается?

И библиотека изкаробочная просто свалка.

Можно конкретнее?

P.S. Какие ещё языки употребляешь?

VirRaa ★★★
()
Ответ на: комментарий от VirRaa
foreach($array as $elem)

vs

for elem in array:

Второй вариант и лаконичнее и читабельнее.

list($x, $y) = array($x, $y)

vs

x, y = y, x

array(x=>10, y=>20)

vs

{'x':10, 'y':20}

И функция типа array в Python пишется на раз, а как ее написать в PHP?

Но вообще я не питонист, просто из подобных скриптовых яызков мне симпатичнее Python | Ruby.

theos ★★★
() автор топика
Ответ на: комментарий от theos

php при каждом запросе парсит все свои файлы по-новой, даже коннект к бд не умеет удержать открытым между запросами, конечно он будет мгновенно «перезапускаться»

maloi ★★★★★
()
Ответ на: комментарий от maloi

Ололо, костыль, который нельзя по-нормальному использовать - не решение.

Да прекрасно он используется. У вас какие-то претензии к пулам соединений?

theos ★★★
() автор топика
Ответ на: комментарий от theos

К пулам соединений - нет, к тому как они реализованы в пхп - да, достаточно прочитать официальную документацию, чтобы они появились.

maloi ★★★★★
()
Ответ на: комментарий от maloi

достаточно прочитать официальную документацию, чтобы они появились.

Так может вы расскажите что конкретно вас в их реализации в PHP не устраивает?

theos ★★★
() автор топика
Ответ на: комментарий от maloi

И что именно является проблемой - конфиуграцией апача или лимитированность числа соединений, допускающемых MySQL? Проблем в конфиугрировании не вижу, в том что mysql имеет ограничение на коннекшны тоже - PHP тут не причем. Или в PHP тяжело с очередями запросов? Я вообще на PHP не пишу, но если вы сильно в курсе хоть расскажу знакомому который пишет.

theos ★★★
() автор топика
Ответ на: комментарий от theos

Более того, mysql тут тоже не при делах, кривой mod_php - в принципе тоже не такая уж великая проблема, хоть и добавляет масла в огонь, проблема в том, как вообще работают постоянные соединения в php. Если бы было интересно - давно бы уже все прочитал.

maloi ★★★★★
()
Ответ на: комментарий от maloi

кривой mod_php

Чем режим fastcgi не подходит?

Если бы было интересно - давно бы уже все прочитал.

Так вы либо что-нить конкретно говорите, либо тогда уж в офтопик не уходите. А то может вы сами чего не осилили - таких тоже хватает.

theos ★★★
() автор топика
Ответ на: комментарий от theos

Все "vs" - дело вкуса, и только.

И функция типа array в Python пишется на раз, а как ее написать в PHP?

Здесь не понял, что имеется виду?

VirRaa ★★★
()
Ответ на: комментарий от theos

Так вы либо что-нить конкретно говорите, либо тогда уж в офтопик не уходите. А то может вы сами чего не осилили - таких тоже хватает.

А ему уже сказать нечего. Про таких говорят: «Пёрнул в лужу».

VirRaa ★★★
()
Ответ на: комментарий от VirRaa

Все «vs» - дело вкуса, и только.

Нифига. В PHP объективно гораздо больше синтаксического мусора (смотри приведенные пример, и это далеко не все) - это раз. for x in array - читается прямо по английский, foreach(arr as elem) - это просто феерия, как это должно читаться?

list($x, $y) - это встроенная фигня а выглядит как функция, несмотря на то что ей не является.

array - тоже самое, как ее реализовать на PHP? Еще одна хрень не выразимая нормально средствами языка? В Питону array можно самому написать, просто это не нужно т.к. есть нормальный синтаксис для этого.

Вот это все и есть стройность языка. Вот С - стройный язык: имнимум синтаксического мусор и то что выглядит - как функция - функцией и является, и встроенных функций нет.

theos ★★★
() автор топика
Ответ на: комментарий от theos

Нифига. В PHP объективно гораздо больше синтаксического мусора (смотри приведенные пример, и это далеко не все) - это раз. for x in array - читается прямо по английский, foreach(arr as elem) - это просто феерия, как это должно читаться?

Зато можно сделать foreach ($array as $key => $value)

VirRaa ★★★
()
Ответ на: комментарий от theos

foreach(arr as elem) - это просто феерия, как это должно читаться?

Это ты ещё не видел foreach my $val (@values)

А язык до сих пор многие элитным считают :D

KRoN73 ★★★★★
()
Ответ на: комментарий от VirRaa

array - тоже самое, как ее реализовать на PHP? Еще одна хрень не выразимая нормально средствами языка? В Питону array можно самому написать, просто это не нужно т.к. есть нормальный синтаксис для этого.

Я до сих пор не понимаю, что ты хочешь до меня донести этим предложением.

VirRaa ★★★
()
Ответ на: комментарий от maloi

php при каждом запросе парсит все свои файлы по-новой,

На дворе XXI век, а вы всё ещё не пользуетесь акселераторами? :eek:

KRoN73 ★★★★★
()
Ответ на: комментарий от VirRaa

А по поводу питона, когда там private и protected появится, тогда и можно будет рассуждать ;)

Очень, очень правильно.

tailgunner ★★★★★
()
Ответ на: комментарий от theos

По первым двум — согласен. В последнем примере, увы, на PHP нагляднее :) Токены чётче друг от друга отделяются. Плюс Python не умеет смешанные массивы, типа:

$x = array('field1', 'fiel2' => 'name2', 'some', 'some2' => 10);

Последнего в Python мне заметно не хватает :)

KRoN73 ★★★★★
()
Ответ на: комментарий от maloi

нет конечно, я вообще не пользуюсь php.

Открою небольшой секрет: спорить лучше о том, что знаете. А то глупо выглядит.

KRoN73 ★★★★★
()
Ответ на: комментарий от maloi

нет, я не хочу наступать в говно, чтоб убедиться, что после этого будет вонять.

Судя по всему, вы говном считаете простую картошку. Конечно, картошка — это не ананас и не манго, но считать основной продукт питания многих и вполне приличный продукт говном (даже не попробовав) — это демонстрация собственной глупости.

KRoN73 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.