SlideShare a Scribd company logo
1 of 19
Download to read offline
Архитектура крупных
WordPress сайтов
Евгений Котельницкий
Харьков 2014
( wpkharkiv.wordpress.com ) ( thinkphp.com.ua )
Евгений Котельницкий
+YevhenKotelnytskyi
@yeeevhen
http://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
● У каждого модуля свои шаблоны
Статические компоненты
У каждого модуля свои
Вопросы?
Спасибо!

More Related Content

What's hot

bem-components — от методологии до full stack платформы
bem-components — от методологии до full stack платформыbem-components — от методологии до full stack платформы
bem-components — от методологии до full stack платформы
Yandex
 
конструкторы Web cайтов
конструкторы Web cайтовконструкторы Web cайтов
конструкторы Web cайтов
Alterock
 
Представление о веб конструировании
Представление о веб конструированииПредставление о веб конструировании
Представление о веб конструировании
Natalia Kapustsina
 

What's hot (19)

Краткая презентация курса HTML5 и CSS3: От новичка до профи
Краткая презентация курса HTML5 и CSS3: От новичка до профиКраткая презентация курса HTML5 и CSS3: От новичка до профи
Краткая презентация курса HTML5 и CSS3: От новичка до профи
 
Антон Виноградов, Альфа-Банк — Инструменты БЭМ-разработчика
Антон Виноградов, Альфа-Банк — Инструменты БЭМ-разработчикаАнтон Виноградов, Альфа-Банк — Инструменты БЭМ-разработчика
Антон Виноградов, Альфа-Банк — Инструменты БЭМ-разработчика
 
bem-components — от методологии до full stack платформы
bem-components — от методологии до full stack платформыbem-components — от методологии до full stack платформы
bem-components — от методологии до full stack платформы
 
2017-03-26 02 Егор Непомнящих. Что такое web front end, и с чем его едят
2017-03-26 02 Егор Непомнящих. Что такое web front end, и с чем его едят2017-03-26 02 Егор Непомнящих. Что такое web front end, и с чем его едят
2017-03-26 02 Егор Непомнящих. Что такое web front end, и с чем его едят
 
слайд хостинг (1)
слайд хостинг (1)слайд хостинг (1)
слайд хостинг (1)
 
конструкторы Web cайтов
конструкторы Web cайтовконструкторы Web cайтов
конструкторы Web cайтов
 
Обеспечение качества интернет-проектов
Обеспечение качества интернет-проектовОбеспечение качества интернет-проектов
Обеспечение качества интернет-проектов
 
Как мы адаптировали более 150 сайтов по технологии Dynamically-served JavaScr...
Как мы адаптировали более 150 сайтов по технологии Dynamically-served JavaScr...Как мы адаптировали более 150 сайтов по технологии Dynamically-served JavaScr...
Как мы адаптировали более 150 сайтов по технологии Dynamically-served JavaScr...
 
Вебинар по БЭМ: верстаем веб-страницу
Вебинар по БЭМ: верстаем веб-страницуВебинар по БЭМ: верстаем веб-страницу
Вебинар по БЭМ: верстаем веб-страницу
 
Как создавать landing page по методологии «Scrum»
Как создавать landing page  по методологии «Scrum»Как создавать landing page  по методологии «Scrum»
Как создавать landing page по методологии «Scrum»
 
Представление о веб конструировании
Представление о веб конструированииПредставление о веб конструировании
Представление о веб конструировании
 
слайд хостинг
слайд хостингслайд хостинг
слайд хостинг
 
Прототипирование с БЭМ — Антон Виноградов, Альфа-Лаб
Прототипирование с БЭМ — Антон Виноградов, Альфа-ЛабПрототипирование с БЭМ — Антон Виноградов, Альфа-Лаб
Прототипирование с БЭМ — Антон Виноградов, Альфа-Лаб
 
training
trainingtraining
training
 
Стажировка-2015. Дизайн. Занятие 3. Проектирование интерфейсов
Стажировка-2015. Дизайн. Занятие 3. Проектирование интерфейсовСтажировка-2015. Дизайн. Занятие 3. Проектирование интерфейсов
Стажировка-2015. Дизайн. Занятие 3. Проектирование интерфейсов
 
Как жить на острие технологий в продакшне и не сойти с ума / Александр Курган...
Как жить на острие технологий в продакшне и не сойти с ума / Александр Курган...Как жить на острие технологий в продакшне и не сойти с ума / Александр Курган...
Как жить на острие технологий в продакшне и не сойти с ума / Александр Курган...
 
Lviv Euro Drupal Camp 2015_Как подружить дизайнеров и Drupal-разработчиков
Lviv Euro Drupal Camp 2015_Как подружить дизайнеров и Drupal-разработчиковLviv Euro Drupal Camp 2015_Как подружить дизайнеров и Drupal-разработчиков
Lviv Euro Drupal Camp 2015_Как подружить дизайнеров и Drupal-разработчиков
 
Преимущества компонентной разработки для тестирования интерфейсов
Преимущества компонентной разработки для тестирования интерфейсовПреимущества компонентной разработки для тестирования интерфейсов
Преимущества компонентной разработки для тестирования интерфейсов
 
Руководство для программистов по устройству на работу в Unigine
Руководство для программистов по устройству на работу в UnigineРуководство для программистов по устройству на работу в Unigine
Руководство для программистов по устройству на работу в Unigine
 

Viewers also liked

Viewers also liked (9)

Оптимальная архитектура масштабируемого плагина WordPress на Custom Post Type...
Оптимальная архитектура масштабируемого плагина WordPress на Custom Post Type...Оптимальная архитектура масштабируемого плагина WordPress на Custom Post Type...
Оптимальная архитектура масштабируемого плагина WordPress на Custom Post Type...
 
Вёрстка WordPress тем - WP Kharkiv Meetup #1
Вёрстка WordPress тем - WP Kharkiv Meetup #1Вёрстка WordPress тем - WP Kharkiv Meetup #1
Вёрстка WordPress тем - WP Kharkiv Meetup #1
 
Как получить чёрный пояс по WordPress? v2.0
Как получить чёрный пояс по WordPress? v2.0Как получить чёрный пояс по WordPress? v2.0
Как получить чёрный пояс по WordPress? v2.0
 
Как получить чёрный пояс по WordPress?
Как получить чёрный пояс по WordPress?Как получить чёрный пояс по WordPress?
Как получить чёрный пояс по WordPress?
 
WordCamp Moscow 2016: Как получить качество
WordCamp Moscow 2016: Как получить качествоWordCamp Moscow 2016: Как получить качество
WordCamp Moscow 2016: Как получить качество
 
Защищаем WordPress-сайт от хакерских атак
Защищаем WordPress-сайт от хакерских атакЗащищаем WordPress-сайт от хакерских атак
Защищаем WordPress-сайт от хакерских атак
 
SEO - поведенческие факторы.
SEO - поведенческие факторы.SEO - поведенческие факторы.
SEO - поведенческие факторы.
 
Premium-темы WordPress
Premium-темы WordPressPremium-темы WordPress
Premium-темы WordPress
 
Вёрстка по методологии БЭМ
Вёрстка по методологии БЭМВёрстка по методологии БЭМ
Вёрстка по методологии БЭМ
 

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

презентация сайтостроение
презентация сайтостроениепрезентация сайтостроение
презентация сайтостроение
Palados
 
составляющие профессионального сайта или перестаньте позорить церковь божью!
составляющие профессионального сайта   или перестаньте позорить церковь божью!составляющие профессионального сайта   или перестаньте позорить церковь божью!
составляющие профессионального сайта или перестаньте позорить церковь божью!
Maksym Balaklytskyi
 
составляющие профессионального сайта или перестаньте позорить церковь божью!
составляющие профессионального сайта   или перестаньте позорить церковь божью!составляющие профессионального сайта   или перестаньте позорить церковь божью!
составляющие профессионального сайта или перестаньте позорить церковь божью!
Maksym Balaklytskyi
 
Олег Бунин (Онтико) | Менеджмент и бизнес-процессы в разработке highload-прое...
Олег Бунин (Онтико) | Менеджмент и бизнес-процессы в разработке highload-прое...Олег Бунин (Онтико) | Менеджмент и бизнес-процессы в разработке highload-прое...
Олег Бунин (Онтико) | Менеджмент и бизнес-процессы в разработке highload-прое...
RIF-Technology
 
создание сайта
создание сайтасоздание сайта
создание сайта
Shura Mudra
 
Когда технологий много - iForum 2013
Когда технологий много - iForum 2013Когда технологий много - iForum 2013
Когда технологий много - iForum 2013
Andrey Listochkin
 
Какой фреймворк нам нужен для Web? Денис Цыплаков
Какой фреймворк нам нужен для Web? Денис ЦыплаковКакой фреймворк нам нужен для Web? Денис Цыплаков
Какой фреймворк нам нужен для Web? Денис Цыплаков
Alex Tumanoff
 
Web matrix
Web matrixWeb matrix
Web matrix
.toster
 

Similar to Архитектура крупных WordPress сайтов (20)

OOP и WordPress. Подумаем о будущем проекта.
OOP и WordPress. Подумаем о будущем проекта.OOP и WordPress. Подумаем о будущем проекта.
OOP и WordPress. Подумаем о будущем проекта.
 
внедрении Wpf в сложных системах
внедрении Wpf в сложных системахвнедрении Wpf в сложных системах
внедрении Wpf в сложных системах
 
Как перейти с двухзвенной архитектуры Desktop приложения на трехзвенную за од...
Как перейти с двухзвенной архитектуры Desktop приложения на трехзвенную за од...Как перейти с двухзвенной архитектуры Desktop приложения на трехзвенную за од...
Как перейти с двухзвенной архитектуры Desktop приложения на трехзвенную за од...
 
презентация сайтостроение
презентация сайтостроениепрезентация сайтостроение
презентация сайтостроение
 
Как быть с большими сайтами на Word press
Как быть с большими сайтами  на Word pressКак быть с большими сайтами  на Word press
Как быть с большими сайтами на Word press
 
Vladimir Unev
Vladimir UnevVladimir Unev
Vladimir Unev
 
Codeception - WTF?
Codeception - WTF?Codeception - WTF?
Codeception - WTF?
 
составляющие профессионального сайта или перестаньте позорить церковь божью!
составляющие профессионального сайта   или перестаньте позорить церковь божью!составляющие профессионального сайта   или перестаньте позорить церковь божью!
составляющие профессионального сайта или перестаньте позорить церковь божью!
 
составляющие профессионального сайта или перестаньте позорить церковь божью!
составляющие профессионального сайта   или перестаньте позорить церковь божью!составляющие профессионального сайта   или перестаньте позорить церковь божью!
составляющие профессионального сайта или перестаньте позорить церковь божью!
 
Олег Бунин (Онтико) | Менеджмент и бизнес-процессы в разработке highload-прое...
Олег Бунин (Онтико) | Менеджмент и бизнес-процессы в разработке highload-прое...Олег Бунин (Онтико) | Менеджмент и бизнес-процессы в разработке highload-прое...
Олег Бунин (Онтико) | Менеджмент и бизнес-процессы в разработке highload-прое...
 
создание сайта
создание сайтасоздание сайта
создание сайта
 
WEB
WEBWEB
WEB
 
Преимущества создания кроссплатформенных приложений с использованием Phone ga...
Преимущества создания кроссплатформенных приложений с использованием Phone ga...Преимущества создания кроссплатформенных приложений с использованием Phone ga...
Преимущества создания кроссплатформенных приложений с использованием Phone ga...
 
Когда технологий много - iForum 2013
Когда технологий много - iForum 2013Когда технологий много - iForum 2013
Когда технологий много - iForum 2013
 
Какой фреймворк нам нужен для Web? Денис Цыплаков
Какой фреймворк нам нужен для Web? Денис ЦыплаковКакой фреймворк нам нужен для Web? Денис Цыплаков
Какой фреймворк нам нужен для Web? Денис Цыплаков
 
Мультиязычные проекты - разработка, продвижение, подводные камни #RIW2015
Мультиязычные проекты - разработка, продвижение, подводные камни #RIW2015Мультиязычные проекты - разработка, продвижение, подводные камни #RIW2015
Мультиязычные проекты - разработка, продвижение, подводные камни #RIW2015
 
BEM на корпоративном веб-ресурсе — отказоустойчивость фронтенда
BEM на корпоративном веб-ресурсе — отказоустойчивость фронтендаBEM на корпоративном веб-ресурсе — отказоустойчивость фронтенда
BEM на корпоративном веб-ресурсе — отказоустойчивость фронтенда
 
BEM for corporate sites — failover frontend
BEM for corporate sites — failover frontendBEM for corporate sites — failover frontend
BEM for corporate sites — failover frontend
 
Highload 2011-demona
Highload 2011-demonaHighload 2011-demona
Highload 2011-demona
 
Web matrix
Web matrixWeb matrix
Web matrix
 

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