Web application framework

Viktor Chukhantsev
Viktor ChukhantsevRuby on Rails Tech Lead at Roundforest em Roundforest
Web application framework
              The Invaders
       http://www.theinvaders.ru
Что это такое?

Каркас(дословный перевод). Это набор готовых
компонентов и моделей, которые облегчают
программирование и делают его более организованным.
Используя веб-фреймворк, можно значительно упростить
работу, необходимую для построения веб-приложений.
Это напоминает построение модели из блоков Лего.
Варианты при разработке веб приложения?

•   Использовать «чистый» продукт;

•   Использовать готовое решение;

•   Использовать фрэймворк.


    Большинство веб-фреймворков используют паттерн проектирования — MVC(model-view-
    controller). Далее по умолчанию будет подразумеваться, что фреймворк работает по такому
    паттерну.
MVC(model-view-controller)



•   Первая часть представляет собой бизнес-процессы (модель).

•   Вторая говорит приложению, что делать с потоками данных (контроллер).

•   А с помощью третьей части  создаются HTML-страницы (вид).



    Многие веб-фреймворки, навязывая шаблон MVC, позволяют организовать код так, что изменения в модели, виде или
    контроллере оказывают наименьшее воздействие на другие элементы приложения.
Зачем?
Выдержка из чьего-то блога...

Создание современного web приложения представляет собой довольно трудоемкую задачу. В книгах или
руководствах все кажется довольно простым. Демонстрационные программы редко бывают больше нескольких
страницы. Все красиво работает… Но, проблема в том, что это учебные примеры. Как только вы попытаетесь
использовать их на практике, вы увидите, как увеличивается объем кода. Рассмотрим обработку данных,
полученных из формы. Мы должны:

- проверить тип полученных значений;
- убедиться, что значения имеют допустимые величины (или формат);
- удалить из текста запрещенные теги (защита от XSS);
- заменить в параметрах SQL-запросов служебные символы на их эскейп последовательности (защита от SQL
Injection);
- если параметры связаны между собой, проверить эти связи;
- и т.д.

Естественно, этот код должен быть не только написан, но и протестирован. Как видите, приличный кусок работы.
Причем в большинстве своем это рутинные операции, которые повторяются практически во всех приложениях.
Что нам дает веб фреймворк?
•   система шаблонов;

•   система кеширования;

•   безопасность;

•   ORM, API доступа к БД;

•   диспетчер URL;

•   AJAX;

•   автоматическое конфигурирование;

•   расширяемость;

•   и т.д.
Веб фреймворки

•   PHP: Zend, CodeIgniter, Kohana, Yii, CakePHP, Symphony;

•   Python: Django, Pylons, TurboGears;

•   Ruby on Rails;

•   Java: Spring Framework, JBoss Seam, Apache Wicket, Apache Click,
    Apache Tapestry, Apache Struts;

•   и др.
1 de 7

Recomendados

Test Driven Development in ASP.NET MVC 3 por
Test Driven Development in ASP.NET MVC 3Test Driven Development in ASP.NET MVC 3
Test Driven Development in ASP.NET MVC 3Anton Vidishchev
1.9K visualizações21 slides
KNOCKOUTJS КАК РЕАЛИЗАЦИЯ MVVM por
KNOCKOUTJS КАК РЕАЛИЗАЦИЯ MVVMKNOCKOUTJS КАК РЕАЛИЗАЦИЯ MVVM
KNOCKOUTJS КАК РЕАЛИЗАЦИЯ MVVMPavel Tsukanov
841 visualizações27 slides
SQADAYS 21 Москва 2017 por
SQADAYS 21 Москва 2017SQADAYS 21 Москва 2017
SQADAYS 21 Москва 2017Adam Sandman
1.3K visualizações33 slides
Автоматизация тестирования. Разбор конкретного примера - продукта XML2Selenium por
Автоматизация тестирования. Разбор конкретного примера - продукта XML2SeleniumАвтоматизация тестирования. Разбор конкретного примера - продукта XML2Selenium
Автоматизация тестирования. Разбор конкретного примера - продукта XML2Seleniumjazzteam
2.7K visualizações34 slides
Agile Java Development компания JazzTeam - Техническая презентация Xml2Selenium por
Agile Java Development компания JazzTeam - Техническая презентация Xml2SeleniumAgile Java Development компания JazzTeam - Техническая презентация Xml2Selenium
Agile Java Development компания JazzTeam - Техническая презентация Xml2Seleniumjazzteam
3.4K visualizações30 slides
Эволюция автотестирования на Selenium por
Эволюция автотестирования на SeleniumЭволюция автотестирования на Selenium
Эволюция автотестирования на SeleniumSQALab
1.5K visualizações29 slides

Mais conteúdo relacionado

Mais procurados

DevOps - позволь работе приносить удовольствие por
DevOps - позволь работе приносить удовольствиеDevOps - позволь работе приносить удовольствие
DevOps - позволь работе приносить удовольствиеCOMAQA.BY
227 visualizações15 slides
Организация workflow в трекере TFS | Алексей Соловьев por
Организация workflow в трекере TFS | Алексей СоловьевОрганизация workflow в трекере TFS | Алексей Соловьев
Организация workflow в трекере TFS | Алексей СоловьевPositive Hack Days
8.1K visualizações15 slides
ASP.NET MVC Intro por
ASP.NET MVC IntroASP.NET MVC Intro
ASP.NET MVC IntroFilipp Panfilov
235 visualizações8 slides
Алексей Кабанов por
Алексей КабановАлексей Кабанов
Алексей КабановSQALab
333 visualizações16 slides
Асинхронное программирование в ASP.NET MVC por
Асинхронное программирование в ASP.NET MVCАсинхронное программирование в ASP.NET MVC
Асинхронное программирование в ASP.NET MVCEugene Agafonov
1.1K visualizações28 slides
Sergey Gavruk - WebMatrix por
Sergey Gavruk - WebMatrixSergey Gavruk - WebMatrix
Sergey Gavruk - WebMatrixbeloslab
323 visualizações14 slides

Mais procurados(20)

DevOps - позволь работе приносить удовольствие por COMAQA.BY
DevOps - позволь работе приносить удовольствиеDevOps - позволь работе приносить удовольствие
DevOps - позволь работе приносить удовольствие
COMAQA.BY 227 visualizações
Организация workflow в трекере TFS | Алексей Соловьев por Positive Hack Days
Организация workflow в трекере TFS | Алексей СоловьевОрганизация workflow в трекере TFS | Алексей Соловьев
Организация workflow в трекере TFS | Алексей Соловьев
Positive Hack Days8.1K visualizações
ASP.NET MVC Intro por Filipp Panfilov
ASP.NET MVC IntroASP.NET MVC Intro
ASP.NET MVC Intro
Filipp Panfilov235 visualizações
Алексей Кабанов por SQALab
Алексей КабановАлексей Кабанов
Алексей Кабанов
SQALab333 visualizações
Асинхронное программирование в ASP.NET MVC por Eugene Agafonov
Асинхронное программирование в ASP.NET MVCАсинхронное программирование в ASP.NET MVC
Асинхронное программирование в ASP.NET MVC
Eugene Agafonov1.1K visualizações
Sergey Gavruk - WebMatrix por beloslab
Sergey Gavruk - WebMatrixSergey Gavruk - WebMatrix
Sergey Gavruk - WebMatrix
beloslab323 visualizações
Нагрузочное тестирование: Нестандартные методы анализа потока данных в прилож... por SQALab
Нагрузочное тестирование: Нестандартные методы анализа потока данных в прилож...Нагрузочное тестирование: Нестандартные методы анализа потока данных в прилож...
Нагрузочное тестирование: Нестандартные методы анализа потока данных в прилож...
SQALab463 visualizações
AntonSaburov (Gemini-Systems) @ CodeCamp2011 por CodeCamp
AntonSaburov (Gemini-Systems) @ CodeCamp2011AntonSaburov (Gemini-Systems) @ CodeCamp2011
AntonSaburov (Gemini-Systems) @ CodeCamp2011
CodeCamp280 visualizações
автоматизация тестирования веб приложений павел липский por Media Gorod
автоматизация тестирования веб приложений   павел липскийавтоматизация тестирования веб приложений   павел липский
автоматизация тестирования веб приложений павел липский
Media Gorod539 visualizações
Расширяемая платформа для создания и управления автоматизированными тестами н... por jazzteam
Расширяемая платформа для создания и управления автоматизированными тестами н...Расширяемая платформа для создания и управления автоматизированными тестами н...
Расширяемая платформа для создания и управления автоматизированными тестами н...
jazzteam1.9K visualizações
Система мониторинга Zabbix в процессах разработки и тестирования | Алексей Буров por Positive Hack Days
Система мониторинга Zabbix в процессах разработки и тестирования | Алексей БуровСистема мониторинга Zabbix в процессах разработки и тестирования | Алексей Буров
Система мониторинга Zabbix в процессах разработки и тестирования | Алексей Буров
Positive Hack Days12.5K visualizações
Dotnet development por MageCloud
Dotnet developmentDotnet development
Dotnet development
MageCloud347 visualizações
Практические рекомендации по использованию системы TestRail | Дмитрий Рыльцов... por Positive Hack Days
Практические рекомендации по использованию системы TestRail | Дмитрий Рыльцов...Практические рекомендации по использованию системы TestRail | Дмитрий Рыльцов...
Практические рекомендации по использованию системы TestRail | Дмитрий Рыльцов...
Positive Hack Days3.4K visualizações
Как улучшить тесты на Selenium с помощью "визуального тестирования"? por Oksana Avchinnikova
Как улучшить тесты на Selenium с помощью "визуального тестирования"?Как улучшить тесты на Selenium с помощью "визуального тестирования"?
Как улучшить тесты на Selenium с помощью "визуального тестирования"?
Oksana Avchinnikova468 visualizações
ASP.NET MVC 3 Anton Vidishchev por Alex Tumanoff
ASP.NET MVC 3 Anton VidishchevASP.NET MVC 3 Anton Vidishchev
ASP.NET MVC 3 Anton Vidishchev
Alex Tumanoff396 visualizações
Советы для успешной автоматизации тестирования веб-приложений por Mairbek Khadikov
Советы для успешной автоматизации тестирования веб-приложенийСоветы для успешной автоматизации тестирования веб-приложений
Советы для успешной автоматизации тестирования веб-приложений
Mairbek Khadikov2.8K visualizações
Причины и способы имитации back-end'а por Oksana Avchinnikova
Причины и способы имитации back-end'аПричины и способы имитации back-end'а
Причины и способы имитации back-end'а
Oksana Avchinnikova194 visualizações
WPF Automation – test injection approach to application testing por SQALab
WPF Automation – test injection approach to application testingWPF Automation – test injection approach to application testing
WPF Automation – test injection approach to application testing
SQALab1.2K visualizações
Azure - Visual Studio Team Services por Alexander Babich
Azure - Visual Studio Team ServicesAzure - Visual Studio Team Services
Azure - Visual Studio Team Services
Alexander Babich278 visualizações
Автоматизация тестирования веб-сервисов посредством SOAP UI por automated-testing.info
Автоматизация тестирования веб-сервисов посредством SOAP UIАвтоматизация тестирования веб-сервисов посредством SOAP UI
Автоматизация тестирования веб-сервисов посредством SOAP UI
automated-testing.info20.4K visualizações

Similar a Web application framework

ASP.NET MVC: new era? por
ASP.NET MVC: new era?ASP.NET MVC: new era?
ASP.NET MVC: new era?Alexander Konduforov
1.6K visualizações20 slides
Backbone lesson 1 por
Backbone lesson 1Backbone lesson 1
Backbone lesson 1Mihail Skida
1.4K visualizações13 slides
ASP.NET, MVC, ASP.NET MVC por
ASP.NET, MVC, ASP.NET MVCASP.NET, MVC, ASP.NET MVC
ASP.NET, MVC, ASP.NET MVCGetDev.NET
2.6K visualizações29 slides
Шаблоны проектирования в Magento por
Шаблоны проектирования в MagentoШаблоны проектирования в Magento
Шаблоны проектирования в MagentoPavel Usachev
2.3K visualizações25 slides
ASP.NET MVC por
ASP.NET MVCASP.NET MVC
ASP.NET MVCGetDev.NET
784 visualizações21 slides
Больше чем анализ por
Больше чем анализБольше чем анализ
Больше чем анализSQALab
816 visualizações26 slides

Similar a Web application framework(20)

ASP.NET MVC: new era? por Alexander Konduforov
ASP.NET MVC: new era?ASP.NET MVC: new era?
ASP.NET MVC: new era?
Alexander Konduforov1.6K visualizações
Backbone lesson 1 por Mihail Skida
Backbone lesson 1Backbone lesson 1
Backbone lesson 1
Mihail Skida1.4K visualizações
ASP.NET, MVC, ASP.NET MVC por GetDev.NET
ASP.NET, MVC, ASP.NET MVCASP.NET, MVC, ASP.NET MVC
ASP.NET, MVC, ASP.NET MVC
GetDev.NET2.6K visualizações
Шаблоны проектирования в Magento por Pavel Usachev
Шаблоны проектирования в MagentoШаблоны проектирования в Magento
Шаблоны проектирования в Magento
Pavel Usachev2.3K visualizações
ASP.NET MVC por GetDev.NET
ASP.NET MVCASP.NET MVC
ASP.NET MVC
GetDev.NET784 visualizações
Больше чем анализ por SQALab
Больше чем анализБольше чем анализ
Больше чем анализ
SQALab816 visualizações
C# Web. Занятие 09. por Igor Shkulipa
C# Web. Занятие 09.C# Web. Занятие 09.
C# Web. Занятие 09.
Igor Shkulipa1.6K visualizações
Паттерны проектирования por ITCP Community
Паттерны проектированияПаттерны проектирования
Паттерны проектирования
ITCP Community127 visualizações
C# Web. Занятие 05. por Igor Shkulipa
C# Web. Занятие 05.C# Web. Занятие 05.
C# Web. Занятие 05.
Igor Shkulipa490 visualizações
Frontend: Путешествие в мир модульных загрузчиков por CodeFest
Frontend: Путешествие в мир модульных загрузчиковFrontend: Путешествие в мир модульных загрузчиков
Frontend: Путешествие в мир модульных загрузчиков
CodeFest957 visualizações
метод организации репозитория исходного кода por Sergii Shmarkatiuk
метод организации репозитория исходного кодаметод организации репозитория исходного кода
метод организации репозитория исходного кода
Sergii Shmarkatiuk1.7K visualizações
JavaScript Базовый. Занятие 09. por Igor Shkulipa
JavaScript Базовый. Занятие 09.JavaScript Базовый. Занятие 09.
JavaScript Базовый. Занятие 09.
Igor Shkulipa413 visualizações
Разработка Enterprise-приложения на основе Spring Framework por CUSTIS
Разработка Enterprise-приложения на основе Spring FrameworkРазработка Enterprise-приложения на основе Spring Framework
Разработка Enterprise-приложения на основе Spring Framework
CUSTIS1.1K visualizações
Mva stf module 1 - rus por Maxim Shaptala
Mva stf module 1 - rusMva stf module 1 - rus
Mva stf module 1 - rus
Maxim Shaptala712 visualizações
ПартФорум DIRECTUM 2013 - разработка прикладных решений por Виктор Золотов
ПартФорум DIRECTUM 2013 - разработка прикладных решенийПартФорум DIRECTUM 2013 - разработка прикладных решений
ПартФорум DIRECTUM 2013 - разработка прикладных решений
Виктор Золотов503 visualizações
Экскурс в мир WEB разработки por IT-Доминанта
Экскурс в мир WEB разработкиЭкскурс в мир WEB разработки
Экскурс в мир WEB разработки
IT-Доминанта1.7K visualizações
Simonova sql server-enginetesting por Computer Science Club
Simonova sql server-enginetestingSimonova sql server-enginetesting
Simonova sql server-enginetesting
Computer Science Club258 visualizações
Экранирование локальных пользователей при выходе в публичные сети: эталонная ... por Dmitry Tikhovich
Экранирование локальных пользователей при выходе в публичные сети: эталонная ...Экранирование локальных пользователей при выходе в публичные сети: эталонная ...
Экранирование локальных пользователей при выходе в публичные сети: эталонная ...
Dmitry Tikhovich743 visualizações
Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance" por Fwdays
Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"
Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"
Fwdays518 visualizações

Web application framework

  • 1. Web application framework The Invaders http://www.theinvaders.ru
  • 2. Что это такое? Каркас(дословный перевод). Это набор готовых компонентов и моделей, которые облегчают программирование и делают его более организованным. Используя веб-фреймворк, можно значительно упростить работу, необходимую для построения веб-приложений. Это напоминает построение модели из блоков Лего.
  • 3. Варианты при разработке веб приложения? • Использовать «чистый» продукт; • Использовать готовое решение; • Использовать фрэймворк. Большинство веб-фреймворков используют паттерн проектирования — MVC(model-view- controller). Далее по умолчанию будет подразумеваться, что фреймворк работает по такому паттерну.
  • 4. MVC(model-view-controller) • Первая часть представляет собой бизнес-процессы (модель). • Вторая говорит приложению, что делать с потоками данных (контроллер). • А с помощью третьей части  создаются HTML-страницы (вид). Многие веб-фреймворки, навязывая шаблон MVC, позволяют организовать код так, что изменения в модели, виде или контроллере оказывают наименьшее воздействие на другие элементы приложения.
  • 5. Зачем? Выдержка из чьего-то блога... Создание современного web приложения представляет собой довольно трудоемкую задачу. В книгах или руководствах все кажется довольно простым. Демонстрационные программы редко бывают больше нескольких страницы. Все красиво работает… Но, проблема в том, что это учебные примеры. Как только вы попытаетесь использовать их на практике, вы увидите, как увеличивается объем кода. Рассмотрим обработку данных, полученных из формы. Мы должны: - проверить тип полученных значений; - убедиться, что значения имеют допустимые величины (или формат); - удалить из текста запрещенные теги (защита от XSS); - заменить в параметрах SQL-запросов служебные символы на их эскейп последовательности (защита от SQL Injection); - если параметры связаны между собой, проверить эти связи; - и т.д. Естественно, этот код должен быть не только написан, но и протестирован. Как видите, приличный кусок работы. Причем в большинстве своем это рутинные операции, которые повторяются практически во всех приложениях.
  • 6. Что нам дает веб фреймворк? • система шаблонов; • система кеширования; • безопасность; • ORM, API доступа к БД; • диспетчер URL; • AJAX; • автоматическое конфигурирование; • расширяемость; • и т.д.
  • 7. Веб фреймворки • PHP: Zend, CodeIgniter, Kohana, Yii, CakePHP, Symphony; • Python: Django, Pylons, TurboGears; • Ruby on Rails; • Java: Spring Framework, JBoss Seam, Apache Wicket, Apache Click, Apache Tapestry, Apache Struts; • и др.

Notas do Editor

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n