LINUX.ORG.RU
 
theos

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


0

2

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

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

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


[#] Ответ на: комментарий от KRoN73 28.12.2011 16:47:23  

Вобщем если бы ты запостил код твоего базового класса, его наслденика для таблицы, и так ты с ним обращаешся к бд. Порт в питон думаю был бы 50% короче.

И, да. whatever.set_group_id(1) вместо whather.group = group_instance это рак, и какой это вобще oRM, если ты айди руками суеш

()
[#] Ответ на: комментарий от zz 28.12.2011 16:56:53  

> отсутствие любителей велосипедить свои странные орм

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

** ()
[#] Ответ на: комментарий от zz 28.12.2011 16:55:55  
KRoN73
>>-----Цитата---->>

И, да. whatever.set_group_id(1) вместо whather.group = group_instance это рак, и какой это вобще oRM, если ты айди руками суеш

<<-----Цитата----<<

Вообще-то, _id намекает на то, что это именно _id. Целочисленный индекс.

>>-----Цитата---->>

и какой это вобще oRM

<<-----Цитата----<<

Задача записи класса в ORM — это 0.1% случаев :) И он в общем случае не унифицируется, так как в классе может быть только один id объекта другого класса, может быть имя_класса+id_объекта, может быть уникальный_числовой_идентификатор_класса+id (скажем, для очень объёмных записей, типа поисковых индексов).

В общем же случае это будет не set_group(1), а set_group($group); А уже этот метод пропишет group_id.

Но обычно никаких set_group() нет, так как львиная доля таких операций — в формах, обрабочик форм этим всем занимается сам. Лично я ручками set_some() пишу относительно редко :)

***** ()
[#] Ответ на: комментарий от KRoN73 28.12.2011 17:14:34  

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

()
[#] Ответ на: комментарий от zz 28.12.2011 17:17:47  
KRoN73
>>-----Цитата---->>

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

<<-----Цитата----<<

Прекрасно. Значит по этому критерию, PHP — «нормальный динамический язык» :)

***** ()
[#] Ответ на: комментарий от zz 28.12.2011 17:27:44  

> разговор слепого с глухонемым

Просто учитывай, что Крон за многие годы сделал очень хороший и удобный (для себя, ессно) фреймворк.

** ()
[#] Ответ на: комментарий от baverman 28.12.2011 17:33:53  
KRoN73
>>-----Цитата---->>

для себя, ессно

<<-----Цитата----<<

Да, именно так. Я исповедую принцип «лучше день потерять, зато за 5 минут долететь» и часто ради экономии пяти минут в разработке могу потратить день на реализацию новой фичи. Пусть даже по времени оно и за пару лет работы не окупится, но зато в другой раз позволит рутиной заниматься не 5 минут, а минуту. А я очень, очень ленив в отношении рутины.

***** ()
[#] Ответ на: комментарий от KRoN73 28.12.2011 12:10:42  
Virtuos86
>>> def array(*a, **kwa):
...    arr = {}
...    for n, i in enumerate(a): arr[n] = i
...    arr.update(kwa)
...    return arr
...
>>> x = array(
...    'id',
...    'username',
...    'user_nick',
...    'group_id',
...    login='username',
...    user_title='title',
...    # ...
...    )
...
>>> x
{0: 'id', 1: 'username', 2: 'user_nick', 3: 'group_id', 'login': 'username', 'user_title': 'title'}
>>> 

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

()