SlideShare a Scribd company logo
Деплоймент и распространение обновлений для веб-приложений Евгений Ивашин, разработчик Magento Core
Деплоймент и распространение обновлений для веб-приложений Основные тезисы Существующие практики создания инсталляторов для веб-приложений. Способы обновления веб-приложений, организация каналов обновлений. Объектно-ориентированный подход и модульность организации программного кода и параметров настройки веб-приложения. Установка или обновление отдельных модулей веб-приложения с сохранением целостности кода в целом.
Введение Быть программистом PHP означает разрабатывать веб-приложения.  У всех веб-приложений есть общие черты
Введение У всех веб-приложений есть общие черты: ... они созданы, чтобы выполняться на веб-сервере и быть доступными через Internet
Введение У всех веб-приложений есть общие черты: ... средой выполнения на них накладываются ограничения
Введение У всех веб-приложений есть общие черты: ... они многофункциональны и содержат большое количество исходного кода
Введение У всех веб-приложений есть общие черты: ... они всегда содержат ошибки, всегда требуется доработка и выпуск новых версий
Введение У всех веб-приложений есть общие черты: ... большинство из них работают с данными, структура которых изменяется с новыми версиями
Введение Сегодня мы рассмотрим моменты, возникающие при установке и обновлении веб-приложений, написанных на PHP. Мы остановимся на следующих вопросах: ,[object Object]
Проблемы обновления веб-приложений
Объектно-ориентированный подход и модульная организация программного кода,[object Object]
«Какая инсталляция?..» Инсталляция веб-приложений Вариант 1 Разработка под конкретную платформу,  «на коленке». Преимущества: При обеспечении идеальных условий разработка происходит быстрее, чем обычно Недостатки: Идеальные условия не наступают практически никогда!
Инсталляция веб-приложений Скачал, развернул и настроил Вариант 2 Преимущества: Настройки отделены от кода Может выполняться непрофессионалом Недостатки: Сложность в обновлении и поддержке больших проектов Код нельзя обновлять частями
Инсталляция веб-приложений Объектно-ориентированный подход Вариант 3 Преимущества: Широкие возможности по расширению приложения Отделение кода от визуального представления Модульный подход Недостатки: Сложность архитектуры Тяжеловесность кода
Проблема обновления веб-приложений
Проблема обновления веб-приложений Случай 1 Тяжелый случай Возникает при попытке обновить приложение, разработанное «на коленке» Ни о каком обновлении речи быть не может Любые изменения требуют разработки заново либо переписывания большей части кода
Проблема обновления веб-приложений Полная замена кода Случай 2 Код не структурирован Обновление представляет собой полную переустановку новой версии с сохранением настроек При изменении структуры данных upgrade БД выполняется вручную, предварительно выполняется backup
Проблема обновления веб-приложений Модульный подход Случай 3 Объектно-ориентированный подход Код разбит на модули Каждый модуль может быть обновлен независимо Модуль «знает» от каких модулей он зависит и какие модули зависят от него После обновления выполняется upgrade структуры БД без потери данных
Проблема обновления веб-приложений Модульный подход Случай 3 Пакет обновления Модуль A’ Модуль A’ Модуль A Конфигурациямодуля A’ Конфигурация модуля A’ Конфигурация модуля A зависимости Модуль B Модуль C Модуль D
Проблема обновления веб-приложений Модульный подход Случай 3 Пакет обновления Модуль A’ Модуль A Модуль A’ Конфигурациямодуля A’ Конфигурация модуля A зависимости Конфигурация модуля A’ Модуль B Модуль C Модуль D
Проблема обновления веб-приложений Модульный подход Случай 3 ,[object Object]
Конфигурация содержит исчерпывающие данные о взаимодействии данного модуля с другими модулями и системой в целом.
Конфигурация определяет зависимости данного модуля от остальных установленных модулей, проверяя допустимость и последовательность установки.Пакет обновления Модуль A’ Модуль A Модуль A’ Конфигурациямодуля A’ Конфигурация модуля A зависимости Конфигурация модуля A’ Модуль B Модуль C Модуль D
Проблема обновления веб-приложений Модульный подход Случай 3 Пакет обновления Модуль A’ Модуль A’ Модуль A DB upgrade модуля A’ DB upgrade модуля A’ База данных
Проблема обновления веб-приложений Модульный подход Случай 3 Пакет обновления Модуль A’ Модуль A Модуль A’ DB upgrade модуля A’ База данных
Проблема обновления веб-приложений Модульный подход Случай 3 ,[object Object]
Изменение структуры БД привязано к версии модуля; при обновлении с одной версии на другую последовательно выполняются все изменения для каждой из версий.
Разработчик должен следить за тем, чтобы изменения структуры не нарушали целостность данных в целом.Пакет обновления Модуль A’ Модуль A Модуль A’ DB upgrade модуля A’ База данных
Проблема обновления веб-приложений Модульный подход Случай 3 Что происходит с конфигурационными данными в процессе инсталляции? ,[object Object],Конфигурация модуля A Конфигурация модуля A Конфигурация модуля A Конфигурация модуля A Конфигурация модуля A Конфигурация модуля A Конфигурация модуля A Конфигурация модуля A Конфигурация модуля A Конфигурация модуля A Конфигурация модуля A
Проблема обновления веб-приложений Модульный подход Случай 3 Что происходит с конфигурационными данными в процессе инсталляции? ,[object Object],Конфигурация Magento ,[object Object],[object Object]
Полученная структура кешируется в виде, удобном для быстрого доступа из любого места кода Magento,[object Object]
Проблема обновления веб-приложений Каналы обновления Случай 4
Объектно-ориентированный подход и модульная организация кода
Объектно-ориентированный подход и модульная организация кода ЧЕМ ХОРОША АРХИТЕКТУРА MVC?
ЧЕМ ХОРОША АРХИТЕКТУРА MVC? Поощряет разработчика к разделению программного кода и интерфейсной части приложения, что позволяет: ,[object Object]

More Related Content

Viewers also liked

Flexibility vs Conformity - lessons learned in Open Source
Flexibility vs Conformity - lessons learned in Open SourceFlexibility vs Conformity - lessons learned in Open Source
Flexibility vs Conformity - lessons learned in Open Source
Magecom Ukraine
 
10 000 вёдер или в погоне за Ключом от всех дверей
10 000 вёдер или в погоне за Ключом от всех дверей10 000 вёдер или в погоне за Ключом от всех дверей
10 000 вёдер или в погоне за Ключом от всех дверейMagecom Ukraine
 
Стандарты и соглашения в сложных ООП-приложениях
Стандарты и соглашения в сложных ООП-приложенияхСтандарты и соглашения в сложных ООП-приложениях
Стандарты и соглашения в сложных ООП-приложениях
Magecom Ukraine
 
Современные платформы (фреймворки) разработки веб- приложений на PHP
Современные платформы (фреймворки) разработки веб- приложений на PHP Современные платформы (фреймворки) разработки веб- приложений на PHP
Современные платформы (фреймворки) разработки веб- приложений на PHP
Magecom Ukraine
 
Тестирование Magento с использованием Selenium
Тестирование Magento с использованием SeleniumТестирование Magento с использованием Selenium
Тестирование Magento с использованием Selenium
Magecom Ukraine
 
Расширение функциональности модульного MVC приложения
Расширение функциональности модульного MVC приложенияРасширение функциональности модульного MVC приложения
Расширение функциональности модульного MVC приложения
Magecom Ukraine
 
Extension Marketplace. Площадки для распространения ПО
Extension Marketplace. Площадки для распространения ПОExtension Marketplace. Площадки для распространения ПО
Extension Marketplace. Площадки для распространения ПО
Magecom Ukraine
 
Архитектура веб-приложений на примере Zend Framework и Magento
Архитектура веб-приложений  на примере Zend Framework и MagentoАрхитектура веб-приложений  на примере Zend Framework и Magento
Архитектура веб-приложений на примере Zend Framework и Magento
Magecom Ukraine
 
Применение компонент-ориентированной архитектуры для написания Magento Extens...
Применение компонент-ориентированной архитектуры для написания Magento Extens...Применение компонент-ориентированной архитектуры для написания Magento Extens...
Применение компонент-ориентированной архитектуры для написания Magento Extens...Magecom Ukraine
 
Все дороги ведут в Checkout
Все дороги ведут в CheckoutВсе дороги ведут в Checkout
Все дороги ведут в CheckoutMagecom Ukraine
 
Преимущества использования полнотекстового поиска в интернет-магазинах
Преимущества использования полнотекстового поиска в интернет-магазинахПреимущества использования полнотекстового поиска в интернет-магазинах
Преимущества использования полнотекстового поиска в интернет-магазинахMagecom Ukraine
 
Мобильные клиенты интернет-магазинов
Мобильные клиенты интернет-магазиновМобильные клиенты интернет-магазинов
Мобильные клиенты интернет-магазиновMagecom Ukraine
 
1000 миллисекунд из жизни Magento
1000 миллисекунд из жизни Magento1000 миллисекунд из жизни Magento
1000 миллисекунд из жизни MagentoMagecom Ukraine
 
Управление продуктом в стиле Magento Unified Process
Управление продуктом в стиле Magento Unified ProcessУправление продуктом в стиле Magento Unified Process
Управление продуктом в стиле Magento Unified Process
Magecom Ukraine
 
Индексирование в Magento
Индексирование в MagentoИндексирование в Magento
Индексирование в MagentoMagecom Ukraine
 
Ключ успеха – процесс или продукт?
Ключ успеха – процесс или продукт?Ключ успеха – процесс или продукт?
Ключ успеха – процесс или продукт?Magecom Ukraine
 
Реализация шаблонов корпоративных приложений в Magento
Реализация шаблонов корпоративных приложений в MagentoРеализация шаблонов корпоративных приложений в Magento
Реализация шаблонов корпоративных приложений в MagentoMagecom Ukraine
 
Применение TDD при разработке веб-сервисов
Применение TDD при разработке веб-сервисовПрименение TDD при разработке веб-сервисов
Применение TDD при разработке веб-сервисовMagecom Ukraine
 
Система рендеринга в Magento
Система рендеринга в MagentoСистема рендеринга в Magento
Система рендеринга в Magento
Magecom Ukraine
 

Viewers also liked (19)

Flexibility vs Conformity - lessons learned in Open Source
Flexibility vs Conformity - lessons learned in Open SourceFlexibility vs Conformity - lessons learned in Open Source
Flexibility vs Conformity - lessons learned in Open Source
 
10 000 вёдер или в погоне за Ключом от всех дверей
10 000 вёдер или в погоне за Ключом от всех дверей10 000 вёдер или в погоне за Ключом от всех дверей
10 000 вёдер или в погоне за Ключом от всех дверей
 
Стандарты и соглашения в сложных ООП-приложениях
Стандарты и соглашения в сложных ООП-приложенияхСтандарты и соглашения в сложных ООП-приложениях
Стандарты и соглашения в сложных ООП-приложениях
 
Современные платформы (фреймворки) разработки веб- приложений на PHP
Современные платформы (фреймворки) разработки веб- приложений на PHP Современные платформы (фреймворки) разработки веб- приложений на PHP
Современные платформы (фреймворки) разработки веб- приложений на PHP
 
Тестирование Magento с использованием Selenium
Тестирование Magento с использованием SeleniumТестирование Magento с использованием Selenium
Тестирование Magento с использованием Selenium
 
Расширение функциональности модульного MVC приложения
Расширение функциональности модульного MVC приложенияРасширение функциональности модульного MVC приложения
Расширение функциональности модульного MVC приложения
 
Extension Marketplace. Площадки для распространения ПО
Extension Marketplace. Площадки для распространения ПОExtension Marketplace. Площадки для распространения ПО
Extension Marketplace. Площадки для распространения ПО
 
Архитектура веб-приложений на примере Zend Framework и Magento
Архитектура веб-приложений  на примере Zend Framework и MagentoАрхитектура веб-приложений  на примере Zend Framework и Magento
Архитектура веб-приложений на примере Zend Framework и Magento
 
Применение компонент-ориентированной архитектуры для написания Magento Extens...
Применение компонент-ориентированной архитектуры для написания Magento Extens...Применение компонент-ориентированной архитектуры для написания Magento Extens...
Применение компонент-ориентированной архитектуры для написания Magento Extens...
 
Все дороги ведут в Checkout
Все дороги ведут в CheckoutВсе дороги ведут в Checkout
Все дороги ведут в Checkout
 
Преимущества использования полнотекстового поиска в интернет-магазинах
Преимущества использования полнотекстового поиска в интернет-магазинахПреимущества использования полнотекстового поиска в интернет-магазинах
Преимущества использования полнотекстового поиска в интернет-магазинах
 
Мобильные клиенты интернет-магазинов
Мобильные клиенты интернет-магазиновМобильные клиенты интернет-магазинов
Мобильные клиенты интернет-магазинов
 
1000 миллисекунд из жизни Magento
1000 миллисекунд из жизни Magento1000 миллисекунд из жизни Magento
1000 миллисекунд из жизни Magento
 
Управление продуктом в стиле Magento Unified Process
Управление продуктом в стиле Magento Unified ProcessУправление продуктом в стиле Magento Unified Process
Управление продуктом в стиле Magento Unified Process
 
Индексирование в Magento
Индексирование в MagentoИндексирование в Magento
Индексирование в Magento
 
Ключ успеха – процесс или продукт?
Ключ успеха – процесс или продукт?Ключ успеха – процесс или продукт?
Ключ успеха – процесс или продукт?
 
Реализация шаблонов корпоративных приложений в Magento
Реализация шаблонов корпоративных приложений в MagentoРеализация шаблонов корпоративных приложений в Magento
Реализация шаблонов корпоративных приложений в Magento
 
Применение TDD при разработке веб-сервисов
Применение TDD при разработке веб-сервисовПрименение TDD при разработке веб-сервисов
Применение TDD при разработке веб-сервисов
 
Система рендеринга в Magento
Система рендеринга в MagentoСистема рендеринга в Magento
Система рендеринга в Magento
 

Similar to Деплоймент и распространение обновлений для веб-приложений

битрикс Framework сергей рыжиков
битрикс Framework   сергей рыжиковбитрикс Framework   сергей рыжиков
битрикс Framework сергей рыжиковMedia Gorod
 
1С-Битрикс: Управление сайтом Версия .NET
1С-Битрикс: Управление сайтом Версия .NET1С-Битрикс: Управление сайтом Версия .NET
1С-Битрикс: Управление сайтом Версия .NETMedia Gorod
 
Кэш виджетов Yii в Redis. Отдача напрямую через Nginx. Трофименко
Кэш виджетов Yii в Redis. Отдача напрямую через Nginx. ТрофименкоКэш виджетов Yii в Redis. Отдача напрямую через Nginx. Трофименко
Кэш виджетов Yii в Redis. Отдача напрямую через Nginx. Трофименко2ГИС Технологии
 
Новые возможности IBM WebSphere Portal v8 и IBM WCM v8
Новые возможности IBM WebSphere Portal v8 и IBM WCM v8Новые возможности IBM WebSphere Portal v8 и IBM WCM v8
Новые возможности IBM WebSphere Portal v8 и IBM WCM v8Anatoly Kireev
 
UAFPUG6 - PureMVC
UAFPUG6 - PureMVCUAFPUG6 - PureMVC
UAFPUG6 - PureMVCmandrew182
 
PureMVC and Papervision
PureMVC and PapervisionPureMVC and Papervision
PureMVC and Papervision
Dmitry Kuriksha
 
Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry
Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha DmitryUafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry
Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha DmitryMax Rozdobudko
 
Frontend: Путешествие в мир модульных загрузчиков
Frontend: Путешествие в мир модульных загрузчиковFrontend: Путешествие в мир модульных загрузчиков
Frontend: Путешествие в мир модульных загрузчиков
CodeFest
 
Joomla (Админка) www.hotwebstudio.ru
Joomla (Админка) www.hotwebstudio.ruJoomla (Админка) www.hotwebstudio.ru
Joomla (Админка) www.hotwebstudio.ru
hotwebstudio.ru
 
1С-Битрикс: Управление сайтом. Платформа для создания и управления корпоратив...
1С-Битрикс: Управление сайтом. Платформа для создания и управления корпоратив...1С-Битрикс: Управление сайтом. Платформа для создания и управления корпоратив...
1С-Битрикс: Управление сайтом. Платформа для создания и управления корпоратив...
borovoystudio
 
Битрикс-Framework
Битрикс-FrameworkБитрикс-Framework
Битрикс-Framework
1С-Битрикс
 
Фичи н-н-нада? Или почему стоит использовать модуль Features.
Фичи н-н-нада? Или почему стоит использовать модуль Features.Фичи н-н-нада? Или почему стоит использовать модуль Features.
Фичи н-н-нада? Или почему стоит использовать модуль Features.
Eugene Fidelin
 
Описание и архитектура TFS 2008
Описание и архитектура TFS 2008Описание и архитектура TFS 2008
Описание и архитектура TFS 2008
Александр Шамрай
 
Как перейти с двухзвенной архитектуры Desktop приложения на трехзвенную за од...
Как перейти с двухзвенной архитектуры Desktop приложения на трехзвенную за од...Как перейти с двухзвенной архитектуры Desktop приложения на трехзвенную за од...
Как перейти с двухзвенной архитектуры Desktop приложения на трехзвенную за од...
GoSharp
 
Система мониторинга ВКС для ТНК-BP
Система мониторинга ВКС для ТНК-BPСистема мониторинга ВКС для ТНК-BP
Система мониторинга ВКС для ТНК-BP
КРОК
 
Фичи н-н-нада? Или почему стоит использовать модуль Features. Евгений Фиделин.
Фичи н-н-нада? Или почему стоит использовать модуль Features. Евгений Фиделин.Фичи н-н-нада? Или почему стоит использовать модуль Features. Евгений Фиделин.
Фичи н-н-нада? Или почему стоит использовать модуль Features. Евгений Фиделин.DrupalCampDN
 
Web deployment
Web deploymentWeb deployment
Web deployment
GetDev.NET
 
Что нового в Visual Studio 2013
Что нового в Visual Studio 2013Что нового в Visual Studio 2013
Что нового в Visual Studio 2013
GetDev.NET
 

Similar to Деплоймент и распространение обновлений для веб-приложений (20)

битрикс Framework сергей рыжиков
битрикс Framework   сергей рыжиковбитрикс Framework   сергей рыжиков
битрикс Framework сергей рыжиков
 
1С-Битрикс: Управление сайтом Версия .NET
1С-Битрикс: Управление сайтом Версия .NET1С-Битрикс: Управление сайтом Версия .NET
1С-Битрикс: Управление сайтом Версия .NET
 
Backbone lesson 1
Backbone lesson 1Backbone lesson 1
Backbone lesson 1
 
Кэш виджетов Yii в Redis. Отдача напрямую через Nginx. Трофименко
Кэш виджетов Yii в Redis. Отдача напрямую через Nginx. ТрофименкоКэш виджетов Yii в Redis. Отдача напрямую через Nginx. Трофименко
Кэш виджетов Yii в Redis. Отдача напрямую через Nginx. Трофименко
 
Новые возможности IBM WebSphere Portal v8 и IBM WCM v8
Новые возможности IBM WebSphere Portal v8 и IBM WCM v8Новые возможности IBM WebSphere Portal v8 и IBM WCM v8
Новые возможности IBM WebSphere Portal v8 и IBM WCM v8
 
UAFPUG6 - PureMVC
UAFPUG6 - PureMVCUAFPUG6 - PureMVC
UAFPUG6 - PureMVC
 
PureMVC and Papervision
PureMVC and PapervisionPureMVC and Papervision
PureMVC and Papervision
 
Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry
Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha DmitryUafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry
Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry
 
Frontend: Путешествие в мир модульных загрузчиков
Frontend: Путешествие в мир модульных загрузчиковFrontend: Путешествие в мир модульных загрузчиков
Frontend: Путешествие в мир модульных загрузчиков
 
Joomla (Админка) www.hotwebstudio.ru
Joomla (Админка) www.hotwebstudio.ruJoomla (Админка) www.hotwebstudio.ru
Joomla (Админка) www.hotwebstudio.ru
 
Web application framework
Web application frameworkWeb application framework
Web application framework
 
1С-Битрикс: Управление сайтом. Платформа для создания и управления корпоратив...
1С-Битрикс: Управление сайтом. Платформа для создания и управления корпоратив...1С-Битрикс: Управление сайтом. Платформа для создания и управления корпоратив...
1С-Битрикс: Управление сайтом. Платформа для создания и управления корпоратив...
 
Битрикс-Framework
Битрикс-FrameworkБитрикс-Framework
Битрикс-Framework
 
Фичи н-н-нада? Или почему стоит использовать модуль Features.
Фичи н-н-нада? Или почему стоит использовать модуль Features.Фичи н-н-нада? Или почему стоит использовать модуль Features.
Фичи н-н-нада? Или почему стоит использовать модуль Features.
 
Описание и архитектура TFS 2008
Описание и архитектура TFS 2008Описание и архитектура TFS 2008
Описание и архитектура TFS 2008
 
Как перейти с двухзвенной архитектуры Desktop приложения на трехзвенную за од...
Как перейти с двухзвенной архитектуры Desktop приложения на трехзвенную за од...Как перейти с двухзвенной архитектуры Desktop приложения на трехзвенную за од...
Как перейти с двухзвенной архитектуры Desktop приложения на трехзвенную за од...
 
Система мониторинга ВКС для ТНК-BP
Система мониторинга ВКС для ТНК-BPСистема мониторинга ВКС для ТНК-BP
Система мониторинга ВКС для ТНК-BP
 
Фичи н-н-нада? Или почему стоит использовать модуль Features. Евгений Фиделин.
Фичи н-н-нада? Или почему стоит использовать модуль Features. Евгений Фиделин.Фичи н-н-нада? Или почему стоит использовать модуль Features. Евгений Фиделин.
Фичи н-н-нада? Или почему стоит использовать модуль Features. Евгений Фиделин.
 
Web deployment
Web deploymentWeb deployment
Web deployment
 
Что нового в Visual Studio 2013
Что нового в Visual Studio 2013Что нового в Visual Studio 2013
Что нового в Visual Studio 2013
 

Деплоймент и распространение обновлений для веб-приложений

  • 1.
  • 2. Деплоймент и распространение обновлений для веб-приложений Евгений Ивашин, разработчик Magento Core
  • 3. Деплоймент и распространение обновлений для веб-приложений Основные тезисы Существующие практики создания инсталляторов для веб-приложений. Способы обновления веб-приложений, организация каналов обновлений. Объектно-ориентированный подход и модульность организации программного кода и параметров настройки веб-приложения. Установка или обновление отдельных модулей веб-приложения с сохранением целостности кода в целом.
  • 4. Введение Быть программистом PHP означает разрабатывать веб-приложения. У всех веб-приложений есть общие черты
  • 5. Введение У всех веб-приложений есть общие черты: ... они созданы, чтобы выполняться на веб-сервере и быть доступными через Internet
  • 6. Введение У всех веб-приложений есть общие черты: ... средой выполнения на них накладываются ограничения
  • 7. Введение У всех веб-приложений есть общие черты: ... они многофункциональны и содержат большое количество исходного кода
  • 8. Введение У всех веб-приложений есть общие черты: ... они всегда содержат ошибки, всегда требуется доработка и выпуск новых версий
  • 9. Введение У всех веб-приложений есть общие черты: ... большинство из них работают с данными, структура которых изменяется с новыми версиями
  • 10.
  • 12.
  • 13. «Какая инсталляция?..» Инсталляция веб-приложений Вариант 1 Разработка под конкретную платформу, «на коленке». Преимущества: При обеспечении идеальных условий разработка происходит быстрее, чем обычно Недостатки: Идеальные условия не наступают практически никогда!
  • 14. Инсталляция веб-приложений Скачал, развернул и настроил Вариант 2 Преимущества: Настройки отделены от кода Может выполняться непрофессионалом Недостатки: Сложность в обновлении и поддержке больших проектов Код нельзя обновлять частями
  • 15. Инсталляция веб-приложений Объектно-ориентированный подход Вариант 3 Преимущества: Широкие возможности по расширению приложения Отделение кода от визуального представления Модульный подход Недостатки: Сложность архитектуры Тяжеловесность кода
  • 17. Проблема обновления веб-приложений Случай 1 Тяжелый случай Возникает при попытке обновить приложение, разработанное «на коленке» Ни о каком обновлении речи быть не может Любые изменения требуют разработки заново либо переписывания большей части кода
  • 18. Проблема обновления веб-приложений Полная замена кода Случай 2 Код не структурирован Обновление представляет собой полную переустановку новой версии с сохранением настроек При изменении структуры данных upgrade БД выполняется вручную, предварительно выполняется backup
  • 19. Проблема обновления веб-приложений Модульный подход Случай 3 Объектно-ориентированный подход Код разбит на модули Каждый модуль может быть обновлен независимо Модуль «знает» от каких модулей он зависит и какие модули зависят от него После обновления выполняется upgrade структуры БД без потери данных
  • 20. Проблема обновления веб-приложений Модульный подход Случай 3 Пакет обновления Модуль A’ Модуль A’ Модуль A Конфигурациямодуля A’ Конфигурация модуля A’ Конфигурация модуля A зависимости Модуль B Модуль C Модуль D
  • 21. Проблема обновления веб-приложений Модульный подход Случай 3 Пакет обновления Модуль A’ Модуль A Модуль A’ Конфигурациямодуля A’ Конфигурация модуля A зависимости Конфигурация модуля A’ Модуль B Модуль C Модуль D
  • 22.
  • 23. Конфигурация содержит исчерпывающие данные о взаимодействии данного модуля с другими модулями и системой в целом.
  • 24. Конфигурация определяет зависимости данного модуля от остальных установленных модулей, проверяя допустимость и последовательность установки.Пакет обновления Модуль A’ Модуль A Модуль A’ Конфигурациямодуля A’ Конфигурация модуля A зависимости Конфигурация модуля A’ Модуль B Модуль C Модуль D
  • 25. Проблема обновления веб-приложений Модульный подход Случай 3 Пакет обновления Модуль A’ Модуль A’ Модуль A DB upgrade модуля A’ DB upgrade модуля A’ База данных
  • 26. Проблема обновления веб-приложений Модульный подход Случай 3 Пакет обновления Модуль A’ Модуль A Модуль A’ DB upgrade модуля A’ База данных
  • 27.
  • 28. Изменение структуры БД привязано к версии модуля; при обновлении с одной версии на другую последовательно выполняются все изменения для каждой из версий.
  • 29. Разработчик должен следить за тем, чтобы изменения структуры не нарушали целостность данных в целом.Пакет обновления Модуль A’ Модуль A Модуль A’ DB upgrade модуля A’ База данных
  • 30.
  • 31.
  • 32.
  • 33. Проблема обновления веб-приложений Каналы обновления Случай 4
  • 34. Объектно-ориентированный подход и модульная организация кода
  • 35. Объектно-ориентированный подход и модульная организация кода ЧЕМ ХОРОША АРХИТЕКТУРА MVC?
  • 36.
  • 37. дизайнерам и программистам работать независимо друг от друга. /** * Set a color value * * @param string $color * @return Object */ public function setColor($colorVa { $this->_color = $color; return $this; } /** Browser
  • 38.
  • 40. облегчает читабельность и прозрачность исходных текстов;
  • 41. делает отладку и тестирование намного проще.С С С С С С M M M M M M
  • 42.
  • 43. Приложение рассматривается как набор отдельных строительных блоков.
  • 44. Каждый модуль следует общей архитектуре MVC, иметь собственные контроллеры и модели, собственную визуальную часть и настройки.Модуль Модуль Модуль Модуль Модуль Модуль Модуль Модуль Модуль M Модуль V Модуль С Модуль
  • 45.
  • 46. Каждый модуль имеет свои файлы конфигурации.
  • 47. Установка и обновление кода Magentoпроисходит помодульно, с учетом заданных зависимостей между отдельными модулями.
  • 48.
  • 50.

Editor's Notes

  1. Случай второй. [CLICK]Полная замена кодаКод не структурирован, невозможно либо очень сложно разбить систему на независимые модули, но настройки вынесены в отдельный файл или группу файлов. В таком случае обновление обычно представляет собой полную переинсталляцию приложения с сохранением старых настроек.Существенную проблему представляет собой обновление структуры базы данных. При изменении структуры данных upgrade БД выполняется вручную, предварительно выполняется backup.И горе конечному пользователю, если разработчик не предусмотрел корректной процедуры миграции данных, и тем более, если конечный пользователь забыл сохранить копию данных![CLICK]