2. Стандарты и соглашения в сложных ООП-приложениях Стандарты оформления кода Шаблоны проектирования в архитектуре проекта Построение иерархии моделей для решения задач бизнес-логики Классификация данных на разных уровнях MVC- приложения
4. Зачем нужны стандарты оформления кода Команда говорит на одном языке Важно для больших объемов кода Необходимо для проектов с открытыми исходниками Раскрывает возможности различных IDE
5. Составляющие стандартов кода Файловая структура и именование файлов Именование классов, методов ипеременных Стиль кода Техническая документация к коду
6. Сравнительная характеристика стандартов Zend Framework Изначально под php5 Базовые требования phpdoc (структура пакета, лицензия) Не определяет процесс релизов и проекты Изменений немного PEAR Развивался с php4 Больше требований phpdoc (информация о релизах, авторах) Подразумевает процесс разработки проектов PEAR За последнее время сильно мутировал
7. Принятие стандарта в open-soruce -проекте Всегда: основные положения поформатированию иименованию Иногда: собственная «шапка» илицензия в phpdoc Никогда: личная информация вкомментариях или phpdoc
9. Архитектурный шаблон MVC Классифицирует объекты и базовый алгоритм взаимодействия Определяет роль любого объекта всистеме Вводит ограничения наиспользование данных иуправляющие вызовы
10. Шаблон Registry Назначение: обычно глобальный объект, иногда данные Место в MVC : Controller, View Плюс: легкий доступ отовсюду Минус: связывание кода
11. Шаблон Observer Назначение: подписчик, обработчик событий Место в MVC : в любой части Плюс: возможность соблюдения независимости модулей системы Минус: сложно отлаживать, иногда конфликты с другими подписчиками
12. Шаблон Iterator Назначение: модель с набором данных (коллекция) Место в MVC: Model Плюс: возможность отложенной загрузки данных, инкапсуляция получения элементов
13. Шаблон Adapter Назначение: выравнивание интерфейсов, утилитарная модель Место в MVC: Model Плюс: абстракция ресурсов
14. Шаблон Strategy Назначение: общий интерфейс для разных алгоритмов поведения Место в MVC: Model Плюс: расширяемость вариантов использования одной сущности Минус: связанность объекта контекста и стратегии
16. Иерархический подход кнабору моделей приложения Управляющие модели Модели знаний Модели сущностей Ресурс-модели, адаптеры
17. Критерии для создания иерархии моделей Сложность задачи Необходимость реализации различных вариантов использования Требования к расширяемости приложения
21. Обмен данными между архитектурными слоями MVC Представьте себе потоки данных Попробуйте их классифицировать Откуда данные берутся? Где и как их нужно хранить?
22. Обмен данными между моделями Опять: публичный и приватный интерфейс Константы Хранение, распространение, продажа...
24. Классификация данных вмоделях Управляющие данные: сопутствующие объекты «флажки» справочная информация/константы Данные: САБЖ
25. Классификация данных во View Управляющие данные: те же сопутствующие объекты те же флажки Данные: все что надо сугубо шаблону в том числе, результаты промежуточных подсчетов
28. Контроллер и модель Checkout Контроллер startAction() returnAction() cancelAction() reviewAction() editAction() saveShippingMethodAction() placeOrderAction() _initToken($setToken = null) Модель start($returnUrl, $cancelUrl) returnFromPaypal($token) prepareOrderReview($token = null) updateShippingMethod($methodCode) placeOrder($token, $shippingMethodCode = null)
29. Модели Pro и Config Модель Website Payments Pro: общая бизнес-логика вызовов платежной системы Config: справочная информация оконстантах и зависимостях
30. Модель платежного метода Создание вызовов платежной системы Передача информации по транзакции в объект платежа
31. Модель API Адаптер непосредственных вызовов шлюза платежной системы Обслуживает всю группу платежных методов Website Payments Pro