Оцените презентацию от 1 до 5 баллов!
Тип файла:
ppt / pptx (powerpoint)
Всего слайдов:
54 слайда
Для класса:
1,2,3,4,5,6,7,8,9,10,11
Размер файла:
7.89 MB
Просмотров:
66
Скачиваний:
0
Автор:
неизвестен
Слайды и текст к этой презентации:
№1 слайд![Аспектно Ориентированное](/documents_6/d682591b2f14d021f8fc268f07e2b359/img0.jpg)
Содержание слайда: Аспектно Ориентированное Программирование в PHP
Щеваев “pachanga” Павел (pacha.shevaev@gmail.com)
BIT, г.Пенза
№2 слайд![](/documents_6/d682591b2f14d021f8fc268f07e2b359/img1.jpg)
№3 слайд![Как жаль, что мы не живем в](/documents_6/d682591b2f14d021f8fc268f07e2b359/img2.jpg)
Содержание слайда: Как жаль, что мы не живем в идеальном мире!
№4 слайд![](/documents_6/d682591b2f14d021f8fc268f07e2b359/img3.jpg)
№5 слайд![](/documents_6/d682591b2f14d021f8fc268f07e2b359/img4.jpg)
№6 слайд![](/documents_6/d682591b2f14d021f8fc268f07e2b359/img5.jpg)
№7 слайд![Что является помехой?](/documents_6/d682591b2f14d021f8fc268f07e2b359/img6.jpg)
Содержание слайда: Что является помехой?
№8 слайд![](/documents_6/d682591b2f14d021f8fc268f07e2b359/img7.jpg)
№9 слайд![Лоскутное одеяло сквозного](/documents_6/d682591b2f14d021f8fc268f07e2b359/img8.jpg)
Содержание слайда: Лоскутное одеяло сквозного функционала
№10 слайд![](/documents_6/d682591b2f14d021f8fc268f07e2b359/img9.jpg)
№11 слайд![](/documents_6/d682591b2f14d021f8fc268f07e2b359/img10.jpg)
№12 слайд![](/documents_6/d682591b2f14d021f8fc268f07e2b359/img11.jpg)
№13 слайд![](/documents_6/d682591b2f14d021f8fc268f07e2b359/img12.jpg)
№14 слайд![](/documents_6/d682591b2f14d021f8fc268f07e2b359/img13.jpg)
№15 слайд![](/documents_6/d682591b2f14d021f8fc268f07e2b359/img14.jpg)
№16 слайд![Непонятно? Немного теории](/documents_6/d682591b2f14d021f8fc268f07e2b359/img15.jpg)
Содержание слайда: Непонятно? Немного теории
(совсем чуть-чуть, честно!)
№17 слайд![Введение в АОП Gregor](/documents_6/d682591b2f14d021f8fc268f07e2b359/img16.jpg)
Содержание слайда: Введение в АОП
Gregor Kiczales +
команда XEROX PARC +
желание облегчить нам
жизнь = AspectJ
AspectJ(http://aspectj.org) –
“lingua franca” в мире АОП
№18 слайд![Базовые понятия JoinPoint](/documents_6/d682591b2f14d021f8fc268f07e2b359/img17.jpg)
Содержание слайда: Базовые понятия
JoinPoint
PointCut
Advice
Introduction
Aspect
Weaving
№19 слайд![JoinPoint JoinPoint -](/documents_6/d682591b2f14d021f8fc268f07e2b359/img18.jpg)
Содержание слайда: JoinPoint
JoinPoint - фундаментальное понятие АОП, под которым понимают любую четко идентифицируемую точку исполнения программы
JoinPoint точки являются кандидатами возможной инъекции сквозного функционала
№20 слайд![JoinPoint Возможные JoinPoint](/documents_6/d682591b2f14d021f8fc268f07e2b359/img19.jpg)
Содержание слайда: JoinPoint
Возможные JoinPoint точки в примере:
выполнение метода credit()
доступ к атрибуту balance
№21 слайд![PointCut PointCut набор срез](/documents_6/d682591b2f14d021f8fc268f07e2b359/img20.jpg)
Содержание слайда: PointCut
PointCut – набор(срез) JoinPoint точек, удовлетворяющих определенному условию.
PointCut бывают именованные и анонимные.
PointCut – это некое подобие SQL запроса для JoinPoint точек
Пример анонимного среза, захватывающего исполнение метода Account :: credit()
№22 слайд![Advice Advice - код,](/documents_6/d682591b2f14d021f8fc268f07e2b359/img21.jpg)
Содержание слайда: Advice
Advice - код, выполняемый для каждой JoinPoint точки, входящей в определённый срез PointCut.
Advice может выполняться до (before), после (after) или вместо (around) JoinPoint точки.
Advice схож с традиционным ООП методом
№23 слайд![Advice Пример Advice метода](/documents_6/d682591b2f14d021f8fc268f07e2b359/img22.jpg)
Содержание слайда: Advice
Пример Advice метода для анонимного PointCut среза
№24 слайд![Introduction Introduction](/documents_6/d682591b2f14d021f8fc268f07e2b359/img23.jpg)
Содержание слайда: Introduction
Introduction – инструкция для изменения статической структуры классов, интерфейсов и аспектов.
Попробуем добавить метод setLog() во все классы, которые начинаются со строки “Foo”
№25 слайд![Aspect Aspect - модуль в](/documents_6/d682591b2f14d021f8fc268f07e2b359/img24.jpg)
Содержание слайда: Aspect
Aspect - модуль в терминах АОП, некоторый аналог класса, который инкапсулирует в себе правила применения сквозного функционала.
Aspect - конечный контейнер для всех АОП элементов: PointCut, Advice и Introduction.
Aspect схож с ООП классом
(также позволяет объявлять и использовать
обычные методы и атрибуты)
№26 слайд![Aspect Пример аспекта](/documents_6/d682591b2f14d021f8fc268f07e2b359/img25.jpg)
Содержание слайда: Aspect
Пример аспекта(объединяем все вместе)
№27 слайд![Weaving Weaving процесс](/documents_6/d682591b2f14d021f8fc268f07e2b359/img26.jpg)
Содержание слайда: Weaving
Weaving – процесс «вплетения» аспектов в логику приложения.
Weaving процесс может происходить на уровне исходных кодов или же на уровне виртуальной машины (в случае PHP, это уровень исполнения opcode инструкций).
№28 слайд![АОП - вид сверху или сбоку?](/documents_6/d682591b2f14d021f8fc268f07e2b359/img27.jpg)
Содержание слайда: АОП - вид сверху(или сбоку?)
№29 слайд![Фух...с теорией покончено](/documents_6/d682591b2f14d021f8fc268f07e2b359/img28.jpg)
Содержание слайда: Фух...с теорией покончено
№30 слайд![Средства АОП для PHP](/documents_6/d682591b2f14d021f8fc268f07e2b359/img29.jpg)
Содержание слайда: Средства АОП для PHP
phpAspect – юная, но наиболее перспективная реализация АОП для PHP
Интересная попытка клонировать AspectJ
Аспекты вплетаются статически в код
Автор Willliam Candillon
aoPHP – некое подобие АОП
Аспекты вплетаются «на лету»
Замороченный способ использования: Apache -> mod_rewrite -> aoPHP C++ интерпретатор -> PHP …бр-р-р)
aspectPHP – форк aoPHP
Не обновлялась с 2005 г
Работает только с PHP-4.3.10
AOP Library for PHP – спорная эмуляция АОП средствами PHP,
Автор некто Dmitry Sheiko
runkit – PECL модуль, предоставляющий AOP Introduction возможности
Переопределение констант, функций, методов, классов, интерфейсов
Эх, жаль, что не в core
Автор Sara Golemon
№31 слайд![Установка Установка](/documents_6/d682591b2f14d021f8fc268f07e2b359/img30.jpg)
Содержание слайда: Установка:
Установка:
№32 слайд![Принцип действия Принцип](/documents_6/d682591b2f14d021f8fc268f07e2b359/img31.jpg)
Содержание слайда: Принцип действия:
Принцип действия:
№33 слайд![Базовое использование Базовое](/documents_6/d682591b2f14d021f8fc268f07e2b359/img32.jpg)
Содержание слайда: Базовое использование:
Базовое использование:
№34 слайд![АОП поддержка АОП поддержка](/documents_6/d682591b2f14d021f8fc268f07e2b359/img33.jpg)
Содержание слайда: АОП поддержка:
АОП поддержка:
PointCut
Advice
Introduction
Aspect
№35 слайд![HelloWorld ну куда же без](/documents_6/d682591b2f14d021f8fc268f07e2b359/img34.jpg)
Содержание слайда: “HelloWorld”
(ну куда же без него)
src/hello.php
№36 слайд![Пример аспекта src](/documents_6/d682591b2f14d021f8fc268f07e2b359/img35.jpg)
Содержание слайда: Пример аспекта
src/trace.aspect.php
№37 слайд![В действии Вплетение аспектов](/documents_6/d682591b2f14d021f8fc268f07e2b359/img36.jpg)
Содержание слайда: В действии
Вплетение аспектов
№38 слайд![За кулисами bin hello.php](/documents_6/d682591b2f14d021f8fc268f07e2b359/img37.jpg)
Содержание слайда: «За кулисами»
bin/hello.php
№39 слайд![](/documents_6/d682591b2f14d021f8fc268f07e2b359/img38.jpg)
№40 слайд![Yikes!](/documents_6/d682591b2f14d021f8fc268f07e2b359/img39.jpg)
Содержание слайда: Yikes!
№41 слайд![Достоинства Достоинства Это](/documents_6/d682591b2f14d021f8fc268f07e2b359/img40.jpg)
Содержание слайда: Достоинства
Достоинства
“Это” сделали для PHP!
Наиболее схожая с AspectJ функциональность
№42 слайд![Недостатки Недостатки На](/documents_6/d682591b2f14d021f8fc268f07e2b359/img41.jpg)
Содержание слайда: Недостатки
Недостатки
На данный момент не подходит для production – некоторые аспекты вплетаются с ошибками
(хотя чего мы хотим от версии 0.1.1?)
Функционально неполная реализация АОП (работа с аннотациями, расстановка приоритетов применения аспектов, наследование аспектов и проч.)
Генерируемый код накладывает негативный отпечаток на скорость работы
Не используется уровень виртуальной машины
№43 слайд![АОП еще одна серебряная пуля](/documents_6/d682591b2f14d021f8fc268f07e2b359/img42.jpg)
Содержание слайда: АОП – еще одна «серебряная пуля»?
Конечно же нет, такой «пули не существует»
Естественно есть ярые фанаты и отчаянные противники АОП
АОП, в самом деле, позволяет посмотреть на проблему сквозного функционала на качественно ином уровне
В то же время АОП местами нетривиальная и непрозрачная методология
Как всегда, истина где-то посередине
№44 слайд![АОП - достоинства Эффективно](/documents_6/d682591b2f14d021f8fc268f07e2b359/img43.jpg)
Содержание слайда: АОП - достоинства
Эффективно адресует проблему сквозного функционала
Облегчает повторное использование кода - слабо связанные между собой аспекты легко взаимозаменять
Позволяет отложить принятие спорного решения, касающегося работы всего приложения, на «потом»
№45 слайд![АОП - недостатки](/documents_6/d682591b2f14d021f8fc268f07e2b359/img44.jpg)
Содержание слайда: АОП - недостатки
Неочевидность происходящего (слишком много “магии”).
Аспекты сложно (невозможно?) протестировать отдельно от сплетенного кода.
Требуются отличные от ООП паттерны проектирования аспектов
№46 слайд![А оно вообще надо? - решать](/documents_6/d682591b2f14d021f8fc268f07e2b359/img45.jpg)
Содержание слайда: «А оно вообще надо?» - решать исключительно вам :-)
№47 слайд![Ссылки по теме AspectJ http](/documents_6/d682591b2f14d021f8fc268f07e2b359/img46.jpg)
Содержание слайда: Ссылки по теме
AspectJ – http://aspectj.org
http://aspectmentor.com
phpAspect – http://phpaspect.org
aoPHP - http://www.aophp.net
aspectPHP - http://www.cs.toronto.edu/~yijun/aspectPHP
AOP Library for PHP - http://www.phpclasses.org/browse/package/2633.html
PECL runkit – http://pecl.php.net/runkit
№48 слайд![Вопросы?](/documents_6/d682591b2f14d021f8fc268f07e2b359/img47.jpg)
Содержание слайда: Вопросы?
№49 слайд![](/documents_6/d682591b2f14d021f8fc268f07e2b359/img48.jpg)
№50 слайд![](/documents_6/d682591b2f14d021f8fc268f07e2b359/img49.jpg)
№51 слайд![](/documents_6/d682591b2f14d021f8fc268f07e2b359/img50.jpg)
№52 слайд![](/documents_6/d682591b2f14d021f8fc268f07e2b359/img51.jpg)
№53 слайд![](/documents_6/d682591b2f14d021f8fc268f07e2b359/img52.jpg)
№54 слайд![Приходи к нам работать! Новое](/documents_6/d682591b2f14d021f8fc268f07e2b359/img53.jpg)
Содержание слайда: Приходи к нам работать!
Новое направление компании БИТ – MMO игры:
Высоконагруженные серверные приложения (Linux, C++)
Artificial Intelligence
Adobe Shockwave 3D
Но нам нужны и талантливые web разработчики:
OOP
PHP(Limb3)
MySQL
Ajax
etc..
contacts@bit-creative.com