Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Tworzenie Aplikacji Internetowych dr Wojciech M. Gańcza 1.

Podobne prezentacje


Prezentacja na temat: "Tworzenie Aplikacji Internetowych dr Wojciech M. Gańcza 1."— Zapis prezentacji:

1 Tworzenie Aplikacji Internetowych dr Wojciech M. Gańcza 1

2 Cel Nauczenie się tworzenia aplikacji Wypracowanie metod pracy nad większym programem Poznanie metod i metodologii używanych w praktyce programistycznej Wykształcenie umiejętności pisania w sposób prosty, jasny i możliwy do poprawiania nie tylko przez autora

3 A co celem nie jest Nauczenie znaczenia poszczególnych znaczników HTML. To jest dostępne w podręcznikach Zapamiętanie jakie elementy dopuszczają jakie atrybuty CSS2 Poznanie całej struktury DOM dla JavaScript-u Nauczenie się budowania złożonych zapytań w języku SQL

4 Plan pracy Wybór zagadnienia Wybór narzędzi Przygotowanie programu (w pętli) Analiza problemu Prototypowanie Testowanie Programowanie funkcjonalności Testy funkcjonalne Testy akceptacyjne

5 Wybór zagadnienia Aby nauczyć się budowy aplikacji – powinniśmy pisać aplikację – a więc nie stronę lub strony internetowe. Nie bazę danych z interfejsem – ale aplikację. Zagadnienie powinno być proste – ale nietrywialne. No i przydatne. Proponuję: Program do obsługi giełdy podręczników szkolnych

6 Wybór narzędzi Środowisko serwerowe: LAMP Linux, Apache, MySQL, PHP Dowolny edytor tekstowy do edycji kodu źródłowego System kontroli źródeł (SVN ?) Przeglądarki – kilka!

7 Pierwsza analiza problemu Uczniowie powinni wiedzieć jakie książki powinni kupić – lista książek powinna być zintegrowana z programem. Uczniowie powinni mieć możliwość sprzedawania niepotrzebnych książek i kupowania potrzebnych. Zmiana klasy powinna być prosta, bez konieczności zaznaczania i odznaczania książek.

8 Analiza -wyniki Podręczniki są pogrupowane w listy Uczeń może dołączyć sobie dowolną liczbę list podręczników Program prowadzi rejestr książek które użytkownik aktualnie posiada Zmiana przypisania do list nie może zmienić stanu posiadania książek Program pozwala na wyświetlenie czy książka jest potrzebna czy nie

9 Przypadki użycia Zamiast rozpisywać wszystkie możliwości akcji jakie może wykonać użytkownik będziemy rozpatrywać jedynie przypadki użycia. Wyniki analizy zapiszemy jako konkretne akcje użytkownika oraz wyniki jakie wyświetli program Implementujemy te przypadki użycia które są istotne i popularne.

10 Przypadek użycia nr 1 Użytkownik włącza aplikację Aplikacja wyświetla listę książek zaznaczając które książki użytkownik potrzebuje, których z nich nie ma, a także które książki ma, a są mu niepotrzebne. Użytkownik w poczuciu bycia dobrze poinformowanym – wyłącza aplikację.

11 Prototyp Reguła: Każdy pisany program jest dla autora pełen niespodzianek i nowości. Gdyby było inaczej – byłby już napisany a więc praca nad nim byłaby całkowicie niepotrzebna. Jeśli czegoś nie znamy – musimy to poznać – najlepiej próbując. Takie próby nowych technologii, testy funkcjonalności funkcji, elementów języka i bibliotek – to prototypy

12 Prototyp c.d. Budując prototyp sprawdzamy środowisko. Warto więc przygotować prototyp który sprawdzi czy działa PHP, czy przeglądarka interpretuje style napisane w formacie CSS2 i czy działa połączenie z bazą danych Prototypy nie muszą być pisanie porządnie – są tylko po to by sprawdzić czy umiemy coś zrobić ŻADNEGO PROTOTYPU NIE KASUJEMY !

13 Organizacja pracy Nasza aplikacja będzie się rozwijać, i warto zadbać o łatwość jej uruchamiania Oprócz samej aplikacji potrzebujemy: Dostępu do wszystkich prototypów Możliwości szybkiego testowania kodu Tworzenia bazy danych oraz danych testowych Dokumentowania postępu prac Te elementy są także stronami WWW

14 Organizacja pracy c.d. Każdemu elementowi warto przyporządkować katalog W miarę postępu prac – dodawać będziemy inne katalogi – na przykład na dane do testów importu Aplikację nad którą pracujemy umieszczamy także w podkatalogu – łatwo będzie robić jej kopie dla poszczególnych działających werji aplikacji

15 Testowanie Testujemy KAŻDĄ możliwą funkcjonalność – łącznie z wyglądem strony Testy piszemy PRZED implementacją Testy to wywołania funkcji i sprawdzenie wyników Testy są przykładem jak używać poszczególnych funkcji i klas Testujemy zawsze CAŁĄ funkcjonalność

16 Programowanie Wreszcie czas na programowanie – przygotujmy widok listy książek. Wyniki zaprezentujemy w postaci tabelki Dane do tabeli powinny pochodzić z bazy danych – ale na razie bazy nie mamy. Pamiętajmy, że działanie tabeli powinno być testowalne!

17 Baza danych czy interfejs Dla trzymającego w rękach młotek – każdy problem wygląda jak gwóźdź. Co więc jest najważniejsze w programie? Dobrze wyglądający i wygodny interfejs użytkownika ? Poprawnie zaprojektowana i efektywna baza danych ? A może coś innego …

18 Porządnie – czyli obiektowo Wszystkie elementy programu przygotujemy jako klasy. Obiekty możemy wymieniać zachowując interfejsy. Interfejsy powinny udostępniać maksymalną funkcjonalność przy najprostszej konstrukcji Obiekty powinny mieć proste i oczywiste funkcjonalności

19 Czy to nie będzie zbyt wolne? Możliwe że będzie, ale… Uporządkowany kod pozwoli na łatwą modyfikację programu Szybciej będziemy mogli dokonywać przeróbek Jeśli będzie trzeba aplikację przyspieszyć – można to zrobić bez problemu na koszt klienta :-) Porządków na koszt klienta zrobić się nie da

20 Pierwsza klasa - Wyjście W języku PHP tekst jest wysyłany do przeglądarki poleceniem echo.

21 Wyjście – po co nam to? Pisząc wyjście jako klasę – możemy przekierować wyjście – na przykład do tekstu – by go porównać ze wzorcem. W ten sposób możemy testować działanie programu – zamiast wyświetlać wynik – możemy sprawdzać czy wyniki są takie jak być powinny

22 Wyjście testowe Zamiast porównywać cały tekst – możemy sprawdzić sumę kontrolną Wszystkie elementy które będziemy wyświetlać na ekranie przeglądarki – mogą być sprawdzane. Jeśli cokolwiek napiszemy – dodajemy to od razu do testów – by móc sprawdzać wyniki działania

23 Wyjście testowe

24 Interfejsy Warto na początku ustalić podstawowe interfejsy klas. Na początek potrzebujemy dwie klasy: Źródło danych do tabeli – dane które będziemy wyświetlać Formater tabeli – klasa która przerobi dane na opis w języku HTML – a więc wyświetli dane w postaci tabeli

25 Interfejs wyświetlania Każda klasa której obiekty wyświetlają coś na ekranie przeglądarki maja metodę: function render(&$output) Wyjście przekazujemy przez referencję – to ważne w przypadku wyjścia testowego

26 Interfejs źródła danych Źródło danych powinno dostarczać dane w postaci tablic – dla każdego rzędu – tablica function get() ; function eof() ; Pierwsza metoda zwraca dane, Druga – informację czy są jeszcze dane.

27 Podział na pliki Zazwyczaj klasy umieszczane są w oddzielnych plikach Ma to znacznie gdy grupa osób pracuje nad projektem Nazwy plików powinny odpowiadać nazwom klas Jeśli plików jest dużo – używamy katalogów

28 Klasa GridRenderer Klasa rysująca tabelkę z danych jest bardzo prosta – przekazujemy jej dane w postaci obiektu będącego źródłem danych Ma metodę render – która umieszcza w wyjściu kod HTML zawierający dane z wejścia.

29 Klasa DataSource Implementuje interfejs źródła danych Nie czyta danych – używa zapisanych na stałe wartości umieszczonych w tablicach. Warto przygotować sobie takie źródło – przyda się później do testów.

30 Aplikacja Nasza aplikacja ma teraz postać: $out = new Output(); $dat = new DataSource(); $grd = new GridRenderer(&$dat); $grd->render($out); Prawda, że proste?

31 W kolejnym odcinku… Jak napisać knkretną implementację GridRenderer DataSource Piszemy pierwszy test A może nawet… przygotowujemy środowisko testowe Jak do tabelki dodać nagłówki Pofantazjujemy o formatowaniu danych I wiele, wiele innych…


Pobierz ppt "Tworzenie Aplikacji Internetowych dr Wojciech M. Gańcza 1."

Podobne prezentacje


Reklamy Google