Grzegorz Ruciński. Warszawska Wyższa Szkoła Informatyki 2011. Promotor dr inż. Paweł Figat

Podobne dokumenty
Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Program szkolenia: Symfony, nowoczesny framework PHP

Full Stack JavaScript z Angular i Nest. Dni: 5. Opis: Adresaci szkolenia

KARTA PRZEDMIOTU. Warsztaty z Ruby on Rails. Ruby on Rails Workshop

ASP.NET MVC. Grzegorz Caban 20 stycznia 2009

Kurs ASP.NET ASP.NET CORE APLIKACJE WEBOWE

Tworzenie aplikacji Web Alicja Zwiewka. Page 1

Wzorce projektowe i refaktoryzacja

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC

Przygotowanie do nowoczesnego programowania po stronie przeglądarki. (HTML5, CSS3, JS, wzorce, architektura, narzędzia)

PRZEWODNIK PO PRZEDMIOCIE

Laboratorium Technologii Informacyjnych. Projektowanie Baz Danych

Architektura mikroserwisów na platformie Spring IO

Aplikacje webowe w obliczu ataków internetowych na przykładzie CodeIgniter Framework

Encje w Drupalu. Tworzenie własnych encji i ich wpływ na poprawę wydajności

Etapy życia oprogramowania. Modele cyklu życia projektu. Etapy życia oprogramowania. Etapy życia oprogramowania

Wykład 1 Inżynieria Oprogramowania

Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4

Rok szkolny 2015/16 Sylwester Gieszczyk. Wymagania edukacyjne w technikum. ADMINISTROWANIE BAZAMI DANYCH kl. 4c

NAJLEPSZE STRATEGIE SKUTECZNYCH PROGRAMISTÓW. TECHNIKI PRACY Z KODEM KOD: NSKOD

Etapy życia oprogramowania

!!!!!!!!!!! PORTFOLIO: Analiza zachowań użytkowników serwisów internetowych. Autorzy: Marek Zachara

Poznaj ASP.NET MVC. Kamil Cieślak Microsoft Student Partner

Wzorce architektoniczne

Specyfikacja implementacyjna aplikacji serwerowej

Referat pracy dyplomowej

REFERAT O PRACY DYPLOMOWEJ

Szkolenie wycofane z oferty

KARTA PRZEDMIOTU. Programowanie aplikacji internetowych

Projektowanie obiektowe Wzorce projektowe. Wprowadzenie do wzorców projektowych

Katalog handlowy e-production

Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i

Spring Framework - wprowadzenie i zagadnienia zaawansowane

Narzędzia CASE dla.net. Łukasz Popiel

Forum Client - Spring in Swing

ANGULARJS TWORZENIE APLIKACJI INTERNETOWYCH

Testowanie aplikacji mobilnych na platformie Android - architektura, wzorce, praktyki i narzędzia

Usługa: Audyt kodu źródłowego

Nowoczesne projektowanie aplikacji intrnetowych - opis przedmiotu

Pytania i wyjaśnienia treści Specyfikacji Istotnych Warunków Zamówienia

Szkolenie autoryzowane. MS 6232 Wdrażanie bazy danych Microsoft SQL Server 2008 R2

Analiza i projektowanie aplikacji Java

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15

Projektowanie aplikacji z bazami danych

REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt i realizacja serwisu ogłoszeń z inteligentną wyszukiwarką

PRZEWODNIK PO PRZEDMIOCIE

Ewolucja projektowania aplikacji w PHP na bazie frameworka Symfony 2

Szkolenie. IBM Lotus - Podstawy projektowania aplikacji w Domino Designer 8.5. Strona szkolenia Terminy szkolenia Rejestracja na szkolenie Promocje

Wstęp [2/2] Wbrew częstemu przekonaniu, nie są one gotowymi rozwiązaniami, to tylko półprodukty rozwiązania.

Tworzenie witryn internetowych PHP/Java. (mgr inż. Marek Downar)

DSL w środowisku Eclipse. Grzegorz Białek Architekt techniczny, Sygnity S.A.

Ekspert MS SQL Server Oferta nr 00/08

Kompleksowe tworzenie aplikacji klasy Desktop z wykorzystaniem SWT i

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 2

Dokument Detaliczny Projektu

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

Internetowa ogólnopolska baza informatycznych projektów badawczych otwartej innowacji Platforma współpracy SPINACZ 1/46

Zagadnienia egzaminacyjne INFORMATYKA. Stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ

Zagadnienia egzaminacyjne INFORMATYKA. stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ

INŻYNIERIA OPROGRAMOWANIA

Katedra Inżynierii Oprogramowania Tematy prac dyplomowych inżynierskich STUDIA NIESTACJONARNE (ZAOCZNE)

Projektowanie obiektowe Wzorce projektowe. Gang of Four Wzorce rozszerzeń

Uniwersytet Warszawski Wydział Matematyki, Informatyki i Mechaniki. Paweł Parys. Nr albumu: Aukcjomat

URL, URI różnice i podobieństwa

Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów niestacjonarnych studiów II stopnia)

Web frameworks do budowy aplikacji zgodnych z J2EE

Zagadnienia na egzamin dyplomowy

Program szkolenia: REST i Microservices w PHP

Programowanie Zespołowe

Automatyzacja testowania oprogramowania. Automatyzacja testowania oprogramowania 1/36

CouchDB. Michał Nowikowski

Tematy seminariów wg Roger S. Pressman, Praktyczne podejście do oprogramowania, WNT, Zofia Kruczkiewicz

Instalacja SQL Server Express. Logowanie na stronie Microsoftu

Projektowanie, tworzenie aplikacji mobilnych na platformie Android

Dokumentacja projektu QUAIKE Architektura oprogramowania

Część I Tworzenie baz danych SQL Server na potrzeby przechowywania danych

PHP revisited - odświerzenie spojrzenia na programowanie w PHP

PROGRAM NAUCZANIA DLA ZAWODU TECHNIK INFORMATYK, O STRUKTURZE PRZEDMIOTOWEJ

Czym jest Ruby on Rails?

Usługi analityczne budowa kostki analitycznej Część pierwsza.

Jak efektywnie wykrywać podatności bezpieczeństwa w aplikacjach? OWASP The OWASP Foundation

Problemy optymalizacji, rozbudowy i integracji systemu Edu wspomagającego e-nauczanie i e-uczenie się w PJWSTK

Iteracyjno-rozwojowy proces tworzenia oprogramowania Wykład 3 część 1

Zagrożenia związane z udostępnianiem aplikacji w sieci Internet

PRZEWODNIK PO PRZEDMIOCIE

Web frameworks do budowy aplikacji zgodnych z J2EE. Jacek Panachida

Technologie dla aplikacji klasy enterprise. Wprowadzenie. Marek Wojciechowski

PRZEWODNIK PO PRZEDMIOCIE

Praktykant Programista ios/android/windows Phone/Windows 8/PHP/.NET (do wyboru) Biuro w Warszawie

RAPORT KOŃCOWY PROJEKTU

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

Poznań, dzień Zapytanie ofertowe

I. Opis przedmiotu zamówienia

Projekt: MS i CISCO dla Śląska

Podstawy modelowania programów Kod przedmiotu

Ruby i Ruby on Rails. Mateusz Drożdżyński

Cykle życia systemu informatycznego

Transkrypt:

Grzegorz Ruciński Warszawska Wyższa Szkoła Informatyki 2011 Promotor dr inż. Paweł Figat

Cel i hipoteza pracy Wprowadzenie do tematu Przedstawienie porównywanych rozwiązań Przedstawienie zalet i wad porównywanych rozwiązań Zakres objęty analizą Rezultaty prowadzonej analizy

Celem pracy jest przedstawienie technik i technologii informatycznych wspomagających proces projektowania i implementacji aplikacji webowych w oparciu o wzorce projektowe oraz rozwiązania ORM na podstawie porównania czterech najbardziej znanych framework ów dla PHP z zaimplementowaną obsługą wzorca architektonicznego MVC. Przeprowadzona analiza miała na celu uzasadnić szczegółowo sytuacje w których mają zastosowanie framework i, wzorce projektowe oraz inne narzędzia wspomagające proces implementacji aplikacji webowych.

Tworzenie prostych aplikacji samodzielnie, bez stosowania zewnętrznych rozwiązań jest łatwe i przyjemne. Można bez problemu szybko nanosić zmiany w kodzie. Z biegiem czasu, gdy tworzona aplikacja staje się na tyle duża, że wymaga zaangażowania nowych osób mogą wystąpić problemy z wdrożeniem tych osób w rozwój aplikacji, zwiększa się wtedy zagrożenie bezpieczeństwa aplikacji, czytelność kodu może znacznie się pogorszyć i w konsekwencji sprawić, że aplikacja będzie mało wydajna. Naprzeciw tym problemom powstały rozwiązania określane mianem framework ów, w których zaimplementowano wzorce projektowe oraz inne narzędzia takie jak ORM. Większość rozwiązań posiada bogatą bibliotekę klas, które zostały przetestowane i dają gwarancję, że kod jest wysokiej jakości. Głównym powodem dla którego stosowane są framework i jest szybkość tworzenia gotowych aplikacji. Framework i stanowią dla programistów fundamentalną strukturę do budowania aplikacji internetowych, ułatwiają pracę programistom poprzez rozwiązania, które umożliwiają szybkie postępy w pracy, przy jednoczesnym elastycznym zachowaniu tworzonej aplikacji.

Tworzenie aplikacji webowych w oparciu o wzorce projektowe, framework i, ogranicza lub likwiduje następujące problemy: Monotonia pisania kodu Zmniejsza ryzyko wystąpienia błędów Narzuca standard Przyspiesza tworzenie aplikacji

Porównywane rozwiązania

Wzorzec architektoniczny MVC

Zalety Łatwa modyfikacja widoku model jest niezależny od widoku Brak zależności modelu od widoku modyfikacja warstwy widoku nie narzuca potrzeby modyfikowania warstwy logiki Wady Duża złożoność daleko posunięta abstrakcja rozwiązania przekłada się na trudniejsze rozumienie zasad działania rozwiązania i przyszłego testowania Trudne testowanie widoków złożone widoki są trudnie do testowania jeżeli w ich budowie znalazła się dodatkowa logika Kosztowna zmiana modelu jeżeli modyfikacji ulega warstwa modelu może dojść do potrzeby modyfikacji warstwy widoku

Wymagania Instalacja i konfiguracja Dostępne funkcje, możliwości: PDO, ORM, CRUD obsługa baz danych RBAC, ACL obsługa uwierzytelniania, nadawania praw Wielojęzyczność tworzenie aplikacji wielojęzycznych Filtracja i walidacja tworzenie filtrów oraz walidatorów Routing obsługa adresów URL Rozmieszczenie katalogów, nazewnictwo plików sposób nazywania katalogów, plików, klas, metod oraz nazw tabel i kolumn w bazie danych Wydajność utworzonej aplikacji Bezpieczeństwo ochrona przed atakami SQL Injection, XSS, CRSF Testowanie i narzędzia deweloperskie narzędzia do testowania i rozbudowy aplikacji

Zalety Efektywność wymagana mniejsza ilość kodu do napisania przez programistę Wysoka jakość kodu rozwiązania posiadają dobrą organizację i logikę Niezawodność framework i są dobrze zaprojektowane i przetestowane Wady Złożoność duża złożoność przekłada się na trudniejsze opanowanie narzędzia Wydajność duża elastyczność kodu przekłada się na niższą wydajność utworzonej aplikacji

Zalety Szybkość tworzenia kodu tworzenie kodu jest szybkie Rozwiązanie niezależne od typu bazy danych utworzony kod jest niezależny od użytej bazy danych Elastyczność przy modyfikowaniu bazy danych modyfikowanie nazw i typów pól w bazie danych nie wymaga modyfikacji kodu (większości przypadków) Wady Wydajność utworzonych zapytań utworzone zapytania są mniej wydajne od tych utworzonych w standardowy sposób Problem z odwzorowania dziedziczenia i polimorfizmu Nieczytelny kod utworzony kod jest z biegiem czasu staje się coraz bardziej nieczytelny

Narzędzia deweloperskie

Testowanie kodu

Porównanie wydajności aplikacji Średnia liczba odpowiedzi serwera w ciągu jednej sekundy. Test wykonany w oparciu o narzędzie Httperf.

Wyniki prowadzonej analizy

Niniejsza praca pokazała możliwości jakie niosą porównywane rozwiązania ich mocne i słabe strony, jak również szanse i zagrożenia związanie z wykorzystaniem tych narzędzi w codziennej pracy. Przeprowadzona analiza potwierdziła przydatność rozwiązań framework owy w tworzeniu aplikacji webowych, ich duży wpływ w szybkość, elastyczność, ergonomie i innowację w tworzeniu ciekawych aplikacji. Tworzenie aplikacji w oparciu o framework i, narzędzia ORM może stanowić duży problem dla nowych użytkowników, praktycznie każdy produkt jest dobrze opisany, posiada łatwy dostęp do materiałów, ale duża dynamika zmian niektórych produktów może prowadzić do ciągłego uczenia się ich obsługi i poświęcania na to zadanie cennego czasu, co w dzisiejszych czasach może stanowić duży problem, lecz czas ten poświęcony na naukę obsługi framework a zwróci się w postaci szybko utworzonej aplikacji z gwarancją wysokiej jakości wykonanego kodu.