Drupal 7: вести с фронта

Главные вкладки

Аватар пользователя payalnik payalnik 20 октября 2009 в 12:11

Наконец разработка Drupal 7 дошла до состояния, когда результат можно поставить и попробовать (до этого много раз я пытался установить текущий билд, но ошибки убивали надежду еще до окончания установки). Так что всем интересующимся рассказываю, что нового ждет нас в Drupal.

Прежде всего, немного о цикле разработки. В начале сентября был объявлен Code Freeze: остановился прием патчей, добавляющих или изменяющих функциональность и API Drupal. После этого до 15 октября принимались патчи строго ограниченной тематики (чтобы довести начатое до конца), а теперь в ход идут только багфиксы. До релиза еще несколько месяцев, проблем много, но есть надежда на то, что внедренные к этой версии фреймворки автоматического тестирования помогут быстрее их исправить. В этом году релиза не будет точно, да и бета вряд ли поспеет.

Основной состав изменений для Drupal — это подстройка под хотелки пользователей, интегрирование функциональности очень популярных "апишных" модулей в ядро системы и шлифовка самых отвратительных углов ее программных интерфейсов. Направление "полу-фреймворк, полу-cms" остается неизменным.

Итак, что увидят юзеры:

Новая тема админки. Сменилось как визуальное оформление (оно стало значительно современнее), так и логика работы:

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

Мне это показалось логичным, но слегка непривычным для матерых друпалистов (хотя я, кажется, переучусь очень быстро). Расстраивает, правда, что меню сверху не выпадучее: сам-то я всегда ставлю модуль admin_menu, который рисует сверху менее логичное (в старой логике), но более удобное из-за раскрывающихся пунктов меню. Зато второй ряд ссылок (shortcuts) можно настраивать.

Далее. Теперь функциональность модуля Content (CCK) встроена в ядро Drupal, и мы можем создавать виды контента с различными полями:

Среди типов полей есть "файл" и "изображение". Да, файлы и картинки можно из коробки присоединять к контенту. Более того, в Drupal будет встроена функциональность модуля image_cache, подготавливающего различные версии картинок для превью, ресайзов и т.д.

Изнутри нам ужасно важно то, что таксономия и поля профиля пользователя тоже теперь являются полями контента. Все это называется Field API (это главное новое API в новом релизе Drupal) и избавляет нас от одного из модулей, который приходилось ставить почти всем, а заодно и от холивара "Делать на CCK/писать руками".

Кстати, стандартные типы контента чуток изменились: теперь Story зовется более понятным Article, и по дефолту для них добавлено поле тегов. Овордпрессили, ну и замечательно. Для удобства теперь по умолчанию работают модули Path и Search.

Подготавливается автоматическое обновление модулей и ядра. Пользователя будут уведомлять о выходе новых версий по электронной почте. Cron.php нельзя запускать без ключа безопасности (а можно и вообще не запускать — новый Drupal сам запускает его на одном из запросов пользователя, если он не вызывался долгое время), а скрипты установки и обновления, напротив, стали работать из командной строки.

В простыне прав доступа появились пояснения! Уря!

Появился новый раздел с региональными настройками:

Изменения заметны и в интерфейсе самого сайта: например, для всех редактируемых элементов — блоков, меню и контента — появились соответствующие ссылки. Удобно.

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

Наконец, одной из самых приятных новостей стал пересмотр огромной формы добавления-редактирования контента. Вот уж и вправду своевременно:

Что убрали: старые темы, настройку темы под каждого юзера отдельно, ограничение по минимальной длине заголовка контента, выбор "включать ли красивые урлы" (спрашиваете!).

Внутри Drupal прошло значительно изменение API доступа к БД (раньше программистам приходилось регэкспами! корректировать запросы других модулей). Стало намного прозрачнее и правильнее. Однако, по производительности улучшений значимых нет. Желающие использовать Drupal для высоконагруженных проектов (а их, к слову, в последнее время всё больше) все еще вынуждены добавлять свои приемчики кеширования и снижения нагрузки. Однако, работа в этом направлении ведется: помимо возможности использовать другие движки СУБД и гибче масштабировать MySQL благодаря новому API, большая работа ведется по интеграции внешних поисковых индексаторов (модуль Apache Solr, как и многие другие, будет готов ко дню релиза Drupal 7), а необходимый многим модуль Views в следующей инкарнации будет иметь расширенное кеширование и поддержку различных источников данных — можно будет доставать данные непосредственно из того же Solr или, например, Sphinx. К сожалению, на новый Views смотреть еще рано.

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

Комментарии

Аватар пользователя Mr.Alinaki@drupal.org Mr.Alinaki@drup... 20 октября 2009 в 21:17

Спасибо за обзор! Надо будет посмотреть...

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

Вопрос - кеширование алиасов путей там появилось? Smile

Аватар пользователя Demimurych Demimurych 20 октября 2009 в 22:35

"<a href="mailto:Mr.Alinaki@drupal.org">Mr.Alinaki@drupal.org</a>" wrote:
Вопрос - кеширование алиасов путей там появилось? :)

а у вас есть алгоритм как это сделать?

Аватар пользователя Mr.Alinaki@drupal.org Mr.Alinaki@drup... 20 октября 2009 в 23:28

Demimurych wrote:
"<a href="mailto:Mr.Alinaki@drupal.org">Mr.Alinaki@drupal.org</a>" wrote:
Вопрос - кеширование алиасов путей там появилось? :)

а у вас есть алгоритм как это сделать?

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

Аватар пользователя Demimurych Demimurych 20 октября 2009 в 23:42

"sadmin" wrote:
Хотя бы в таблицу cache_alias, чтобы можно было безболезнено на файлуху сбросить.

ЭЭЭЭЭЭЭЭ ????
а для дауна можно подробнее?

Аватар пользователя Mr.Alinaki@drupal.org Mr.Alinaki@drup... 20 октября 2009 в 23:48

Demimurych wrote:
а для дауна можно подробнее?

Подробнее что? Некие наметки есть тут: http://www.drupal.ru/node/19837

А на файлуху сбросить - этим занимается Cache Alter. Зачем нужно, думаю, можно и не объяснять.

Аватар пользователя andypost@drupal.org andypost@drupal.org 21 октября 2009 в 2:55

Насчет профилей автор погорячился, скорее всего profile там и не будет расширен через fields и ко всему в придачу потеряет ограничение на доступ - не успели...

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

Но и по производительности сделаны приятные шаги. Заметно сокращено количество запросов к базе, добавлено кеширование для полей.

С путями(path) еле-еле справились, очень важное дополнение все еще не принято - вникаем.

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

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

Аватар пользователя T-34 T-34 17 января 2010 в 17:46

<a href="mailto:andypost@drupal.org">andypost@drupal.org</a> wrote:
Отдельно стоит обратить внимание на интернационализацию, с новым слоем базы данных она смещается к интернационализации полей, так что переводы нод скоро канут в лету. Язык интерфейса теперь независим от языка контента, наконец-то!

А импорт из i18n с шестерки будет? Или если на 6.x используется i18n, то нужно будет его использовать и в 7.x?
Я к чему спрашиваю - собираюсь на сайте делать интернационализацию, но не знаю, начинать сейчас или дожидаться релиза Drupal 7.

Аватар пользователя Mojo Mojo 21 октября 2009 в 2:54

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

вот почти создали версию 7. ну и что? кому она нужна, учитывая, что только недавно закончили латать дыры в 6 версии и адаптировать под шестерку модули?

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

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

Аватар пользователя payalnik payalnik 21 октября 2009 в 14:49

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

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

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

Аватар пользователя penexe penexe 21 октября 2009 в 4:42

"Mojo" wrote:
лучше бы разработчикам сосредоточиться на производительности и гибкости

этим они и занимаются
"Mojo" wrote:
вот почти создали версию 7. ну и что? кому она нужна, учитывая, что только недавно закончили латать дыры в 6 версии и адаптировать под шестерку модули?

посмотрите на кол-во модулей под 7ку http://drupal.org/project/modules?filters=drupal_core%3A103&solrsort=sis... каждый день коммитятся новые изменения.
"Mojo" wrote:
нет, теперь снова начнется этот бардак с переделыванием модулей, с непрерывными патчами, с проблемами перехода, и т.д. и т.п.

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

Аватар пользователя Demimurych Demimurych 21 октября 2009 в 11:22

"<a href="mailto:Mr.Alinaki@drupal.org">Mr.Alinaki@drupal.org</a>" wrote:
Подробнее что? Некие наметки есть тут:

ЭЭЭЭЭЭЭ. Ну я так и думал что алгоритма нет.

можно задать совершенно логичный вопрос - ЗАЧЕМ мне нужен кеш путей если я могу таким же образом САМ используя текущее апи закешировать ВСЮ страницу?

Аватар пользователя Mr.Alinaki@drupal.org Mr.Alinaki@drup... 21 октября 2009 в 13:02

Demimurych wrote:
ЭЭЭЭЭЭЭ. Ну я так и думал что алгоритма нет.

можно задать совершенно логичный вопрос - ЗАЧЕМ мне нужен кеш путей если я могу таким же образом САМ используя текущее апи закешировать ВСЮ страницу?

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

Аватар пользователя sadmin sadmin 21 октября 2009 в 13:41

"Demimurych" wrote:
Demimurych в вт, 20/10/2009 - 19:42.

"sadmin" написал(а):

Хотя бы в таблицу cache_alias, чтобы можно было безболезнено на файлуху сбросить.


такого не писал

Аватар пользователя Demimurych Demimurych 21 октября 2009 в 13:46

"<a href="mailto:Mr.Alinaki@drupal.org">Mr.Alinaki@drupal.org</a>" wrote:
Для зарегистрированного пользователя кешировать всю страницу нынешними средствами практически нереально. Подгружать куски, изменённые для пользователя, аяксом - это создавать неоправданные подключения и запросы. Вот и приходится бороться за каждый запрос.

Вы сами возвели себе ветряную мельницу, и сами с ней начали бороться.

Ваша проблема существует только для случаев когда количество изменений на странице которую кешируют больше или равно количеству просмотров.

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

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

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

Очевидно, что если количество нод не изменяется, то динамика у нас только в маркере. Который легко создается двумя командами используя jQuery и переданный массив маркеров.

Ну и так далее.

Аватар пользователя Mr.Alinaki@drupal.org Mr.Alinaki@drup... 27 октября 2009 в 15:24

Demimurych wrote:

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

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

Очевидно, что если количество нод не изменяется, то динамика у нас только в маркере. Который легко создается двумя командами используя jQuery и переданный массив маркеров.

Ну и так далее.

Как у вас всё просто Smile если на странице динамики хоть немного больше, чем маркеры, то эта прелесть оборачивается ночным кошмаром (флаги, маркеры, блок с новым контентом (для каждого пользователя - свой)). Теперь получается: коннект на забор страницы из кеша, коннект на маркеры, коннект на флаги, коннект на каждый индивидуальный блок. Всё это сопровождается созданием процесса сервера, тоннами подключений к серверу БД и т.д. Естественно я буду стараться минимизировать число запросов и вообще пытаться объединять некоторые вещи.

Аватар пользователя Mojo Mojo 21 октября 2009 в 18:17

1) cck вроде и раньше можно было поставить?

2) над таксономией тоже можно было извращаться и в прежних версиях

3) админку так же можно было переделывать под свой вкус.

в общем, пока ничего принципиально нового я не вижу.

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

Quote:
В простыне прав доступа появились пояснения! Уря!

серьезное новшество!
LOL

Аватар пользователя Master of Tragedy Master of Tragedy 21 октября 2009 в 18:42

"MDinc" wrote:
Эх как Вы не правы

Эх, дождешься! Лично у меня уже терпение на исходе. Умник, бл..ь, нашелся.Только и делаешь, что всем тыкаешь. Не хочешь на другой сайт отправиться и поучать других, а?

Аватар пользователя Dark_kz Dark_kz 21 октября 2009 в 20:17

Спасибо за статейку, будет время поглядим на семерку.
Mojo, зря лолите - новшества есть. Лично для меня проблема локализации других языков это одна из самых больших, если она будет решена на семерке в коробке, то новые сайты будут делаться исключительно на ней.
penexeЧто же касается "легкости" переезда с 6 на 7 (да хоть с 5 на 6), это вообще глупость сморозили.

Аватар пользователя andypost@drupal.org andypost@drupal.org 21 октября 2009 в 21:29

По поводу новых тем - автор забыл сказать про stark! Это голая тема, которая создана для отлова багов в css контриба и как шаблон для изучения внутренних css стилей ядра.

PS: забавный флейм вышел... вместо того, чтобы помочь в разработке хотя бы ревью готовых патчей - сыплется критика...

Назвревает вопрос: что ТЫ сделал, чтобы drupal стал лучше?

Аватар пользователя Dan Dan 22 октября 2009 в 0:29

"payalnik" wrote:
Зато второй ряд ссылок (shortcuts) можно настраивать.

Первый тоже - /admin/structure/menu-customize/management. Тема меню не раскрыта.

"payalnik" wrote:
Более того, в Drupal будет встроена функциональность модуля image_cache, подготавливающего различные версии картинок для превью, ресайзов и т.д.

Уже встроена - /admin/config/media/image-styles

"payalnik" wrote:
Внутри Drupal прошло значительно изменение API доступа к БД (раньше программистам приходилось регэкспами! корректировать запросы других модулей).

hook_db_rewrite_sql программистам не помогал?
"<a href="mailto:andypost@drupal.org">andypost@drupal.org</a>" wrote:
Насчет профилей автор погорячился, скорее всего profile там и не будет расширен через fields и ко всему в придачу потеряет ограничение на доступ - не успели...

Жаль. Хотя может и к лучшему - content_profile станет лучше Smile

"<a href="mailto:andypost@drupal.org">andypost@drupal.org</a>" wrote:
Замечу, что друпал не стремится к производительности, а стремится к масштабируемости - месячная аренда сервера значительно ниже оплаты труда разработчика.

Это у "них". У "нас" - друпал пытаются ставить на джино-хостинг и обходиться без программистов Smile

Аватар пользователя PVasili PVasili 22 октября 2009 в 1:20

"Dan" wrote:
Это у "них". У "нас" - друпал пытаются ставить на джино-хостинг и обходиться без программистов
- за больное прям Wink

Аватар пользователя Valeratal Valeratal 22 октября 2009 в 7:22

когда на сайте больше 20к уников, вариантов тарифных планов у хостеров не так уж и много
Чай не Амазоновское облако

Аватар пользователя Valeratal Valeratal 22 октября 2009 в 9:26

ну пока будем заниматься оптимизаций
а то даже мемкэша нема
(я к тому, что все равно приходится выходить за рамки "включить сжатие CSS")

Аватар пользователя Dan Dan 23 октября 2009 в 6:59

Думаю ещё стоит упомянуть возможность установить роль администратора (/admin/config/people/accounts) - для пользователей с этой ролью автоматически устанавливаются разрешения вновь включаемых модулей. Вещь незаменимая для коллективной разработки: спец-пользователи могут спокойно включать/выключать модули, но не иметь возможности, например, устанавливать права. К тому же теперь незачем всем открывать пароль юзера №1 - достаточно включить в эту роль. Эдакий псевдо-sudo аналог.

Также появился спец регион "Help", в котором будет размещаться контекстная справка системы - мелочь, а приятно.

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

Аватар пользователя Reideen Reideen 10 ноября 2015 в 11:46

Небольшие изменения по сравнению с предыдущей сборкой.

  • Установка по умолчанию с новой темой админки Seven, не помню в предыдущей сборке была вроде Garland тема.
  • Теперь при редактирование материалы или настройки сайта не надо переключаться на админ панель, она сама показывается поверх сайта.
    Вроде Highslide элемента к изображению когда кликают по нему для увеличения.
  • При загрузки изображения через default upload image получаю ошибку "An HTTP error 0 ocurred.
    Path: /seven/file/ajax/field_image/zxx/0/form-6cbd961998d792e81363ed87318d5e65". Ни чего не показывает, но
    изображение исправно загружает и в конечном итоге все нормально показывает. Не понятно одно где взя Ajax, куда прикручивать, и нужен он вообще по умолчанию.
    Решили сделать загрузку изображений через Ajax или он тут совсем не причем?
  • Настройка блока сделана неплохо, хоть не тормозит как эта новая всплывающая админка.
    В предыдущей версии этого не было и скорее всего этого не избежать в финальном релизе,
    главное чтобы все оптимизировали. Насчет блока настройки то же выпадает меню - понравилось.




Аватар пользователя Stargazer Stargazer 17 января 2010 в 19:17

Спасибо за обзор Smile

Вопрос по теме: может кто-то спрогнозировать минимальные требования к платформе при базовой комплектации с учетом 100 активных посетителей в час?

Аватар пользователя Dan Dan 19 января 2010 в 23:18

"Ламер" wrote:
а тема севен, только дл админки , или на ней можно делать сайт?

Что, понравилась? Smile
Никто не запрещает. Посмотри ещё rubik и cube (подтема rubik).

Аватар пользователя Stargazer Stargazer 20 января 2010 в 10:35

Quote:
Официально требования перечислены тут -- http://drupal.org/requirements
Неофициально покажет время.

Спасибо огромное!

Quote:
и самое мерзосное - купил висту, как только она вышла!

Семерка стоит сразу, как только умельцы портировали русский язык с висты. Потом ставил RC1, всем доволен, никаких проблем. Хотя вру, одна есть ... с драйверами starforce косяк, но это все пройдет

Аватар пользователя Dan Dan 20 января 2010 в 12:08

"Ламер" wrote:
да(((((((((( мечаяно, с пьяну, импульсивной покупко! хорошо что не энтерпрайз а самую дешовую

Покупка винды - это звоночек. Пора бросать пить ))))

Аватар пользователя PVasili PVasili 21 января 2010 в 0:04

"Valeratal" wrote:
Ну да, только проф версия за 100 не продается, увы
4500-7000 зависит от коробки и продавца.
так... 60% так и осталось?

Аватар пользователя Stargazer Stargazer 21 января 2010 в 15:28

Quote:

вот я и говорю, ту и ту семёрку я посмотрю через полгода.
а сейчас просто интересно - тема которая на админке, она для сайта целиком применима?

Не потом поздно будет Smile 2 года юзали на халяву, а сроки уже к концу подходят Smile Жалко конечно, хоть оно и не надо там всякие обновления, но чёрт подери, приятно, когда не надо дрова искать по всему нету... Тыц на пимпу и всё стоит ровно. Даж не представляю как потом на хрюшу возвращаться ... Жду крека xD

Аватар пользователя Dan Dan 21 января 2010 в 18:01

Господа, не отвлекайтесь от темы, пожалуйста.
Valeratal, подобные вопросы можно задать приватным сообщением.
К тому же разговор о кряках и иже с ними на сайте не приветствуется.

Аватар пользователя ihappy ihappy 28 января 2010 в 3:10

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

Аватар пользователя Dan Dan 28 января 2010 в 9:12

"metakon" wrote:
А вообще года два можно честно о семерке не думать и юзать шестерку.
имхо конечно.

То есть к выходу 8-ки? Lol

Аватар пользователя ihappy ihappy 28 января 2010 в 21:25

"Dan" wrote:
То есть к выходу 8-ки? :)))

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

Аватар пользователя Dan Dan 28 января 2010 в 22:32

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

Аватар пользователя ihappy ihappy 29 января 2010 в 1:24

"Dan" wrote:
7-ку делают два года. К лету на ней можно будет вполне делать сайты. Чисто технически. Практически программисты освоятся с полями, новой темизацией и начнут давать адекватные рекомендации на этом сайте к концу году.

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

Аватар пользователя Dan Dan 29 января 2010 в 4:21

"metakon" wrote:

1.Да и не надо забывать, шестерка уже два года как зарелизилась, а многие до сих пор юзают пятерку.
2.Многих модулей досих пор не портировали.

1. Ну дык чтобы сайт на версию поднять, надо напречься. А зачем, когда и так работает?
2. И не будут портрированы никогда, ибо они или заброшены или не нужны в 6-ке или написаны модули получше.

"metakon" wrote:
А до этого, врядли какой серьезный человек будет юзать не провереную вещь.

http://drupal.org/project/usage/drupal - тысяча несерьёзных на альфе уже есть Smile

Аватар пользователя ihappy ihappy 29 января 2010 в 14:37

О боже.
я говорю про то что шестерку можно юзать еще года два спокойно.
а не о том что семерка гавно.

Аватар пользователя Dan Dan 29 января 2010 в 15:41

Тогда надо определиться что значит "юзать". Я под этим словом подразумеваю "делать новые сайты".

Аватар пользователя t1mm1 t1mm1 30 января 2010 в 3:24

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

по апи тоже ничего нового и военного.
архитектура обработки семантики ядром та же?

портация модулей = побочные баги + время на патчи, которые еще ++ время на интеграцию в релизы модулей.

посмотрим.
вообще, а юзабили где?

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

P.s.интересно, а кто нибудь риски оценивал? я понимаю что опен сорц, но проекты весьма реальны, и риски тоже. Как с стабильностью? Как ведет себя при 10 к трафика в день (не уников)? Как вебет себя при включении 10 и более модулей и портации из внешних источников инфы (файлы, обращения к рсс/парс данных), не падает, как с оптимизацией обработки массивов хранения данных? как по работе с сессиями, улучшения есть?

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

Посмотрим в общем. А пока будем сидеть на 6ке дальше и ждать новостей с фронта. И тестить тестить тестить..

Аватар пользователя Valeratal Valeratal 30 января 2010 в 9:16

10 к трафика в день (не уников) это много? Вообще проблемы больше от зарегенных, чем от гостей (на гостей натравливается нжинс)

p.s. Полагаю в буржунете проект с 10к трафиком может позволить себе сидеть на собственном сервере (и проводить оптимизации этого сервера) - там и хостинг дешевле и денег больше у пользователей и у рекламадателей (ну или какая там модель монетизации)

Аватар пользователя Dan Dan 30 января 2010 в 9:27

2t1mm1: охота потролить?
Изменения весьма существенны, Ваши вопросы говорят о том,что Вы "не в теме".

Аватар пользователя t1mm1 t1mm1 30 января 2010 в 11:32

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

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

Аватар пользователя Виктор Степаньков ака RxB Виктор Степаньк... 30 января 2010 в 9:57

А мне интересно чего товарищ t1mm1 так придрался к семантике и что он под этим словом подразумевает, за прошедшие сутки я это слово от него прочитал как минимум три раза

Аватар пользователя t1mm1 t1mm1 30 января 2010 в 11:34

придрался потому, что это больная тема при программировании или построении архитектуры модулей, особенно когда проект пишут не один человек (именно пишут, используя за основы уже готовые модули). И мне было просто интересно - как дела с интеграцией трех К основ ООП в самой основе? (да да, на пхп есть реализация ооп, например, продукт xCore)

Аватар пользователя Dan Dan 30 января 2010 в 11:53

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

Откуда такое масло-маслянное определение? Синтексис - это уже "определённая иерархия". Логики у синтаксиса быть не может, т.к. синтаксис - это основа, набор правил-аксиом языка или ещё чего-нить. Синтаксис может быть неудобным или избыточным или просто непонятным, но нелогичным - вряд ли.

"t1mm1" wrote:
или вызов определенных хуков относительно пути.

Как это? Какого пути?

"t1mm1" wrote:
придрался потому, что это больная тема при программировании или построении архитектуры модулей, особенно когда проект пишут не один человек

Больная тема - это совместная работа с БД, так как изменения в ней отслеживать сложно. А программирование модулей хоть всем табором - не проблема, cvs,svn,..., тестовый сервер - и вперёд.

"t1mm1" wrote:
релиз подразумевает существенные, прежде всего, улучшения, и исправления багов.

Энди писал, специально для программистов: http://prodrupal.ru/ru/node/58
А насчёт багов - это про что? Баги для 6-ки исправляются в шестой ветке. У 7-ки - новая архитектура, новые баги Smile

Аватар пользователя t1mm1 t1mm1 30 января 2010 в 16:50

http://prodrupal.ru/ru/node/58

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

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

Понимаете. 7я версия как я понял - есть продолжение основ и начатого (как и любая другая версия во всей линейке уже девять лет) - и есть улучшения.

Но опять же.
Лично я ождал, что решиться на уровне ядра проблема с кешированием, решиться проблема с удобством коддинга и приведением внутренней стандартизации к общим стандартам ООП, а не оставаясь на нечто среднем, что бы можно было править не только модули, а при и необходимости - ядро, что бы был наконец-то выработан единый стандарт написания кода внутри обработчиков.. То есть, меня прежде всего интересовали изменения в производительности, а не в UI.

Порадовало, что наконец-то появился разговор о сущностях, а не основах - узлах. Это радует.
Да и в целом - относительно крона, тестирования (кстати, тут действительно +100 - нужный момент) - это плюсы.

"...система готова, изменения в архитектуре и API производиться не будут, фактически сейчас ..."(с)Конец цитаты.
но честно говоря..когда в каментах говорят, что в ооп нет удобства.. эм... как бы странно звучит это.0_0

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

P.s.я ни в коем случае не критикую. Любая работа хороша над проектами в любых проявлениях, видно что проект живет, особенно включая во внимание награды за 2009 год. просто было интересно как программисту, какие нововведения были, оправданны ли они за счет изменений, и каких подводных камней стоит ожидать теперь. Троллингом я занимаюсь на других ресурсах Smile Спасибо за ответы.

Аватар пользователя Dan Dan 30 января 2010 в 20:07

1. ООП и семантика. Я так понимаю, Вас не устраивает система хуков и Вы предпочитаете ООП. Да, объекты часто удобны, но они далеко не панацея и совсем не универсальное средство програмирования, ииначе другие направления, типа функционального программирования умерли бы за ненадобностью. Дабы не казатьсятеоретиком, могу добавить, что у меня восьмилетиний опыт объектного программирования на С++, но АПИ друпала мне очень даже по душе и считаю его более о коротким и эффективным по сравнению с ООП. Кроме того, ООП в окружении друпала используются, если эта тема Вам близка - пользуйтесь и пишите мануалы для новичков о том как писать модули для views, паналей и т.д. - это востребовано.

2.БД. Я имел ввиду не работу с двумя БД, а коллективную работу с одной БД - синхронизация и откаты правок.

"t1mm1" wrote:
Понимаете. 7я версия как я понял - есть продолжение основ и начатого (как и любая другая версия во всей линейке уже девять лет) - и есть улучшения.

3. Как раз нет. Это переходная версия к новому. В 8-ке возможно откажутся от узлов (node), которые в 7-ке оставили для совместимости, то есть логические сущности в системе сменились крренным образом, хотя пока это внешне и незаметно. Это 6-ка была "продолжением основ" 5-ки.

4. Производительность. Могу гарантировать, что каждая следующая версия системы будет медленнее предыдущей. Меня это не сильно беспокоит, скорее для меня важно чтобы можно было гибко управлять кэшированием, и вроде в 7-ке с этим лучше, чем в 6-ке. Пока я не в теме.

Аватар пользователя t1mm1 t1mm1 31 января 2010 в 2:13

спасибо за подробное толкование
Smile

впрочем, уже пролистал и на офф сайте что и к чему. улучшения есть.
да, переход к сущностям (и отход от узлов) есть плюс...

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

Аватар пользователя andypost@drupal.org andypost@drupal.org 31 января 2010 в 19:51

Как мне надоели дискусы по ООП... все расписано http://drupal.org/node/547518
Еще была попытка http://drupal.org/project/handler (подробнее http://www.garfieldtech.com/blog/drupal-handler-rfc)

Но практика показывает, что проще иметь 20-40 api функций, чем 20 классов со своими методами и свойствами.

Дан грамотно подметил - люители ООП могут кодить под ctools, views, panels
Но сравните количество полезных модулей, которые написаны без ООП и сним Smile

Предлагаю закрыть эту тему (ООП).

По поводу javascript: все чего нехватало 6ке - это подключения внешних JS файлов на уровне api уже реализовано, также расширены методы formAPI для ajax операций. Остальное на совести разработчиков и только потребности реально покажут, что востребовано, а что нет.

О семантике, на сегодня подавляющее большинство php программеров не пользуются namespaces и при соблюдении http://drupal.org/code-standarts почему-то у всех разработчиков модулей не возникает проблем с именованием...

Системы кеширивания - зачем в коробке тащить что-либо кроме кеширования в базе? Много ли хостингов с memcache или доступом к функциям кеширования в apc, не говоря уже о более экзотичных продуктах?
Соответственно, если есть возможность ставить кеширующие сервера-сервисы, то нет никаких проблем доставить и настроить под них нужный модуль, причем с учетом конкретной задачи ибо здесь не может быть универсальных решений.
Для интрересующихся есть http://drupal.org/project/entitycache а также наконец началась работа над портированием http://drupal.org/project/cacherouter

По поводу сущностей - сначала они будут обкатываться в контрибе http://drupal.org/project/entity

Пользуйтесь гуглом, все поднятые вопросы обсуждались и за 2 года работы над 7кой именно Developer Experience в большинстве своем был учтен, юзабельность и интересы контриба также были учтены, но в значительно менбшей степени... почему? наверно большинство это устраивает... http://www.d7ux.org/ было достаточно времени высказать свои предложения и обсудить их.

Аватар пользователя t1mm1 t1mm1 31 января 2010 в 20:18

дискутов нет *)
как и холивара на предмет что лучше а что нет
я думаю что время покажет степерь удобства реализации тех или иных методов.

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

спасибо за ссылки. будем читать и вникать более существенно.

Аватар пользователя kiev1 kiev1 31 января 2010 в 22:21

"Dan" wrote:
3. Как раз нет. Это переходная версия к новому. В 8-ке возможно откажутся от узлов (node), которые в 7-ке оставили для совместимости

ясно, спасибо за разъяснения - то есть излишние усложнения, которые к тому-же необходимы только поскольку-постольку ради перехода на 8-ю версию и к тому-же тормозящие систему,

похоже то что было нужно в друпале "из коробки" - views cck fckeditor и т.д. - этого так и нет, за то теперь есть непонятные сложности вроде очередей под pgsql и начатки чего-то под грандиозные проекты... того и глядишь - в 8-ке перелопатят весь код, напишут кучу прослоек для коннекта с базами, поменяют весь api - и все ради совместимости с какой-нибудь версией Oracle Sad - в древнем PostNuke 6-ти летней давности был почти мегабайт кода для коннекта с базой который написан в друпале в нескольких строках, не хотелось бы возвращения монстров

в общем пока я так и не увидел существенных улучшений по сравнению с 5-м друпалом, а если модулей под 6-й останется больше - то существует риск разделения друпала на простой 6-й и сложный для больших (непонятно каких) проектов - 7-й

Аватар пользователя PanDa777 PanDa777 1 февраля 2010 в 9:52

cck, вроде, есть.
Views 3 тоже будет лишь под 7ку, как я понимаю. И вот именно в нём обещают улучшение производительности в связи с каким-то там кешированием.
WYSIWYG — вообще не уверен, что должно быть в ядре…

А может кто-нибудь рассказать концепцию Entity API? Если не сложно, конечно. И чем она так отличается от концепции Node.

Правильно ли я понимаю, что Node + CCK ≈ Entity + Bundle?

Аватар пользователя Skirr Skirr 8 февраля 2010 в 3:32

PanDa777 wrote:

А может кто-нибудь рассказать концепцию Entity API? Если не сложно, конечно. И чем она так отличается от концепции Node.

Правильно ли я понимаю, что Node + CCK ≈ Entity + Bundle?

Однако тоже любопытно.

Аватар пользователя Valeratal Valeratal 1 февраля 2010 в 10:47

WYSIWYG я бы поставил в ядро, хоть буедитор

А то пока въедешь куда, в какую папку запихнуть собственно редактор..
а кому не надо, могут отключить/поставить другой

Аватар пользователя PanDa777 PanDa777 1 февраля 2010 в 14:15

Там же всё ОЧЕНЬ подробно написано...

А для bueditor ничего и пихать не надо.

То, что надо пихать - это то, что нельзя распространять вместе с модулем. Но тогда и с Drupal это распространять нельзя будет.

Аватар пользователя Dan Dan 1 февраля 2010 в 19:45

"PanDa777" wrote:
Но тогда и с Drupal это распространять нельзя будет.

Спорно. На д.орг только GPL, а компоненты могут быть ещё по целой куче лицензий.

"kiev1" wrote:
похоже то что было нужно в друпале "из коробки" - views cck fckeditor и т.д. - этого так и нет

ССК в ядре. Views в ядре не нужен - он сам по себе хорошо живёт, а выпуск ядра оттягивал бы нехило. fckeditor - на нём что, свет клином сошёлся? Вот не понимаю я этой проблемы - отсутствие кучи модулей в ядре. kiev, ты сколько сайтов в день делаешь, что потратить несколько минут на установку модуля - это проблема? Воспользуйся drush, кстати, время сократиться ещё сильнее. Насчёт WYSIWYG в принципе поддерживаю, но он ещё сырой, рано для ядра.

Аватар пользователя PanDa777 PanDa777 2 февраля 2010 в 9:52

Я имел ввиду, что и Drupal, и модули (по крайней мере, те которые удобно ставить — на друпал.орг) имеют одну и ту же лицензию GPL. Именно поэтому CKEditor не входит в состав CKEditor">http://drupal.org/project/ckeditor]CKEditor[/module]

Аватар пользователя kiev1 kiev1 1 февраля 2010 в 23:55

"Dan" wrote:
Воспользуйся drush
о, спасибо! полезная штука, еще-бы другую - что бы сайт сбекапить-развернуть в один клик Lol

Аватар пользователя bratello bratello 24 апреля 2010 в 0:43

"<a href="mailto:andypost@drupal.org">andypost@drupal.org</a>" wrote:
Дан грамотно подметил - люители ООП могут кодить под ctools, views, panels
Но сравните количество полезных модулей, которые написаны без ООП и сним Smile

Предлагаю закрыть эту тему (ООП).


Ну зачем же закрывать, в Д7 ее как раз только открывают, новый DB API к примеру. Правда он все еще примитивный, но это уже что то. Ведь основное преимущество, которое даёт ООП по сравнению с процедурным программированием - возможность выводить обобщенные алгоритмы для самых разных предметных областей. Полиморфизма как раз в новом DB API мало ощущается, почему то не желают программисты мыслить в ООП дальше обьекта с методами и свойствами. И что прикольно, в случае с Node архитектурой Друпала имеем как раз тот самый полиморфизм, только реализованный процедурными средствами.

Аватар пользователя bratello bratello 26 апреля 2010 в 12:31

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

<?php
$query 
db_select('users''u');

$query
  
->condition('u.uid'0'<>')
  ->
fields('u', array('uid''name''status''created''access'))
  ->
range(050);

$result $query->execute();?>

А в другом случае это может быть поиск в xml:

<?php
$query 
xml_select('users''u'); //ini_select(), fs_select(), whatever_select()

$query
  
->condition('u.uid'0'<>')
  ->
fields('u', array('uid''name''status''created''access'))
  ->
range(050);

$result $query->execute();?>

Либо будет написан db провайдер который поставляет данные из облака Амазон, хмл провайдер будет поставлять данные из Гугль Докс, дописан провайдер для Веб Сервис дата абстракшн леер, и так далее и тому подобное. Оторвать нужно друпал от конкретного хранилища. Сюда же аггрегировать стратегии кеширования:

<?php
$query 
local_cache_select(db_select('users''u'));
$query
  
->condition('u.uid'0'<>')
  ->
fields('u', array('uid''name''status''created''access'))
  ->
range(050);?>

где local_cache_select будет возвращать некий обьект который в себе будет аггрегировать абстрактный тип селекта (ДБ, ХМЛ), с точно таким же интерфейсом, но со стратегией статик кеширования:

<?php
class LocalCacheSelect{
    public 
$inner_select;
    protected static 
$local_cache = array();
    
    public function 
condition(...){
        ... 
prepare data for local_cache request ...
        
//delegate condition to the inner select
        
$this->condition(...);
        
//bla bla
    
}
    public function 
execute(){
        
$data $this->executeLocal();
        if(!
$data)
            return 
$this->preserve_data($this->inner_select->execute());
        return 
$data;
    }
};
?>

Или этот static $local_cache будет в обьекте RecordSet который возвращается из execute. Тоже самое можно применить для
memcache, apc, etc, причем кеши могут нахлобучиваться друг на друга:

<?php$query = mem_cache_select(local_cache_select(db_select('users', 'u')), mem_cashe_config);?>

Каждая запись, которая возвращается из RecordSet будет иметь методы для апдейта:

<?php
$result 
$query->execute();
foreach(
$result as $record){
    
$record->name "Vasya";
    
$record->update(); //make storage request for update data
}
?>

Точно такой же метод может быть и у RecordSet, для построения пакетного запроса апдейт для всего сета записей:

<?php
$result 
$query->execute();
foreach(
$result as $record){
    
$record->name "Vasya";
}
$result->update();
?>

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

Аватар пользователя andypost@drupal.org andypost@drupal.org 27 апреля 2010 в 1:00

bratello Все правильно! Рекомендую посмотреть как реализованы MongoDB MemCache как раз реализуется перегрузка класса кеша.

Еще важно заметить что с таким унифицированным подходом к запросом очень приятно делать всевозможные _alter() операции в зависимости от тегов addTag(), которыми помечены запросы.

Например теперь стал возможным динамический перевод данных, для этого а опредении поля в hook_schema() добавляется 'translatable' =>TRUE и в запрос тег, например http://api.drupal.org/api/function/contact_category_list/7