Как не сойти с ума при разработке крупных проектов на...

30
Как не сойти с ума при разработке крупных проектов на WordPress Евгений Котельницкий WordCamp Russia 2014

Upload: yevhen-kotelnytskyi

Post on 22-Nov-2014

334 views

Category:

Software


1 download

DESCRIPTION

Видео на wordpress.tv: http://goo.gl/yTzYRq

TRANSCRIPT

Page 1: Как не сойти с ума при разработке крупных проектов на WordPress

Как не сойти с ума при разработке крупных проектов на WordPress

Евгений КотельницкийWordCamp Russia 2014

Page 4: Как не сойти с ума при разработке крупных проектов на WordPress

План1. Наши цели

2. Что может нас ожидать?

3. Полезные практики

4. Интеграция с плагинами

5. Безопасность

6. Модульная архитектура

7. Пример модульной темы

Page 5: Как не сойти с ума при разработке крупных проектов на WordPress

Наши цели

Чего мы хотим от проекта?

● Простота поддержки

○ Низкий порог вхождения

○ Низкая себестоимость изменений

○ Минимум ошибок

● Отсутствие проблем с быстродействием

Page 6: Как не сойти с ума при разработке крупных проектов на WordPress

Что может нас ожидать?

Сложность поддержки

● Как найти / исправить ошибку?

● Где реализован этот блок?

● Кто так пишет? (стиль написания кода)

● Кто так пишет? (архитектура)

● Я не трогал этот модуль, откуда ошибка?

● Как я перенесу “часть изменений”?

Page 7: Как не сойти с ума при разработке крупных проектов на WordPress

Что может нас ожидать?

Быстродействие \ Back-end

● Запросы в PHP циклах

● Повторяющиеся операции

● Структура БД

● Неоптимизированные запросы

Page 8: Как не сойти с ума при разработке крупных проектов на WordPress

Что может нас ожидать?

Быстродействие \ Front-end

● Большое количество медиа-файлов

● Растущий с прогрессией CSS

● Проблемы с JavaScript возникают редко

Page 10: Как не сойти с ума при разработке крупных проектов на WordPress

Пишем на одном языке … с другими WordPress-разработчиками

Используем возможности WordPress

● “wp_remote_…” вместо cURL

● “wp_mail” вместо PHPMailer

● “$wpdb” вместо “mysqli_query()”

Page 11: Как не сойти с ума при разработке крупных проектов на WordPress

Обработка исключений

Page 12: Как не сойти с ума при разработке крупных проектов на WordPress

Оповещение об ошибках

Page 13: Как не сойти с ума при разработке крупных проектов на WordPress

Организация хуков

Проблемы

● Поиск реализации

● Очерёдность выполнения

● Конфликты хуков

Решение

“Декларативность” -

Добавим немного правил

Page 14: Как не сойти с ума при разработке крупных проектов на WordPress

HTML-верстка

● Отделяем HTML-шаблоны от PHP

● Не пишем в них JavaScript

● У каждого модуля свои шаблоны

● Используем методологии вёрстки

Page 15: Как не сойти с ума при разработке крупных проектов на WordPress

Статические компоненты

У каждого модуля свои

Page 16: Как не сойти с ума при разработке крупных проектов на WordPress

Интеграция с плагинами

Пример 1: GravityForms

Page 17: Как не сойти с ума при разработке крупных проектов на WordPress

Интеграция с плагинами

Пример 2: WooCommerce

Page 18: Как не сойти с ума при разработке крупных проектов на WordPress

Безопасность

Page 19: Как не сойти с ума при разработке крупных проектов на WordPress

Построение архитектуры

О качестве архитектуры

Архитектура ПО - многоуровневая система абстракций.

Качество абстракции

● Зацепление

● Связность

● Полнота

● Достаточность

● Примитивность

Качество классов и объектов, Гради Буч

Page 20: Как не сойти с ума при разработке крупных проектов на WordPress

Построение архитектуры

Что дают нам Модули?

● “Упрощение”

● Повторное использование

● Бесконфликтная работа команды

● Помодульные релизы

Page 21: Как не сойти с ума при разработке крупных проектов на WordPress

Пример модульной темы

Page 22: Как не сойти с ума при разработке крупных проектов на WordPress

Theme

Page 23: Как не сойти с ума при разработке крупных проектов на WordPress

Theme / core

Page 24: Как не сойти с ума при разработке крупных проектов на WordPress

Theme / core / libs

Page 25: Как не сойти с ума при разработке крупных проектов на WordPress

Theme / core / modules

Page 26: Как не сойти с ума при разработке крупных проектов на WordPress

Theme / core / modules / portfolio

Page 27: Как не сойти с ума при разработке крупных проектов на WordPress

Theme / core / modules / portfolio / static

Page 28: Как не сойти с ума при разработке крупных проектов на WordPress

Theme / core / modules / portfolio / widgets

Page 29: Как не сойти с ума при разработке крупных проектов на WordPress

Вопросы?

Page 30: Как не сойти с ума при разработке крупных проектов на WordPress

Спасибо!