![Page 1: Как не сойти с ума при разработке крупных проектов на WordPress](https://reader033.vdocuments.mx/reader033/viewer/2022051513/546fc558af79597a288b465d/html5/thumbnails/1.jpg)
Как не сойти с ума при разработке крупных проектов на WordPress
Евгений КотельницкийWordCamp Russia 2014
![Page 3: Как не сойти с ума при разработке крупных проектов на WordPress](https://reader033.vdocuments.mx/reader033/viewer/2022051513/546fc558af79597a288b465d/html5/thumbnails/3.jpg)
Евгений Котельницкий
+YevhenKotelnytskyi
@yeeevhenhttp://4coder.info/me
![Page 4: Как не сойти с ума при разработке крупных проектов на WordPress](https://reader033.vdocuments.mx/reader033/viewer/2022051513/546fc558af79597a288b465d/html5/thumbnails/4.jpg)
План1. Наши цели
2. Что может нас ожидать?
3. Полезные практики
4. Интеграция с плагинами
5. Безопасность
6. Модульная архитектура
7. Пример модульной темы
![Page 5: Как не сойти с ума при разработке крупных проектов на WordPress](https://reader033.vdocuments.mx/reader033/viewer/2022051513/546fc558af79597a288b465d/html5/thumbnails/5.jpg)
Наши цели
Чего мы хотим от проекта?
● Простота поддержки
○ Низкий порог вхождения
○ Низкая себестоимость изменений
○ Минимум ошибок
● Отсутствие проблем с быстродействием
![Page 6: Как не сойти с ума при разработке крупных проектов на WordPress](https://reader033.vdocuments.mx/reader033/viewer/2022051513/546fc558af79597a288b465d/html5/thumbnails/6.jpg)
Что может нас ожидать?
Сложность поддержки
● Как найти / исправить ошибку?
● Где реализован этот блок?
● Кто так пишет? (стиль написания кода)
● Кто так пишет? (архитектура)
● Я не трогал этот модуль, откуда ошибка?
● Как я перенесу “часть изменений”?
![Page 7: Как не сойти с ума при разработке крупных проектов на WordPress](https://reader033.vdocuments.mx/reader033/viewer/2022051513/546fc558af79597a288b465d/html5/thumbnails/7.jpg)
Что может нас ожидать?
Быстродействие \ Back-end
● Запросы в PHP циклах
● Повторяющиеся операции
● Структура БД
● Неоптимизированные запросы
![Page 8: Как не сойти с ума при разработке крупных проектов на WordPress](https://reader033.vdocuments.mx/reader033/viewer/2022051513/546fc558af79597a288b465d/html5/thumbnails/8.jpg)
Что может нас ожидать?
Быстродействие \ Front-end
● Большое количество медиа-файлов
● Растущий с прогрессией CSS
● Проблемы с JavaScript возникают редко
![Page 9: Как не сойти с ума при разработке крупных проектов на WordPress](https://reader033.vdocuments.mx/reader033/viewer/2022051513/546fc558af79597a288b465d/html5/thumbnails/9.jpg)
Пишем на одном языке … с другими WordPress-разработчиками
Стандарты кодирования● PHP Coding Standards
● HTML Coding Standards
● CSS Coding Standards
● JavaScript Coding Standards
![Page 10: Как не сойти с ума при разработке крупных проектов на WordPress](https://reader033.vdocuments.mx/reader033/viewer/2022051513/546fc558af79597a288b465d/html5/thumbnails/10.jpg)
Пишем на одном языке … с другими WordPress-разработчиками
Используем возможности WordPress
● “wp_remote_…” вместо cURL
● “wp_mail” вместо PHPMailer
● “$wpdb” вместо “mysqli_query()”
![Page 11: Как не сойти с ума при разработке крупных проектов на WordPress](https://reader033.vdocuments.mx/reader033/viewer/2022051513/546fc558af79597a288b465d/html5/thumbnails/11.jpg)
Обработка исключений
![Page 12: Как не сойти с ума при разработке крупных проектов на WordPress](https://reader033.vdocuments.mx/reader033/viewer/2022051513/546fc558af79597a288b465d/html5/thumbnails/12.jpg)
Оповещение об ошибках
![Page 13: Как не сойти с ума при разработке крупных проектов на WordPress](https://reader033.vdocuments.mx/reader033/viewer/2022051513/546fc558af79597a288b465d/html5/thumbnails/13.jpg)
Организация хуков
Проблемы
● Поиск реализации
● Очерёдность выполнения
● Конфликты хуков
Решение
“Декларативность” -
Добавим немного правил
![Page 14: Как не сойти с ума при разработке крупных проектов на WordPress](https://reader033.vdocuments.mx/reader033/viewer/2022051513/546fc558af79597a288b465d/html5/thumbnails/14.jpg)
HTML-верстка
● Отделяем HTML-шаблоны от PHP
● Не пишем в них JavaScript
● У каждого модуля свои шаблоны
● Используем методологии вёрстки
![Page 15: Как не сойти с ума при разработке крупных проектов на WordPress](https://reader033.vdocuments.mx/reader033/viewer/2022051513/546fc558af79597a288b465d/html5/thumbnails/15.jpg)
Статические компоненты
У каждого модуля свои
![Page 16: Как не сойти с ума при разработке крупных проектов на WordPress](https://reader033.vdocuments.mx/reader033/viewer/2022051513/546fc558af79597a288b465d/html5/thumbnails/16.jpg)
Интеграция с плагинами
Пример 1: GravityForms
![Page 17: Как не сойти с ума при разработке крупных проектов на WordPress](https://reader033.vdocuments.mx/reader033/viewer/2022051513/546fc558af79597a288b465d/html5/thumbnails/17.jpg)
Интеграция с плагинами
Пример 2: WooCommerce
![Page 18: Как не сойти с ума при разработке крупных проектов на WordPress](https://reader033.vdocuments.mx/reader033/viewer/2022051513/546fc558af79597a288b465d/html5/thumbnails/18.jpg)
Безопасность
![Page 19: Как не сойти с ума при разработке крупных проектов на WordPress](https://reader033.vdocuments.mx/reader033/viewer/2022051513/546fc558af79597a288b465d/html5/thumbnails/19.jpg)
Построение архитектуры
О качестве архитектуры
Архитектура ПО - многоуровневая система абстракций.
Качество абстракции
● Зацепление
● Связность
● Полнота
● Достаточность
● Примитивность
Качество классов и объектов, Гради Буч
![Page 20: Как не сойти с ума при разработке крупных проектов на WordPress](https://reader033.vdocuments.mx/reader033/viewer/2022051513/546fc558af79597a288b465d/html5/thumbnails/20.jpg)
Построение архитектуры
Что дают нам Модули?
● “Упрощение”
● Повторное использование
● Бесконфликтная работа команды
● Помодульные релизы
![Page 21: Как не сойти с ума при разработке крупных проектов на WordPress](https://reader033.vdocuments.mx/reader033/viewer/2022051513/546fc558af79597a288b465d/html5/thumbnails/21.jpg)
Пример модульной темы
![Page 22: Как не сойти с ума при разработке крупных проектов на WordPress](https://reader033.vdocuments.mx/reader033/viewer/2022051513/546fc558af79597a288b465d/html5/thumbnails/22.jpg)
Theme
![Page 23: Как не сойти с ума при разработке крупных проектов на WordPress](https://reader033.vdocuments.mx/reader033/viewer/2022051513/546fc558af79597a288b465d/html5/thumbnails/23.jpg)
Theme / core
![Page 24: Как не сойти с ума при разработке крупных проектов на WordPress](https://reader033.vdocuments.mx/reader033/viewer/2022051513/546fc558af79597a288b465d/html5/thumbnails/24.jpg)
Theme / core / libs
![Page 25: Как не сойти с ума при разработке крупных проектов на WordPress](https://reader033.vdocuments.mx/reader033/viewer/2022051513/546fc558af79597a288b465d/html5/thumbnails/25.jpg)
Theme / core / modules
![Page 26: Как не сойти с ума при разработке крупных проектов на WordPress](https://reader033.vdocuments.mx/reader033/viewer/2022051513/546fc558af79597a288b465d/html5/thumbnails/26.jpg)
Theme / core / modules / portfolio
![Page 27: Как не сойти с ума при разработке крупных проектов на WordPress](https://reader033.vdocuments.mx/reader033/viewer/2022051513/546fc558af79597a288b465d/html5/thumbnails/27.jpg)
Theme / core / modules / portfolio / static
![Page 28: Как не сойти с ума при разработке крупных проектов на WordPress](https://reader033.vdocuments.mx/reader033/viewer/2022051513/546fc558af79597a288b465d/html5/thumbnails/28.jpg)
Theme / core / modules / portfolio / widgets
![Page 29: Как не сойти с ума при разработке крупных проектов на WordPress](https://reader033.vdocuments.mx/reader033/viewer/2022051513/546fc558af79597a288b465d/html5/thumbnails/29.jpg)
Вопросы?
![Page 30: Как не сойти с ума при разработке крупных проектов на WordPress](https://reader033.vdocuments.mx/reader033/viewer/2022051513/546fc558af79597a288b465d/html5/thumbnails/30.jpg)
Спасибо!