Skip to content

Latest commit

 

History

History
181 lines (172 loc) · 18.3 KB

Interview questions - Drupal 7-8.md

File metadata and controls

181 lines (172 loc) · 18.3 KB

Заметки для интервью Drupal-frontend

Повторить

  • Повторить список компетенций Drupal
  • Повторить список модулей
  • Повторить мой конспект опроса Drupal-frontend
  • Вспомнить как ставятся готовые сборки Drupal 7
  • Повторить инструкцию для Drupal-разработчиков от компании Nextep

Книги

Что нового в Drupal 8

  • Больше акцент на использование ООП
    • В 8-ке официально принято использование ООП. Начат постепенный отход от процедурного программирования и использования хуков, которые применялись в времена когда ООП еще небыло доступно в нужном объеме в PHP.
    • В связи с этим появляется много новых, для Drupal, концепций и понятий. Для пространств имен принято следовать стандарту PSR-0 (чуть позже, возможно PSR-4). В 8-ке не будет сделан полный переход к ООП и частичное наследие в виде процедурного кода еще останется, но это будет осуществлено в Drupal 9.
  • Использование компонентов Symfony 2
  • Composer как пакетный менеджер управления зависимостями
    • Часть ядра Drupal. Типа npm/yarn только для php
  • Twig как шаблонизатор (вместо phpTemplate)
  • REST-full сервер
    • Из коробки, Drupal 8 может работать как REST сервер и обслуживать множество устройств.
  • Почти всё является entity
    • теперь это и блок, и комментарий, и ещё много что... Можно добавлять поля и т.д.
  • Широкие настройки экспорта/импорта конфигураций
    • Полностью переделана система конфигурирования и теперь данные о настройках храняться не в базе, как это было раньше, а в файлах.
    • Позволяет легко экспортировать/импортировать настройки, использовать разные настройки для разработки и релиза а также, хранить данные в системе управления версиями.
  • Конфигурации
  • Широкие настройки кэширования
  • Апгрейт с предыдущих версий
    • Для обновления с предыдущих основных версий, в ядро интегрирован модуль Migrate
    • Позволит напрямую обновляться с 6, 7 до 8
  • Модуль Views в ядре
  • Встроенная мультиязычность
  • Inline редактирование (кнопка редактировать прямо на блоке)
  • Встроенный CKEditor редактор
  • Добавление изображений
    • Можно без установки дополнительных модулей, вставлять изображение в нужное место в тексте.
    • Возможна также одновременная загрузка нескольких изображений.
  • Адаптивный дизайн для встроенных тем
  • По сути, Drupal 8 = набор библиотек под Simphony (full-stack php-фрэймворк, на модели MVC, открытый код, по сути - набор автономных компонент)
  • Кроме drush (утилита с интрефейсом CLI) есть Drupal console (CLI).
    • Интерфейс командной строки (CLI) - предназначен для генерации стандартного кода, взаимодействия и отладки Drupal. Нужна больше для разработчиков модулей - автоматизирует рутинные операции, генерирует стандартный код
      • Генерация кода и файлов необходимых для модуля Drupal 8.
      • Исследовать и отлаживать систему.
      • Взаимодействовать с инсталляцией Drupal.
      • Изучать Drupal 8
  • Платный редактор Wisiwig, конструктор страниц
  • Нюансы с подключением JS (behaivors, once)
    • имя перменной
      • обернув весь код без изменений, с помощью стандартного механизма выделения область видимости, объект jQuery стал доступен по имени $.
    • behaviors
      • специальный способ обработки события document ready.
      • Будет отрабатывать не только при загрузке странице, но и при AJAX-изменениях (т.е. когда элемнеты появляются/меняются асинхронно). Весь код, который должен вызваться при готовности страницы нужно заключить в behavior. Все что нужно знать верстальщику — вместо обычного document ready писать бихевиоры.
      • И внутри всегда использовать context при построении селекторов. Context = содержимое (DOM-элемент или селектор), к которому нужно применить(«приаттачить») бихевиор
    • once
      • какие-то обработчики могут назначаться на одни и те же элементы дважды, а нужно это не всегда.
      • При первой обработке добавляет класс, а в селекторе проверяет отсутствие этого класса. Если класс уже есть - повторно не отрабатывем
  • Темы Bootstrap 4 делал на основе субтемы Barrio SASS
  • Модуль Drupal Comerce - разработка интернет-магазинов
  • BigPipe- подгрузка страниц сайта по частям (лэзи лоад). В ядре
  • PageBuilder - замена Panels

Варианты реализации поиска

  • ApacheSolr и словарь для русского стемминга Drupal в рунете
  • Sphinx

Популярные модули Drupal 7 (использовал / полезно знать)

  • Twig tweak (для Drupal 8) - Облегчает настройку шаблонов twig в Drupal 8
  • Context
    • группировка материалов и информации + реакция на них. Например, как не показывать блок например посетителям из москвы? Или если на странице есть определённое представление? Или если курс доллара ниже 25? Или если у пользователя роль "покупатель" а на личном счёте 0? Или на товар есть скидка? Если терминов у материала два и больше? Если один блок надо отображать в нескольких местах страницы... Позволяет совершать определённые дейстивя при выполнении условий. Например, пометить активынм опредеённый пункт меню при условии что нода явлется опр. типом материала и её Поле Х находится в таком-то полодениии.
  • Features переместить конфигурацию сайта из плоскости базы данных в плоскость кода, что позволит контролировать изменения в системе контроля версий.
    пакуем изменения в базе в модуль, тестируем и загружаем на prod
  • Backup and Migrate
  • Panels
    • PageBuilder - хрошая замена Panels в D8
    • создаём стуктурированные макеты страниц, на основе которых мы будем формировать дальнейший вывод блоков
    • создает дополнительные регионы на страницах Drupal сайта. Каждый регион или область веб-страницы можно заполнить любым контентом и блоками. Этот модуль делает админку более гибкой и функциональной. Теперь вы сможете не просто перетаскивать блоки по разным регионам, но и увидеть результат визуально.
  • Pargraphs (есть в 7 и 8)
    • новый способ добавления содержания! Он позволяет добавлять и управлять содержанием проще, чем используя стандартный подход.
    • дает возможность через множественное поле в ноде выводить другие типы параграфов: фотогалереи, текст с изображением, слайдеры, видео и прочее.
    • вместо тупого Full-HTML-поля, в котором все надо делать руками (и не все еще сделается) — можно для каждого материала по-своему контент разметить. Большие картинки, маленькие с обтеканием, видео, блоки, вьюзы, вкладки, аккордеоны — и все это не в редактор пихается, а просто мышкой накликивается. Главное заранее набор этих параграфов определить, и тогда даже контент-менеджер при некоторой сноровке сможет размечать навороченные страницы контента из этих параграфов самостоятельно.
    • Вместо размещения всего содержания в одном поле через WYSIWYG-редактор, включая изображения и видео, пользователи могут на лету выбирать между предопределёнными типами абзацев, которые не зависят друг от друга. Типы абзацев могут быть чем чем угодно, от простого текстового блока или изображения, до сложного и настраиваемого слайд-шоу.
  • Rules Позволяет создавать реакции на события. Например: после отправки формы переадресовать пользователя на опр. страницу или выдать pop-up
  • CSS Injector - пишем CSS из админки
  • HoneyPot - защита форм от спама
  • Slick slider - JS-слайдер
  • FlexSlider - ещё слайдер
  • ManualCrop - кропать фотки
  • Webforms - делать формы, собирать по ним статистику и т.д.
  • Administration menu
  • Colorbox
  • Chaos tool suite (ctools) - API и набор инструментов, которые позволяют облегчить работу разработчика.
  • Devel - dsm и т.д. Обеспечивает удобство работы для разработчиков модулей и тем.
  • Theme developer (Devel themer) Отладчик в Друпале, которой может показать всю необходимую информацию нужную для разработки темы. Включайте этот модуль при разработке темы и отключайте тогда, когда его использование не нужно. Основная идея модуля заключается в использовании hook_theme_registry_alter(), с помощью которого он получает все вызовы темы. Полученный результат и подсказки по использованию элементов оформления показываются с помощью яваскрипта поверх страницы, благодаря чему их можно переместить в удобное место на экране.
  • Pathauto - настройка правил автоматической генерации адресов по различным параметрам.
  • Views
  • Libraries API Является «общим знаменателем» для всех модулей, тем и профилей, которым требуется интеграция с внешними библиотеками. Модуль вводит новое хранилище для библиотек: sites/all/libraries или sites//libraries. Библиотеки находящиеся в этих папках могут использоваться сразу несколькими модулями или сразу на нескольких сайтах. Процесс обновления модуля требующего для своей работы внешнюю библиотеку при таком подходе также становится проще.
  • Better Exposed Filters - Позволяет выводить фильтры в виде ссылок/радио-кнопок
  • JQuery update - Обновляет версию jQuery (библиотека java-script), которая включена в Друпал.

Вопросы

  • Расскажите о себе
  • Как давно работаете с frontend и как давно с Drupal
  • Drupal - с какими версиями доводилось работать
  • Drupal 8
    • опыт frontend-разработки
    • опыт разработки темы. Своя или адаптация готовой?
    • libraries
  • Drush
    • опыт работы с drush?
    • какой командой drush очистить все кэши сайта в Drupal 8?
    • какой командой делать import config from a config directory.
    • какой командой делать display a one time login link for the given user account.
  • Git
    • базовые задачи
      • создать ветку
      • сделать коммити
      • пуш/пулл
      • смержить ветки
      • разрешить конфликт
    • работа через консоль
    • какие веб-сервисы используете для работы с GIT? GitHub, GitLab, Bitbucket...
    • какие-то ещё системы контроля версий? SVN, MErcurial
  • JS
    • опыт работы с JS
    • jQuery
    • native?
    • особенности работы с JS-скриптами в Drupal:
      • имя перменной - обернув весь код без изменений, с помощью стандартного механизма выделения область видимости, объект jQuery стал доступен по имени $.
      • behavior - специальный способ обработки события document ready. нужны для того, чтобы дополнительно добавлять обработчики к новому контенту,
      • once - Какие-то обработчики могут назначаться на одни и те же элементы дважды, а нужно это не всегда. механизм заложен в плагин jQuery.once, который включен в ядро D7
    • линтеры - JSLint
  • Сборщики проектов
    • Gulp,
    • Grunt,
    • Webpack
  • Sass - какие для вас главные преимущества?
  • Bootstrap 4. Что понравилось по сравнению с Bootstrap 3?
  • Адаптивность. Опыт разработки мобильных версий. Подходы, техники?
  • Шаблонизаторы
    • Какие-то ещё шаблонизаторы кроме TWIG и PHPTemplate использовали? Smarty?
    • twig - if front
    • twig - images
  • Flex-box - опыт работы?
  • CSS-grid - опты работы?
  • Есть ли опыт вёрстки по методологии БЭМ?
  • Docker - есть опыт работы? Windows/Linux?
  • Code style - есть опыт работы? Может свой?
  • IDE - в какой работаете?
  • Photoshop/Sketch
  • Сервисы взаимодействия дизайнера и верстальщика - Figma, Zeplin, Avocode
  • Какой таймер используете
  • Локальный сервер - какой вы предпочитаете использовать под Win?
  • Гибкая методология?
  • Инструменты - JIRA, Redmine


Legmo, 2019