LINUX.ORG.RU

Django 1.7

 ,


1

3

Состоялся релиз новой версии популярного web-фреймворка Django, написанного на Python.

Самое ожидаемое нововведение - встроенные миграции! https://docs.djangoproject.com/en/1.7/topics/migrations/

Другие значительные изменения:

Ознакомиться с полным списком изменений можно по ссылке.

>>> Подробности



Проверено: Shaman007 ()

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

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

В го уже сделали репл для подключения к ноде и интроспекции того что там происходит? В эрланге это с девяностых есть, например.

loz ★★★★★ ()

Самое ожидаемое нововведение - встроенные миграции!

okay, а как насчет адекватных миграций пригодных для групповой разработки?

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

наверно ещё и без IDE программировать не умеешь

Это как?
После вас одна неформатированная парашлапша остаётся.

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

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

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

Гг. Оттаивай солнышко, у нас даже откат деплоя на старые воркеры есть. Сохранением соединений ты своим мхом не удивишь.

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

Да я не говорю что надо оправдывать что-то, интересны практики других практикующих.

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

У нас это где? Накидай названия технологий, чтоли.

даже откат деплоя на старые воркеры есть.

Даже? В релизах эрланга можно на любой релиз из доступных переключаться.

loz ★★★★★ ()
Последнее исправление: loz (всего исправлений: 1)
Ответ на: комментарий от loz

Как с этим обстоят дела в ваших языках и фреймворках?

Да никак, хотсвапа кода почти нигде нет, а обновляют просто, стоп/обрыв/по новой, пара секунд и все работает.

В го уже сделали репл для подключения к ноде и интроспекции того что там происходит?

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

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

той же symfony

Doctrine migrations for Symfony are maintained in the DoctrineMigrationsBundle. The bundle uses external Doctrine Database Migrations library.

The bundle uses external Doctrine Database Migrations library.

Душка, так что ты там пел про миграции в фреймворке?

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

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

У эрланга есть свои проблемы, но тред не про эрланг :)

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

У нас это где?

http://uwsgi-docs.readthedocs.org/en/latest/articles/TheArtOfGracefulReloadin...

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

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

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

1. The WSGI protocol can not support websockets
2. Куча готовых батареек для вебсокетов, например: https://github.com/jrief/django-websocket-redis
3. Websocket'ы правильно выносить на более низкий уровень: nginx-модули, erlang, nodejs, tornado, py-libevent.
4. За три года кодинга на джанге мне ни разу не потребовались сокеты. Далеко не всем они нужны, тем более, в самой коробке с джангой (джанго - это ж сервер-сайд, а с сокетами половина логики на клиенте). Смысл тащить (?) 50% логики в фреймверк, если остальные 50% нужно писать вручную, со своим api.

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

Вы меня не правильно немного поняли: на гитхабе взрывной рост количества проектов на javascript'е. Куча либ, фреймворков и т.п., биндинги к базам, синхронные/асинхронные библиотеки, новые CoffeeScript, Jade, Less, которым нужен NodeJS.

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

Уже смотрели, по производительности тоже самое, а объём кода в 2.5-3 раза больше на гоу. Библиотек - с гулькин нос. 50 go либ против ~20.000 на npm. Даже Python могут потеснить скоро с такими аппетитами.
И на go уже написали что-нибудь навроде libevent?

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

Вот как раз таки пирамид - никакой гибкости по сравнению с flask. В пирамиде свой template render, наверное, умучаешься привязывать к динамическим роутерам (site/{id}user).

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

Даже Python могут потеснить скоро с такими аппетитами.

Какие апетиты? Большинство этих пакетов лютейший крап. Школоло и фронтмены не могут в разработку. Например, какой пакет поможет передать значение через заголовок Cookie? Соблюдая RFC, разумеется.

bj ()

Ух ты, как все старательно ненавидят конкурирующие фреймворки и языки )))

Ну я тогда тоже накину для полноты кортины - люди, внемайте! Ща истина попрет безоговорочная. На самом деле лучший фреймворк, это конечно spray, и все остальное не нужно )))

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

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

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

Самый гибкий фреймверк в своём классе.

Так в чем гибкость то?

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

Вот как раз таки пирамид - никакой гибкости по сравнению с flask.

Пирамида больше.

В пирамиде отличный Мако, который НАМНОГО лучше жанготемплейт.

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

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

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

На голом пыхе писать удобней.

Всё-таки не сдержусь. А сколько Мастер написал сайтов на голом пыхе? И вообще сайтов. И вообще сколько писал хоть какого-нибудь кода.

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

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

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

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

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

Много написал =) ессно не все крупные, но много. Ну, раньше писал похуже, сейчас пишу получше. Но так, чтобы в итоге код был непонятный / дырявый / тормозной / выполняющий миллион запросов на страницу / криво отформатированный / с копипастой на каждом шагу / или там лапша html+php вперемешку - ну вот никогда так не писал.

Я просто не понимаю, почему если на голом пыхе - то обязательно говнокод? Велосипед - ну ок, пожалуйста, немного велосипед. Но говнокод-то почему? Всё аккуратненько и шустро, те же модели, контроллеры, шаблоны, то же HMVC местами, только лучше.

vitalif ★★★★★ ()
Последнее исправление: vitalif (всего исправлений: 1)
Ответ на: комментарий от Wizard_

Т.е. глупо полагать что то что кода стало меньше, а работать стало быстрее - заслуга фреймворка. Это заслуга тебя, как программиста =) я иногда обратное преобразование делал с тем же эффектом =)

vitalif ★★★★★ ()
Последнее исправление: vitalif (всего исправлений: 1)
Ответ на: комментарий от vitalif

Я просто не понимаю, почему если на голом пыхе - то обязательно говнокод?

Не обязательно, проблема в другом - показывает программиста самого, который сует «голый» туда, где это неприменимо. «голый» нужно очень сильно обосновать, что бы не использовать фреймворк, твоя задача должна быть истинно уникальна, что бы не использовать фреймворк, думаю таких задач у тебя не было, значит ты не хочешь использовать/учить фреймворк и пользоваться тем, что удобно для поддержки другим, пользоваться тем что априори в сто раз менее дыряво чем то, что написал ты.

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

Не обязательно, проблема в другом - показывает программиста самого, который сует «голый» туда, где это неприменимо. «голый» нужно очень сильно обосновать, что бы не использовать фреймворк, твоя задача должна быть истинно уникальна, что бы не использовать фреймворк, думаю таких задач у тебя не было, значит ты не хочешь использовать/учить фреймворк и пользоваться тем, что удобно для поддержки другим, пользоваться тем что априори в сто раз менее дыряво чем то, что написал ты.

Есть очень большая проблема. Производительность. Любой фреймвок ее снижает в разы, если не в десятки разов.

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

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

Есть очень большая проблема. Производительность. Любой фреймвок ее снижает в разы, если не в десятки разов.

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

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

Вообще-то достаточно хорошей базы данных.

Типа объявлений о продаже. И при нагрузке в 3000 посещений в день - уже проблемы.

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

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

А вот хрен. Эти падлы (посетители), очень смотреть на картах, где объект продажи. И тут )*;*%(?":?;)

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

Гуру ты наш симфонический!

Конечно я не хочу использовать/учить фреймворки. Нахрена мне нужно это говно, когда мне без него быстрее, удобнее и гибче? В тупой погоне за «типа best practices»? Типа как во втором зенде? Да на хрен мне такое счастье.

априори в сто раз менее дыряво чем то, что написал ты.

Ты - может быть и априори, если писать не умеешь. По себе-то всех не равняй. Вот давай, намекни мне, какие уязвимости у меня от _неиспользования_фреймворка_ могут случиться?

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

Дело не в производительности САМОГО фреймворка, дело в гибкости, которую он даёт для написания производительного кода. Когда фреймворка нет - хоть уоптимизируйся, весь код твой. Когда фреймворк есть - какие-то вещи сделать невозможно без патчинга кода самого фреймворка. А патчить неохота, это не круто уже.

ворочают фейсбуками

Представь себе, не только задачи с распределённым парком на 100500 серверов могут требовать быстрого отклика.

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

А если поставить десяток 32-ядерных машин и отдать за них полляма в месяц, можно и битриксом обойтись. Знаем, знаем.

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

Каждый день перед сном читаю вместе с Евгением Онегиным.

Чистый nodejs

var x = [];
response.writeHead(200, {
    'Set-Cookie': 'mycookie='+JSON.stringify(x).data()),
    'Content-Type': 'text/plain'
  });
  response.end('Hello World\n');
Сэр не знаком с сериализацией?

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

Мако действительно хороший, но не намного лучше Django Template Engine, разве только производительностью. К тому же, к Djangе можно прикрутить и Jinja2 и аналог Jade, выбор движков есть.

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

Zerg Dance

кажется, с тех пор, как я разбирался с uwsgi, он успел стать умнее меня.

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

Каждый день перед сном читаю

Помимо чтения надо еще понимать прочитанное.

Сэр не знаком с сериализацией?

Не set-cookie, а cookie. Например надо пробросить запрос. И принимающая сторона, естественно, ни о какой сериализации не знает.

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