Якщо вже говорити про Drupal 8, то з одним з топ-контрибуторів ядра! В офісі InternetDevels і Drudesk гостює сам Андрій Постніков (AKA Andypost).
З традиційною для «опен-сорса» відкритістю і готовністю ділитися, Ендіпост дозволяє всім нашим працівникам «мучити» його питаннями і допомагає розібратися в найскладніших моментах Drupal 8 і не тільки :)
Якщо ви — друпаліст, одне лише ім'я Andypost відразу скаже вам багато про що. Якщо ви далекі від сфери розробки — не поспішайте покидати цю сторінку ;) Обіцяємо, що наша сьогоднішня розмова з Ендіпостом буде цікавою і розробникам, і клієнтам, і користувачам сайтів. Тож почнемо!
Енді, ви з нетерпінням чекали виходу Drupal 8?
Звичайно. Drupal 8 дуже довго виходив — я очікував, що це станеться на рік раніше. І я переживав, коли реліз почав затримуватися, адже в нього було вкладено 4,5 року праці. Але це було того варте, адже багато старих «друпалівських» хвороб були повністю вилікувані, і був дуже ретельно почищений код. Також набагато простіше стало щось змінювати, щоб не поламати.
Ви — в числі топ-контрибуторів ядра. Вам приємно створювати Drupal?
Так, я 12-й чи 13-й у списку — за кількістю згадок в комітах. Безумовно, мені подобається бути контрибутором, адже це дозволяє мені як розробнику тримати себе на належному рівні знань і розуміти, куди Drupal рухається, що люди хочуть від нього, що зроблено не зовсім правильно, де лежать «граблі» — щоб пояснювати це людям, та й самому менше на ці «граблі» наступати. І, звичайно, це дає «профіт» фірмі, в якій я працюю, — в плані репутації. Адже на неї працює людина, яка добре знає ядро.
Куди ж рухається Drupal? Які нові акценти в його розвитку?
Найголовніший тренд «вісімки» — заміна самописного коду, який відверто застарів, на промислові рішення, більш стабільні бібліотеки. Зокрема, Symfony повністю підмінила 3-4 підсистеми.
Також дуже великий фокус на — фронтенд. На Друпалконах фронтендери стали дуже активно спілкуватися і приходити до спільного знаменника з багатьох питань. Я думаю, найближчим часом буде взято курс на відмову від застарілих фронтенд-рішень.
Чи справді Drupal 8 надає великі можливості для багатомовності?
Можливості були і раніше, але в «сімці» набагато складніше було правильно налаштувати багатомовність. Для цього потрібен був з десяток модулів. А в «вісімці» це все вже в єдиній архітектурі, в єдиному підході. Тож якщо сайт вимагає багатомовності, дуже рекомендую «вісімку».
Респонсивний дизайн — тема номер один на сьогодні. З Drupal 8 легше створювати респонсивні теми?
Так, я багато разів пробував керувати сайтом на Drupal 8 з телефону — там все прекрасно виводиться. Адмінська тема (Seven) в Drupal 8 — повністю респонсивна. Від неї просто можна наслідуватися і щось «підфарбовувати». З фронтенд темою (Bartik) також буде зручно будувати теми.
Респонсивні теми в ядрі Drupal 8 ретельно чистили і переписували безліч людей. Тому я категорично не рекомендую сідати і писати свою тему з нуля. Краще подивитися той же Seven і Bartik (моя порада — почати саме з Seven) і тоді вирішувати, від чого наслідуватися.
Багатьох клієнтів цікавить, які перспективи інтернет-магазинів на Drupal 8?
Перспективи насправді хороші. В оновленій платформі Drupal Commerce поміняли управління товарами, додали нативний функціонал для задач з мультивалютності і багатомовності, який вирішує безліч проблем для інтернет-магазинів.
Також з'явилася дуже важлива річ — зональність. Тепер кожен магазин прив'язаний до регіону, і в залежності від того, де людина робить замовлення, ми можемо застосовувати різні дисконти і податки.
Але на сьогодні поки дуже складно створити повноцінний інтернет-магазин на Commerce. Кошик зроблений дуже простенько (тому він так швидко працює). І, найголовніше, поки немає функціоналу по оплатах. Але роботи в цих напрямках ведуться.
Щомісяця виходить по шматочку Commerce. До літа є ймовірність, що і до «платіжок» доберуться. Тоді і можна буде рекомендувати створення інтернет-магазинів на Drupal 8. Хоча у нас є клієнт, який вже зараз замовив інтернет-магазин з перспективою, що за півроку Commerce дороблять.
Крім того, для створення інтернет-магазинів на Drupal вийшла ще і оновлена платформа Ubercart. Я детально не розглядав її, але бачив анонс.
У зв'язку з тим, що не всі модулі ще готові (чи доведені до ідеалу), поки розробка на Drupal 8 вважається більш витратною за часом і бюджетом. А чи є сайти, для яких вона більш рентабельна?
Так, для деяких типів сайтів Drupal 8 вже зараз більш вигідний. Наприклад, для контентних сайтів і сайтів-візиток «вісімка» абсолютно готова, і розробка на ній обійдеться дешевше. Адже туди не потрібно вливати безліч контрибних модулів — необхідний функціонал вже є в ядрі.
Один з аргументів на користь вибору Drupal 8 для більшості сайтів — це те, що в Drupal 7 є відкриті проблеми, які по 2-3 роки висять і є ймовірність, що вони ніколи не будуть вирішені. Адже більшість зайнято вдосконаленням «вісімки».
Багато розробників з нетерпінням чекають, коли можна буде попрощатися з hook-ами.
Теоретично — до виходу Drupal 9. Всі дуже хочуть попрощатися з hook-ами, але, на мою особисту думку, поки що event-и не готові замінити hook-и. Наприклад, перевірка, чи є у тебе підписник чи функція з певним ім'ям, займає разів у 6 більше часу. Система подій працює набагато повільніше, тому з ними все ядро може дуже різко загальмувати.
Деякі hook-и вже прибрали і замінили плагінами або подіями, де це не заважало продуктивності. Можливо, напишуть якийсь event-диспетчер, який працюватиме швидко. Або PHP7, який скомілює все ядро в пам'ять і буде, як hook, перевіряти наявність функцій дуже швидко. Але у мене в цьому є сумніви.
Чи є у вас улюблений модуль?
Вони змінюються. Просто в певний момент я певним модулям приділяю більше часу. Наприклад, зараз у мене в пріоритеті модуль Default Content. Це можливість постачати контент за замовчуванням з профілем встановлення або всередині модуля. Під 7-ку він був, а під 8-ку його переписали з нуля, але не до кінця. Він у мене зараз в пріоритеті, адже він гальмує міграцію з Drupal 6 і 7 на 8. І він просто необхідний, коли потрібно протестувати необхідні речі на сайті, не завантажуючи всю базу даних.
Також я зараз активно розбираюся з модулем Contact Storage. Модуль Contact в ядрі дуже давно існує, він дає формочку зі зворотним зв'язком. В Drupal 8 його переробили (з моєю участю), щоб він працював як вебформа, тобто щоб можна було до контакт-форми додавати різні поля, робити все з більш розширеними можливостями. Крім того, тепер форма зберігається в базі даних.
Дуже хочеться ці модулі доопрацювати і додати в ядро, і я розраховую на це десь до версії 8.3.
24 лютого Drupal 6 офіційно припинив своє існування. Чи терміново потрібно апгрейдитися до нових версій?
В принципі, про жодні критичні «дірки» в Drupal 6 не було повідомлено, і він стабільний. Але є велика проблема: Drupal 6 працює на старій версії php, а вона давно не підтримується, і для неї ніхто не випускає оновлень безпеки.
Зламати сайт на Drupal 6 — завдання навіть не для гуру, а для «середнього розуму». Але зламають його не через Drupal, а через php і застаріле ПЗ на стороні сервера (а воно в будь-якому випадку застаріле, бо Drupal 6 його вимагає). Я думаю, незабаром хтось напише робота, який буде ходити і дивитися, де Drupal 6, щоб його «хакнути». І це буде черговий «Друпалгеддон» (Як було в результаті помилки безпеки в Drupal 7, що поставила під загрозу майже всі сайти). І це найголовніший аргумент на користь апгрейду з Drupal 6.
Чи зустрічався вам такий Drupal-сайт, який вразив вас найбільше своїм дизайном чи функціональністю?
Я вже не захоплююся сайтами. Кожен сайт цінний для мене не дизайном, а тим, як він вирішує своє завдання. Є маса сайтів, які незручні, але при цьому вони унікальні, адже те, що вони роблять, не робить більше ніхто.
Для мене еталоном складного і цікавого сайту є drupal.org. У ньому поєднано дуже багато технологій, велика відвідуваність, причому в основному за рахунок авторизованих користувачів. Для мене це приклад того, як велику «махіну» перевели з «п'ятірки» на «шістку», з «шістки» на «сімку», а тепер - доробляють, переробляють, розширюють, додають безліч сервісів.
Що б ви могли побажати розробникам?
Розробникам варто частіше заходити на drupal.org і знаходити ті «граблі», на яких інші вже потопталися. Не намагатися дебажити, а спочатку — шукати. Адже з 90% ймовірністю проблема вже відома, і з імовірністю 50% — має рішення, хоча б часткове. Це те, що розробники повинні собі взяти за правило. Якщо завдання не вирішується протягом 5 хвилин і ніщо не спадає на думку — треба подивитися на drupal.org, і тоді вже вирішувати, що робити далі.
І ще одне побажання — частіше пропонувати якісь свої рішення. На drupal.org дуже легко знайти спільноту за своїми інтересами. Можна пропонувати все що завгодно — а підтримати чи не підтримати, вирішить спільнота. Drupal-спільнота — це стик неймовірної кількості людей різних професій. Але конструктивний діалог, в якому вони всі висловлюють свої побажання, допомагає робити Drupal кращим!
Ми нереально вдячні Ендіпосту за всі його відповіді і завжди раді бачити його в гостях знову і знову! Тим часом, якщо ви цікавитесь Drupal 8, можемо запропонувати вам блоги наших розробників: Створення попапів у Drupal 8, Темізація в Drupal 8, Використання Twig в Drupal 8, Конфігурація в Drupal 8, Поради з розробки на Drupal 8.