Download - OOP и WordPress. Подумаем о будущем проекта
![Page 1: OOP и WordPress. Подумаем о будущем проекта](https://reader030.vdocuments.us/reader030/viewer/2022020213/58808ee01a28ab35718b7353/html5/thumbnails/1.jpg)
OOP и WordPressПодумаем о будущем проекта
Евгений КотельницкийWordCamp Kyiv, 2016
![Page 3: OOP и WordPress. Подумаем о будущем проекта](https://reader030.vdocuments.us/reader030/viewer/2022020213/58808ee01a28ab35718b7353/html5/thumbnails/3.jpg)
![Page 4: OOP и WordPress. Подумаем о будущем проекта](https://reader030.vdocuments.us/reader030/viewer/2022020213/58808ee01a28ab35718b7353/html5/thumbnails/4.jpg)
● Хотим простоты поддержки
○ низкий порог вхождения;
○ низкая цена изменений;
○ минимум ошибок и сбоев;
● Отсутствие проблем с быстродействием
● Отсутствие уязвимостей
● Хотим повторно использовать код
Наши цели
![Page 5: OOP и WordPress. Подумаем о будущем проекта](https://reader030.vdocuments.us/reader030/viewer/2022020213/58808ee01a28ab35718b7353/html5/thumbnails/5.jpg)
VS
![Page 6: OOP и WordPress. Подумаем о будущем проекта](https://reader030.vdocuments.us/reader030/viewer/2022020213/58808ee01a28ab35718b7353/html5/thumbnails/6.jpg)
Зачем ООП?
![Page 7: OOP и WordPress. Подумаем о будущем проекта](https://reader030.vdocuments.us/reader030/viewer/2022020213/58808ee01a28ab35718b7353/html5/thumbnails/7.jpg)
![Page 8: OOP и WordPress. Подумаем о будущем проекта](https://reader030.vdocuments.us/reader030/viewer/2022020213/58808ee01a28ab35718b7353/html5/thumbnails/8.jpg)
● Как исправить ошибку?
● Где реализован этот блок?
● Зачем тут это?
● Я же не трогал этот модуль?
● Как я перенесу “часть изменений”?
● Как взять часть кода из другого проекта?
● *** ?
●
???
![Page 9: OOP и WordPress. Подумаем о будущем проекта](https://reader030.vdocuments.us/reader030/viewer/2022020213/58808ee01a28ab35718b7353/html5/thumbnails/9.jpg)
Что такое ООП?
![Page 10: OOP и WordPress. Подумаем о будущем проекта](https://reader030.vdocuments.us/reader030/viewer/2022020213/58808ee01a28ab35718b7353/html5/thumbnails/10.jpg)
Осторожно, очевидные вещи
![Page 11: OOP и WordPress. Подумаем о будущем проекта](https://reader030.vdocuments.us/reader030/viewer/2022020213/58808ee01a28ab35718b7353/html5/thumbnails/11.jpg)
Инкапсуляция
![Page 12: OOP и WordPress. Подумаем о будущем проекта](https://reader030.vdocuments.us/reader030/viewer/2022020213/58808ee01a28ab35718b7353/html5/thumbnails/12.jpg)
Ƚɪɚɞɢ�Ȼɭɱ�«Объектно-ориентированный анализ и проектирование»
![Page 13: OOP и WordPress. Подумаем о будущем проекта](https://reader030.vdocuments.us/reader030/viewer/2022020213/58808ee01a28ab35718b7353/html5/thumbnails/13.jpg)
Полиморфизм
![Page 14: OOP и WordPress. Подумаем о будущем проекта](https://reader030.vdocuments.us/reader030/viewer/2022020213/58808ee01a28ab35718b7353/html5/thumbnails/14.jpg)
![Page 15: OOP и WordPress. Подумаем о будущем проекта](https://reader030.vdocuments.us/reader030/viewer/2022020213/58808ee01a28ab35718b7353/html5/thumbnails/15.jpg)
![Page 16: OOP и WordPress. Подумаем о будущем проекта](https://reader030.vdocuments.us/reader030/viewer/2022020213/58808ee01a28ab35718b7353/html5/thumbnails/16.jpg)
Наследование
![Page 17: OOP и WordPress. Подумаем о будущем проекта](https://reader030.vdocuments.us/reader030/viewer/2022020213/58808ee01a28ab35718b7353/html5/thumbnails/17.jpg)
![Page 18: OOP и WordPress. Подумаем о будущем проекта](https://reader030.vdocuments.us/reader030/viewer/2022020213/58808ee01a28ab35718b7353/html5/thumbnails/18.jpg)
● Более дорогие разработчики
● Повышенные затраты (на начальном этапе)
● Сложности оптимизации (запросы к БД в
циклах)
● ...
Немного негатива
![Page 19: OOP и WordPress. Подумаем о будущем проекта](https://reader030.vdocuments.us/reader030/viewer/2022020213/58808ee01a28ab35718b7353/html5/thumbnails/19.jpg)
Нет времени на ООП
![Page 20: OOP и WordPress. Подумаем о будущем проекта](https://reader030.vdocuments.us/reader030/viewer/2022020213/58808ee01a28ab35718b7353/html5/thumbnails/20.jpg)
Нет времени на ООП
![Page 21: OOP и WordPress. Подумаем о будущем проекта](https://reader030.vdocuments.us/reader030/viewer/2022020213/58808ee01a28ab35718b7353/html5/thumbnails/21.jpg)
![Page 23: OOP и WordPress. Подумаем о будущем проекта](https://reader030.vdocuments.us/reader030/viewer/2022020213/58808ee01a28ab35718b7353/html5/thumbnails/23.jpg)
Диаграммы Классов
![Page 24: OOP и WordPress. Подумаем о будущем проекта](https://reader030.vdocuments.us/reader030/viewer/2022020213/58808ee01a28ab35718b7353/html5/thumbnails/24.jpg)
![Page 25: OOP и WordPress. Подумаем о будущем проекта](https://reader030.vdocuments.us/reader030/viewer/2022020213/58808ee01a28ab35718b7353/html5/thumbnails/25.jpg)
Отношения в диаграммах Классов
![Page 26: OOP и WordPress. Подумаем о будущем проекта](https://reader030.vdocuments.us/reader030/viewer/2022020213/58808ee01a28ab35718b7353/html5/thumbnails/26.jpg)
Generalization (наследование)
Implementation (имплементация)
Association (ассоциация)
Aggregation (агрегация)
Composition (композиция)
Dependency (зависимость)
programador.ru/uml-class-diagram-relation/
![Page 27: OOP и WordPress. Подумаем о будущем проекта](https://reader030.vdocuments.us/reader030/viewer/2022020213/58808ee01a28ab35718b7353/html5/thumbnails/27.jpg)
Классы ядра WordPress
![Page 28: OOP и WordPress. Подумаем о будущем проекта](https://reader030.vdocuments.us/reader030/viewer/2022020213/58808ee01a28ab35718b7353/html5/thumbnails/28.jpg)
>G<NN��T�D?B@O�@SO@I?N����D?B@O�£
�¥¥
�¥��@ON�PK�OC@�RD?B@ON�I<H@�@O>
�¥�
KP=GD>�API>ODJI�>JINOMP>O� �£
´RD?B@OJKN�Ó�<MM<T��
®>G<NNI<H@®�ÓÕ�®HTRD?B@O®�
®?@N>MDKODJI®�ÓÕ�®�T��D?B@O�DN�<R@NJH@®�
�
K<M@IO��>JINOMP>O��®HTRD?B@O®��®�T��D?B@O®��´RD?B@OJKN� �
¤
������
¤
Виджеты // Класс виджета
![Page 29: OOP и WordPress. Подумаем о будущем проекта](https://reader030.vdocuments.us/reader030/viewer/2022020213/58808ee01a28ab35718b7353/html5/thumbnails/29.jpg)
<??<>ODJI��®RD?B@ONDIDO®��API>ODJI� £
M@BDNO@MRD?B@O��®�T�D?B@O®� �
¤ �
Виджеты // Регистрация виджета
![Page 30: OOP и WordPress. Подумаем о будущем проекта](https://reader030.vdocuments.us/reader030/viewer/2022020213/58808ee01a28ab35718b7353/html5/thumbnails/30.jpg)
>G<NN��T�GPBDI�£
�¥¥
�¥��@ON�PK�OC@�KGPBDI
�¥�
API>ODJI�DIDO� �£
<??<>ODJI��®RD?B@ONDIDO®��API>ODJI� �£
M@BDNO@MRD?B@O��®�T�D?B@O®� �
¤ �
¤
¤
Виджеты // Регистрация виджета №2
![Page 31: OOP и WordPress. Подумаем о будущем проекта](https://reader030.vdocuments.us/reader030/viewer/2022020213/58808ee01a28ab35718b7353/html5/thumbnails/31.jpg)
>G<NN��T�GPBDI�£
�¥¥
�¥��@ON�PK�OC@�KGPBDI
�¥�
API>ODJI�DIDO� �£
<??<>ODJI��®RD?B@ONDIDO®��<MM<T��´OCDN��®RD?B@ONDIDO® � �
¤
�¥¥
�¥��@ON�PK�RD?B@ON
�¥�
KP=GD>�API>ODJI�RD?B@ONDIDO� �£
M@BDNO@MRD?B@O��®�T�D?B@O®� �
¤
¤
Виджеты // Регистрация виджета №3
![Page 32: OOP и WordPress. Подумаем о будущем проекта](https://reader030.vdocuments.us/reader030/viewer/2022020213/58808ee01a28ab35718b7353/html5/thumbnails/32.jpg)
Правильный плагин
![Page 33: OOP и WordPress. Подумаем о будущем проекта](https://reader030.vdocuments.us/reader030/viewer/2022020213/58808ee01a28ab35718b7353/html5/thumbnails/33.jpg)
Requires: 3.9 or higher
Compatible up to: 4.3.6
Last Updated: 12 months ago
Active Installs: 20,000+
Ratings
5 out of 5 stars
https://github.com/scribu/wp-posts-to-posts
https://wordpress.org/plugins/posts-to-posts/
![Page 34: OOP и WordPress. Подумаем о будущем проекта](https://reader030.vdocuments.us/reader030/viewer/2022020213/58808ee01a28ab35718b7353/html5/thumbnails/34.jpg)
Core Classes
![Page 35: OOP и WordPress. Подумаем о будущем проекта](https://reader030.vdocuments.us/reader030/viewer/2022020213/58808ee01a28ab35718b7353/html5/thumbnails/35.jpg)
![Page 36: OOP и WordPress. Подумаем о будущем проекта](https://reader030.vdocuments.us/reader030/viewer/2022020213/58808ee01a28ab35718b7353/html5/thumbnails/36.jpg)
![Page 37: OOP и WordPress. Подумаем о будущем проекта](https://reader030.vdocuments.us/reader030/viewer/2022020213/58808ee01a28ab35718b7353/html5/thumbnails/37.jpg)
Admin Classes
![Page 38: OOP и WordPress. Подумаем о будущем проекта](https://reader030.vdocuments.us/reader030/viewer/2022020213/58808ee01a28ab35718b7353/html5/thumbnails/38.jpg)
![Page 39: OOP и WordPress. Подумаем о будущем проекта](https://reader030.vdocuments.us/reader030/viewer/2022020213/58808ee01a28ab35718b7353/html5/thumbnails/39.jpg)
![Page 40: OOP и WordPress. Подумаем о будущем проекта](https://reader030.vdocuments.us/reader030/viewer/2022020213/58808ee01a28ab35718b7353/html5/thumbnails/40.jpg)
Ещё примеры
![Page 41: OOP и WordPress. Подумаем о будущем проекта](https://reader030.vdocuments.us/reader030/viewer/2022020213/58808ee01a28ab35718b7353/html5/thumbnails/41.jpg)
CRON
![Page 42: OOP и WordPress. Подумаем о будущем проекта](https://reader030.vdocuments.us/reader030/viewer/2022020213/58808ee01a28ab35718b7353/html5/thumbnails/42.jpg)
![Page 43: OOP и WordPress. Подумаем о будущем проекта](https://reader030.vdocuments.us/reader030/viewer/2022020213/58808ee01a28ab35718b7353/html5/thumbnails/43.jpg)
DB Abstractions
![Page 44: OOP и WordPress. Подумаем о будущем проекта](https://reader030.vdocuments.us/reader030/viewer/2022020213/58808ee01a28ab35718b7353/html5/thumbnails/44.jpg)
![Page 45: OOP и WordPress. Подумаем о будущем проекта](https://reader030.vdocuments.us/reader030/viewer/2022020213/58808ee01a28ab35718b7353/html5/thumbnails/45.jpg)
Объектно Ориентированная Архитектура
Пойдём немного дальше
![Page 46: OOP и WordPress. Подумаем о будущем проекта](https://reader030.vdocuments.us/reader030/viewer/2022020213/58808ee01a28ab35718b7353/html5/thumbnails/46.jpg)
Осторожно, нудная теория
![Page 47: OOP и WordPress. Подумаем о будущем проекта](https://reader030.vdocuments.us/reader030/viewer/2022020213/58808ee01a28ab35718b7353/html5/thumbnails/47.jpg)
Архитектура ПО - многоуровневая система абстракций.
Качество абстракции
● Зацепление
● Связность
● Полнота
● Достаточность
● Примитивность
Качество классов и объектов, Гради Буч
Качество архитектуры
![Page 48: OOP и WordPress. Подумаем о будущем проекта](https://reader030.vdocuments.us/reader030/viewer/2022020213/58808ee01a28ab35718b7353/html5/thumbnails/48.jpg)
● Квалификация команды
● Мотивация команды
● Сроки и бюджет
Что влияет на качество
● Прозрачность в целях
● Правильно настроенный процесс
![Page 49: OOP и WordPress. Подумаем о будущем проекта](https://reader030.vdocuments.us/reader030/viewer/2022020213/58808ee01a28ab35718b7353/html5/thumbnails/49.jpg)
Вопросы?
![Page 50: OOP и WordPress. Подумаем о будущем проекта](https://reader030.vdocuments.us/reader030/viewer/2022020213/58808ee01a28ab35718b7353/html5/thumbnails/50.jpg)
Спасибо!