Люди готовы отказаться от улучшений качества жизни из-за необходимости делать хоть какие-то перемены. К примеру, не увольняются с плохой или низкооплачиваемой работы, потому что на новой им будет "непривычно". Поэтому всегда надо тянуть себя силой. В том числе и в программировании.
Никто не будет принимать что-то новое, если старое исправно работает. В том числе и в программировании: зачем пользоваться новыми методами, если старые и так работают? Сам программирую на Битриксе "старыми" функциями, не смотря на то, что новое ядро вышло уже лет пять назад.
Нужен стимул, чтобы запустить процесс изучения нового. К примеру, сразу возьмусь за D7, если скажут, что функции работают быстрее. Потому что хочу сэкономить на ресурсах хостинга.
Обратился к техподдержке Битрикса, чтобы найти этот стимул:
В чём преимущество D7? Да, есть новые функции, которые делают то, что не могли старые. Но в чём основной смысл перехода? D7 быстрее? Если оно быстрее, то я без проблем перейду. Но мне надо знать на сколько % оно быстрее. Чтобы моя лень по переписыванию десятков сайтов уменьшилась, и появилась осознанная выгода, цель. Мне же по клавиатуре дольше стучать с этим D7. Зачем оно нужно?
Да, d7 быстрее и стиль программирования более актуальный для текущего времени. На сколько процентов он быстрее нельзя сказать, так как на разные серверах будут показатели разные.
В D7 код получается длиннее. Бог с ним, что он выглядит непривычно. Но он длиннее. Больше строк, больше символов. Зачем это сделано?
Больше строк, больше символов, это не минус, поэтому проблем в этом не вижу.
Будет ли окончательный переход на D7: наступит день, и перестанут работать все мои сайты, на которых используются старые классы. Верно? И все переписывать "с нуля", верно?
Нет, старые методы не перестанут работать. Обратную совместимость мы ломать не будем.
И ещё один вопрос, который очень волнует: почему ядро называется "D7"? Старое ядро было "D6"?
Просто так придумали. У предыдущего ядра не было подобного названия.
После этой переписки решил сломать через колено своё "не хочу", и начал робко использовать новые методы.
Поначалу приходится работать вслепую: не знаешь какой функции что можно скормить. Но для понимания можно проверить, какой запрос к базе данных генерируется. К примеру, выполняете:
$res = \Bitrix\Main\GroupTable::getList(array(
'filter'=>array('=ID'=>1)
));
Чтобы понять, какой запрос генерируется, распечатайте результат выполнения функции getLastQuery() сразу же после кода:
print_r(\Bitrix\Main\Entity\Query::getLastQuery());
Функция getLastQuery() выдаст последний запрос к базе:
SELECT .... FROM `b_group` `main_group` WHERE `main_group`.`ID` = 1
Легко заметить как после добавления/изменения фильтра/параметров меняется запрос. К примеру, добавляем ограничение на выборку:
$res = \Bitrix\Main\GroupTable::getList(array(
'filter'=>array('=ID'=>1)
'limit' => 1,
));
Получаем модификацию запроса:
SELECT .... FROM `b_group` `main_group` WHERE `main_group`.`ID` = 1 LIMIT 0, 1
После нескольких таких проверок можно привыкнуть к ORM.