notatki W1


ZWINNE PROGRAMOWANIE  Agile software
development
o wytwarzanie oprogramowania w oparciu o programowanie iteracyjne
(czynności wykonywane w każdej iteracji)
·ð testowanie
·ð zebranie wymagaÅ„
·ð rozwiÄ…zania
o wymagania i rozwiÄ…zania ewoluujÄ…
o inspekcje wymagań
o brak rozbudowanej dokumentacji
o brak hierarchii
o szybkość wytwarzania oprogramowania
o okresowe dostarczanie oprogramowania
o bliska współpraca, bezpośredni kontakt
o adaptacja do zmian
LOOP
o Late  przekroczony termin
o Over Budget  przekroczony budżet
o Overtime - nadgodziny
o Poor quality  niska jakość
XP  Extreme Programming  Programowanie Ekstremalne
(twórca: Kent Beck)
ZALETY: XP
üð Nie piszemy dokumentacji Ä…ð komunikacja ustna
üð Brak specyfikacji wymagaÅ„ Ä…ð kod + przypadki testowe
üð Brak f. Albrechta Ä…ð gra planistyczna (rozmowa z klientem)
üð Brak inspekcji Fagana Ä…ð programowanie parami
üð & Ä…ð Krótkie wydania
ZAGROŻENIA:
ż Programowanie parami
ż Pielęgnacja oprogramowania (brak dokumentacji)
ż Złe planowanie (nie ma okresów dłuższych niż 1-2 mies)
ż Niespełnialne założenia
FAZY CYKLU ŻYCIA PROJEKTU XP
o Eksploracja (temat pracy, podstawowe inf. od klienta, zarys architektury i
funkcjonalności)
o Planowanie (analiza inf., harmonogram prac)
o Iteracje wykonawcze (implementacja, kodowanie, testowanie)
o Przygotowanie do produkcji (wdrożenie, uwagi użytkownika, dodatkowe testy)
o Utrzymanie w ruchu (nadzór, tworzenie ew. kolejnej wersji oprogramowania)
o Zakończenie projektu (dokumentacja systemu i projektu)
MODEL MVC (Model  View  Controller)
o Model  rdzeń aplikacji
o Widok  wyjście interfejsu użytkownika
o Kontroler  wejście interfejsu użytkownika
Separacja prezentacji i modelu  umożliwia zmianę interfejsu użytkownika bez
potrzeby modyfikacji modelu
Separacja widoku i kontrolera  umożliwia zmianę kontrolera bez konieczności
modyfikacji widoku
MODEL  Cechy i własności:
o Odpowiedzialny za tzw. logikÄ™ biznesowÄ…
o Sposób przechowywania danych nie jest istotny
o Szczegóły implementacyjne resztą aplikacji
o Dostarczać innym komponentom spójny interfejs
o Implementacja Ä…ð oddzielne klasy dla logicznych obiektów
o Informacje w BD Ä…ð 1 klasa odpowiada 1 tabeli
o Odporny na wewnętrzne zmiany
o Zmiana struktury danych nie zmienia interfejsu
o Model powinien być PRZENOŚNY (łatwe przeniesienie kodu do nowej
aplikacji)
WIDOK:
o Wyświetla (prezentuje) dane
o Format wyjściowy dla aplikacji internetowych (X)HTML
o Wykorzystuje model do pobrania danych (instancje klas, aby wywołać
odpowiednie metody)
o Nie zmienia stanu aplikacji
o Implementacja w postaci wielu klas, po jednej na każdą stronę, dokument,
plik&
o Powinien być WYMIENNY (zmiana wyświetlanych danych powinna być
osiÄ…galna przez prostÄ… wymianÄ™ klas widoku)
STEROWNIK:
o Centrum dowodzenia aplikacji
o Przechwytuje żądanie HTTP i wie co należy wykonać (akcja) i wyświetlić
(widok)
o Pozostaje bez zmian (część biblioteki)
o Powinien być jeden w całej aplikacji webowej
o Skrypt, który korzysta z danych zawartych URL-u lub POST
o Dobrze skonfigurowany Ä…ð plik konfiguracyjny
o Ma zaimplementowane akcje (pojedyncza czynność, np. dodaj użytkownika) Ä…ð
implementowana jako klasa
o Zmiana w modelu za pośrednictwem akcji
FRAMEWORK-i
Øð PHP Symfony
o Oddziela od siebie logikÄ™ biznesowÄ…, model danych i interfejs
użytkownika
o Kompatybilny z serwerami baz danych
o Działa na platformach  unixopodobnych i  windowsowych
o Język PHP5
o Wzorzec projektowy MVC
o OOP - Object-Oriented Programming
o Niezależny od RDBMS
o Walidacja
o ZarzÄ…dzanie sesjami
o Aatwość rozbudowy
o Technologia SCAFFOLDINGU (programista pisze specyfikacjÄ™
opisującą strukturę i zależności w bazie danych, a generator buduje kod
umożliwiający tworzenie, czytanie, aktualizowanie i usuwanie wpisów w bazie
danych
o Ochrona przed atakami
żð CSRF Cross-site request forgery (skÅ‚onienie użytkownika
zalogowanego do serwisu internetowego, aby uruchomił odnośnik,
którego otwarcie wykona w owym serwisie akcję, do której atakujący
nie ma dostępu)
żð XSS Cross-site scripting (osadzeniu w treÅ›ci atakowanej strony
kodu, np. JavaScript, który wyświetlony innym użytkownikom może
doprowadzić do wykonania przez nich niepożądanych akcji)
Øð MODEL W SYMFONY
o Model MVC realizowany za pomocÄ… ORM (Object-Relational
Mapping) oraz abstrakcyjnÄ… bazÄ™ danych
Øð WIDOK W SYMFONY
o Składa się z oddzielnych części
żð Szablony (prezentacja danych pochodzÄ…cych z aktualnej akcji)
żð WyglÄ…d (Layout)
żð Komponenty
żð Sloty
żð Ustawienia odpowiedzi (response) oraz obiekt resposne
Øð KONTROLER W SYMFONY
o Podział na kilka komponentów
żð Front controller  jest punktem wejÅ›cia aplikacji
żð Akcje  zawierajÄ… logikÄ™ aplikacji
żð Obiekty żądania, odpowiedzi oraz sesji 
udostępniają parametry żądania, nagłówki odpowiedzi i
trwałe dane użytkownika
żð Filtry  fragmenty kodu wykonywane przy każdym
żądaniu, przed i po wykonaniu akcji
Øð ASP .NET MVC
o Korzysta z MVC
o Nie ma modelu zdarzeniowego i kontrolek serwerowych
o Usuwa code behind
o Separacja warstw TDD (Test-Driven Development)
o Wzorce rutowania
Øð KONTROLER W ASP.NET MVC
o Klasa z metodami
o Obsługa żądań przeglądarki
o Wynik akcji ActionResult
Øð WIDOK W ASP.NET MVC
o Wyświetla interfejs
o Bazuje na danych zawartych w modelu
Øð Ruby on Rails (RoR, Rails)
o Architektura MVC
o Język Ruby
o Typ open source
JZYK RUBY
o Zbalansowanie programowania funkcjonalnego i imperatywnego
o Zmienna instancji Ä…ð @name
o Obiekt Ä…ð g = Greeter.new(  Pat  )
RUBY A JAVA  PODOBIECSTWA
o Pamięć zarządzana przez garabge collector
o Obiekty silnie typowane
o Metody publiczne, prywatne, chronione
o Wbudowane narzędzia dokumentujące
RUBY A JAVA  RÓŻNICE
o Brak kompilacji
o end zamiast }
o require zamiast import
o atrybuty prywatne
o wszystko jest obiektem
o brak deklaracji typów
o brak konieczności rzutowania
o konstruktor Ä…ð initialize
o domieszkowanie klas (maxin s)
o YAML zamiast XML
o Nil zamiast null
ZAAOŻENIA ROR
o DRY (Don't Repeat Yourself) - unikanie powtarzania tej samej pracy
w różnych miejscach
o Convention Over Configuration
o Możliwość używania wtyczek
BUDOWA ROR
o ActiveRecord  odpowiada za tworzenie modeli w architekturze MVC
o ActionPack  biblioteka zawierajÄ…ca klasy:
o ActionController (tworzenie kontrolerów)
o ActionView (tworzenie widoków)
o ActiveSupport  zbiór użytecznych
o ActionMailer  biblioteka służąca do wysyłania wiadomości


Wyszukiwarka