Web application framework

Viktor Chukhantsev
Viktor ChukhantsevRuby on Rails Tech Lead at Roundforest à 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 sur 7

Recommandé

Test Driven Development in ASP.NET MVC 3 par
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 vues21 diapositives
KNOCKOUTJS КАК РЕАЛИЗАЦИЯ MVVM par
KNOCKOUTJS КАК РЕАЛИЗАЦИЯ MVVMKNOCKOUTJS КАК РЕАЛИЗАЦИЯ MVVM
KNOCKOUTJS КАК РЕАЛИЗАЦИЯ MVVMPavel Tsukanov
841 vues27 diapositives
SQADAYS 21 Москва 2017 par
SQADAYS 21 Москва 2017SQADAYS 21 Москва 2017
SQADAYS 21 Москва 2017Adam Sandman
1.3K vues33 diapositives
Автоматизация тестирования. Разбор конкретного примера - продукта XML2Selenium par
Автоматизация тестирования. Разбор конкретного примера - продукта XML2SeleniumАвтоматизация тестирования. Разбор конкретного примера - продукта XML2Selenium
Автоматизация тестирования. Разбор конкретного примера - продукта XML2Seleniumjazzteam
2.7K vues34 diapositives
Agile Java Development компания JazzTeam - Техническая презентация Xml2Selenium par
Agile Java Development компания JazzTeam - Техническая презентация Xml2SeleniumAgile Java Development компания JazzTeam - Техническая презентация Xml2Selenium
Agile Java Development компания JazzTeam - Техническая презентация Xml2Seleniumjazzteam
3.4K vues30 diapositives
Эволюция автотестирования на Selenium par
Эволюция автотестирования на SeleniumЭволюция автотестирования на Selenium
Эволюция автотестирования на SeleniumSQALab
1.5K vues29 diapositives

Contenu connexe

Tendances

DevOps - позволь работе приносить удовольствие par
DevOps - позволь работе приносить удовольствиеDevOps - позволь работе приносить удовольствие
DevOps - позволь работе приносить удовольствиеCOMAQA.BY
227 vues15 diapositives
Организация workflow в трекере TFS | Алексей Соловьев par
Организация workflow в трекере TFS | Алексей СоловьевОрганизация workflow в трекере TFS | Алексей Соловьев
Организация workflow в трекере TFS | Алексей СоловьевPositive Hack Days
8.1K vues15 diapositives
ASP.NET MVC Intro par
ASP.NET MVC IntroASP.NET MVC Intro
ASP.NET MVC IntroFilipp Panfilov
235 vues8 diapositives
Алексей Кабанов par
Алексей КабановАлексей Кабанов
Алексей КабановSQALab
333 vues16 diapositives
Асинхронное программирование в ASP.NET MVC par
Асинхронное программирование в ASP.NET MVCАсинхронное программирование в ASP.NET MVC
Асинхронное программирование в ASP.NET MVCEugene Agafonov
1.1K vues28 diapositives
Sergey Gavruk - WebMatrix par
Sergey Gavruk - WebMatrixSergey Gavruk - WebMatrix
Sergey Gavruk - WebMatrixbeloslab
323 vues14 diapositives

Tendances(20)

DevOps - позволь работе приносить удовольствие par COMAQA.BY
DevOps - позволь работе приносить удовольствиеDevOps - позволь работе приносить удовольствие
DevOps - позволь работе приносить удовольствие
COMAQA.BY 227 vues
Организация workflow в трекере TFS | Алексей Соловьев par Positive Hack Days
Организация workflow в трекере TFS | Алексей СоловьевОрганизация workflow в трекере TFS | Алексей Соловьев
Организация workflow в трекере TFS | Алексей Соловьев
Positive Hack Days8.1K vues
Алексей Кабанов par SQALab
Алексей КабановАлексей Кабанов
Алексей Кабанов
SQALab333 vues
Асинхронное программирование в ASP.NET MVC par Eugene Agafonov
Асинхронное программирование в ASP.NET MVCАсинхронное программирование в ASP.NET MVC
Асинхронное программирование в ASP.NET MVC
Eugene Agafonov1.1K vues
Sergey Gavruk - WebMatrix par beloslab
Sergey Gavruk - WebMatrixSergey Gavruk - WebMatrix
Sergey Gavruk - WebMatrix
beloslab323 vues
Нагрузочное тестирование: Нестандартные методы анализа потока данных в прилож... par SQALab
Нагрузочное тестирование: Нестандартные методы анализа потока данных в прилож...Нагрузочное тестирование: Нестандартные методы анализа потока данных в прилож...
Нагрузочное тестирование: Нестандартные методы анализа потока данных в прилож...
SQALab463 vues
AntonSaburov (Gemini-Systems) @ CodeCamp2011 par CodeCamp
AntonSaburov (Gemini-Systems) @ CodeCamp2011AntonSaburov (Gemini-Systems) @ CodeCamp2011
AntonSaburov (Gemini-Systems) @ CodeCamp2011
CodeCamp280 vues
автоматизация тестирования веб приложений павел липский par Media Gorod
автоматизация тестирования веб приложений   павел липскийавтоматизация тестирования веб приложений   павел липский
автоматизация тестирования веб приложений павел липский
Media Gorod539 vues
Расширяемая платформа для создания и управления автоматизированными тестами н... par jazzteam
Расширяемая платформа для создания и управления автоматизированными тестами н...Расширяемая платформа для создания и управления автоматизированными тестами н...
Расширяемая платформа для создания и управления автоматизированными тестами н...
jazzteam1.9K vues
Система мониторинга Zabbix в процессах разработки и тестирования | Алексей Буров par Positive Hack Days
Система мониторинга Zabbix в процессах разработки и тестирования | Алексей БуровСистема мониторинга Zabbix в процессах разработки и тестирования | Алексей Буров
Система мониторинга Zabbix в процессах разработки и тестирования | Алексей Буров
Positive Hack Days12.5K vues
Dotnet development par MageCloud
Dotnet developmentDotnet development
Dotnet development
MageCloud347 vues
Практические рекомендации по использованию системы TestRail | Дмитрий Рыльцов... par Positive Hack Days
Практические рекомендации по использованию системы TestRail | Дмитрий Рыльцов...Практические рекомендации по использованию системы TestRail | Дмитрий Рыльцов...
Практические рекомендации по использованию системы TestRail | Дмитрий Рыльцов...
Positive Hack Days3.4K vues
Как улучшить тесты на Selenium с помощью "визуального тестирования"? par Oksana Avchinnikova
Как улучшить тесты на Selenium с помощью "визуального тестирования"?Как улучшить тесты на Selenium с помощью "визуального тестирования"?
Как улучшить тесты на Selenium с помощью "визуального тестирования"?
ASP.NET MVC 3 Anton Vidishchev par Alex Tumanoff
ASP.NET MVC 3 Anton VidishchevASP.NET MVC 3 Anton Vidishchev
ASP.NET MVC 3 Anton Vidishchev
Alex Tumanoff396 vues
Советы для успешной автоматизации тестирования веб-приложений par Mairbek Khadikov
Советы для успешной автоматизации тестирования веб-приложенийСоветы для успешной автоматизации тестирования веб-приложений
Советы для успешной автоматизации тестирования веб-приложений
Mairbek Khadikov2.8K vues
Причины и способы имитации back-end'а par Oksana Avchinnikova
Причины и способы имитации back-end'аПричины и способы имитации back-end'а
Причины и способы имитации back-end'а
WPF Automation – test injection approach to application testing par 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 vues
Автоматизация тестирования веб-сервисов посредством SOAP UI par automated-testing.info
Автоматизация тестирования веб-сервисов посредством SOAP UIАвтоматизация тестирования веб-сервисов посредством SOAP UI
Автоматизация тестирования веб-сервисов посредством SOAP UI

Similaire à Web application framework

ASP.NET MVC: new era? par
ASP.NET MVC: new era?ASP.NET MVC: new era?
ASP.NET MVC: new era?Alexander Konduforov
1.6K vues20 diapositives
Backbone lesson 1 par
Backbone lesson 1Backbone lesson 1
Backbone lesson 1Mihail Skida
1.4K vues13 diapositives
ASP.NET, MVC, ASP.NET MVC par
ASP.NET, MVC, ASP.NET MVCASP.NET, MVC, ASP.NET MVC
ASP.NET, MVC, ASP.NET MVCGetDev.NET
2.6K vues29 diapositives
Шаблоны проектирования в Magento par
Шаблоны проектирования в MagentoШаблоны проектирования в Magento
Шаблоны проектирования в MagentoPavel Usachev
2.3K vues25 diapositives
ASP.NET MVC par
ASP.NET MVCASP.NET MVC
ASP.NET MVCGetDev.NET
784 vues21 diapositives
Больше чем анализ par
Больше чем анализБольше чем анализ
Больше чем анализSQALab
816 vues26 diapositives

Similaire à Web application framework(20)

ASP.NET, MVC, ASP.NET MVC par GetDev.NET
ASP.NET, MVC, ASP.NET MVCASP.NET, MVC, ASP.NET MVC
ASP.NET, MVC, ASP.NET MVC
GetDev.NET2.6K vues
Шаблоны проектирования в Magento par Pavel Usachev
Шаблоны проектирования в MagentoШаблоны проектирования в Magento
Шаблоны проектирования в Magento
Pavel Usachev2.3K vues
Больше чем анализ par SQALab
Больше чем анализБольше чем анализ
Больше чем анализ
SQALab816 vues
C# Web. Занятие 09. par Igor Shkulipa
C# Web. Занятие 09.C# Web. Занятие 09.
C# Web. Занятие 09.
Igor Shkulipa1.6K vues
Паттерны проектирования par ITCP Community
Паттерны проектированияПаттерны проектирования
Паттерны проектирования
ITCP Community127 vues
Frontend: Путешествие в мир модульных загрузчиков par CodeFest
Frontend: Путешествие в мир модульных загрузчиковFrontend: Путешествие в мир модульных загрузчиков
Frontend: Путешествие в мир модульных загрузчиков
CodeFest957 vues
метод организации репозитория исходного кода par Sergii Shmarkatiuk
метод организации репозитория исходного кодаметод организации репозитория исходного кода
метод организации репозитория исходного кода
Sergii Shmarkatiuk1.7K vues
JavaScript Базовый. Занятие 09. par Igor Shkulipa
JavaScript Базовый. Занятие 09.JavaScript Базовый. Занятие 09.
JavaScript Базовый. Занятие 09.
Igor Shkulipa413 vues
Разработка Enterprise-приложения на основе Spring Framework par CUSTIS
Разработка Enterprise-приложения на основе Spring FrameworkРазработка Enterprise-приложения на основе Spring Framework
Разработка Enterprise-приложения на основе Spring Framework
CUSTIS1.1K vues
ПартФорум DIRECTUM 2013 - разработка прикладных решений par Виктор Золотов
ПартФорум DIRECTUM 2013 - разработка прикладных решенийПартФорум DIRECTUM 2013 - разработка прикладных решений
ПартФорум DIRECTUM 2013 - разработка прикладных решений
Экранирование локальных пользователей при выходе в публичные сети: эталонная ... par Dmitry Tikhovich
Экранирование локальных пользователей при выходе в публичные сети: эталонная ...Экранирование локальных пользователей при выходе в публичные сети: эталонная ...
Экранирование локальных пользователей при выходе в публичные сети: эталонная ...
Dmitry Tikhovich743 vues
Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance" par Fwdays
Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"
Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"
Fwdays518 vues

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; • и др.

Notes de l'éditeur

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