4. План
1. Наши цели
2. Сложность построения больших WP-сайтов
3. Пишем на одном языке
4. Обработка исключений и оповещения об ошибках
5. Модули и архитектура
a. О качестве архитектуры
b. Модули
c. Организация хуков
d. HTML-верстка
e. Статические компоненты
5. Наши цели
Что мы хотим от проекта?
● Простота поддержки
○ Низкий порог вхождения
○ Низкая себестоимость изменений
○ Минимум ошибок
● Отсутствие проблем с быстродействием
6. Сложность построения больших WP-сайтов
Сложность поддержки
● Как найти / исправить ошибку?
● Где реализован этот блок?
● Кто так пишет? (стиль написания кода)
● Кто так пишет? (архитектура)
● Я не трогал этот модуль, откуда ошибка?
● Как я перенесу “часть изменений”?
7. Сложность построения больших WP-сайтов
Быстродействие Back-end
● Запросы в PHP циклах
● Повторяющиеся операции
● Структура БД
● Неоптимизированные запросы
8. Сложность построения больших WP-сайтов
Быстродействие Front-end
● Большое количество медиа-файлов
● Растущий с прогрессией CSS
● Проблемы с JavaScript возникают редко
9. Пишем на одном языке с другими WP-разработчиками
Стандарты кодирования
● PHP Coding Standards
● HTML Coding Standards
● CSS Coding Standards
● JavaScript Coding Standards
10. Пишем на одном языке с другими WP-разработчиками
Используем возможности WordPress
● “wp_remote_…” вместо cURL
● “wp_mail” вместо PHPMailer
● “dbDelta” вместо “SQL Create”
13. Построение архитектуры
О качестве архитектуры
Архитектура ПО - многоуровневая система абстракций.
Качество абстракции
● Зацепление
● Связность
● Полнота
● Достаточность
● Примитивность
Качество классов и объектов, Гради Буч