воскресенье, 24 апреля 2016 г.

Как я сдавала второй экзамен по Битрикс

Как я писала в прошлом посте, с сентября 2016 года для подтверждения статуса Золотого партнера, нужно иметь в команде, как минимум, 1го разработчика, сертифицированного по новой системе до уровня "Профессионал" и второго разработчика, сертифицированного до уровня "Базовый". Мне нужно подтверждать статус золотого партнера только в январе 2017, но я привыкла готовить сани летом, поэтому уже сейчас занялась этой проблемой.

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

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

Просмотрев 2 предложенных для подготовки открытых билетов для экзамена по теме "Основные технологии и расширение типовых возможностей системы", я поняла, что второй экзамен без подготовки - может не прокатить, потому что заданий в билете достаточно много для 4х часов, отведенных на экзамен. Я прорешала оба эти билета, измерила примерное время и, наученная опытом первого экзамена, умножила это время на 1,5 - потому что на тормозном экзаменационном сервере все получается медленнее в полтора раза, да плюс - мандраж.

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

И я отрепетировала все мелкие задания на локалке, так, чтобы тратить на каждое не более 7-10 минут. Планировала на экзамене потратить на всю мелочевку не более часа, а остальное время посвятить заданиям про создание простого и комплексного компонента - там много вылизывать. (На экзамене у меня на мелочевку реально ушло 2 часа, и еще 1,5 часа - на разработку простого и комплексного компонента. 30 минут осталось на самопроверку.)

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

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

Посмотрела его - переделывать нужно минимально, эрмитаж - реализован. На экзамене его и взяла.

А в нем для вычисления адресов Эрмитажевских кнопок шел такой код:
$arResItems["EDIT_LINK"] = '/bitrix/admin/iblock_element_edit.php?ID='.$arResItems["ID"].'&type='.$arParams["IBLOCK_TYPE"].'&lang='.LANGUAGE_ID.'&IBLOCK_ID='.$arParams["IBLOCK_ID"].'&find_section_section='.$arResItems["IBLOCK_SECTION_ID"].'&bxpublic=Y&from_module=iblock';
$urlDelete = CIBlock::GetAdminElementListLink($arParams["IBLOCK_ID"], array('action'=>'delete'));
$urlDelete .= '&'.bitrix_sessid_get();
$urlDelete .= '&ID='.(preg_match('/^iblock_list_admin\.php/', $urlDelete)? "E": "").$arResItems["ID"];
$urlDelete = "/bitrix/admin/".$urlDelete;
$arResItems['DELETE_LINK'] = $urlDelete;
Я его оставила - этот код рабочий, он решает поставленную передо мной задачу и он использован в стандартном компоненте Битрикс, а стандартные компоненты - это для нас пример и эталон правильного кода. Какого же было мое удивление, когда экзаменаторы указали мне на ошибку:

- Значительная ошибка: в компоненте кнопки для технологии "Эрмитаж" вычисляются "в лоб" (файл component.php, строки 56-62). Следует использовать метод CIBlock::GetPanelButtons

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

Но вот такое ханжество проверяющих меня слегка зацепило. Ханжество - требовать от других соответствия критериям, которым не соответствуешь сам. Как же так? В коробке Битрикс живут компоненты со Значительными ошибками?  Хотя, конечно, мне грех обижаться - ведь экзамен мне зачли успешно сданным, несмотря на эту ошибку.


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

Комментариев нет: