архитектура крупных word press сайтов

Post on 26-Jun-2015

126 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Архитектура крупных WordPress сайтов

Евгений КотельницкийХарьков 2014

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

+YevhenKotelnytskyi

@yeeevhenhttp://4coder.info/me

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

2. Сложность построения больших WP-сайтов

3. Пишем на одном языке

4. Обработка исключений и оповещения об ошибках

5. Модули и архитектура

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

b. Модули

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

d. HTML-верстка

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

Наши целиЧто мы хотим от проекта?

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

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

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

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

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

Сложность построения больших WP-сайтов

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

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

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

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

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

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

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

Сложность построения больших WP-сайтов

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

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

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

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

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

Сложность построения больших WP-сайтов

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

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

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

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

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

Стандарты кодирования● PHP Coding Standards

● HTML Coding Standards

● CSS Coding Standards

● JavaScript Coding Standards

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

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

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

● “wp_mail” вместо PHPMailer

● “dbDelta” вместо “SQL Create”

Отладка и оповещение об ошибкахОбработка исключений

Отладка и оповещение об ошибкахОповещения об ошибках

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

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

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

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

● Зацепление

● Связность

● Полнота

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

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

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

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

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

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

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

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

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

Проблемы

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

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

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

Решение

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

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

HTML-верстка

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

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

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

Статические компонентыУ каждого модуля свои

Вопросы?

Спасибо!

top related