magisterka-13.09.200..

advertisement
1. Wstęp
Od zarania dziejów człowiek na każdym kroku starał się ułatwiać sobie życie. Zaczęło
się od prostych narzędzi i doszło do samolotów, elektroniki i wszystkich wynalazków
którymi możemy się cieszyć na co dzień.
Odkąd wynaleziono komputery zawsze był problem z ich szybkim programowaniem.
Wszyscy słyszeliśmy o kartach perforowanych, językach niskiego poziomu takich jak
Asembler i wielu innych rozwiązaniach które w końcu zostały wyparte w efekcie
rozwoju technologicznego i nowych zastosowań jakie elektronika wzięła na swoje
barki. Pojawiła się potrzeba uproszczenia procesu programowania. Pojawiły się języki
wysokiego poziomu, takie jak C, C++, Pascal, których kompilatory przejmowały na
swoje barki większość procesu zarządzania niskopoziomowymi funkcjami procesora,
takimi jak wykorzystanie rejestrów lub kontrola nad wykorzystaniem pamięci.
Pojawiły się jednak nowe potrzeby. Wachlarz zastosowań maszyn liczących rozrósł się
do ogromnych rozmiarów. Takich, że w tej chwili nikt nie jest w stanie być specjalistą
w każdej dziedzinie związanej z informatyką. Komputer zaczął pełnić role nie tylko
edytora tekstów lub maszyny liczącej. Stał się również centrum domowej rozrywki.
Pojawiły się nowe technologię, nowy sprzęt nad którym trzeba było jakoś efektywnie
zapanować. Pojawiły się interfejsy API i Framework-i. API służą do komunikowania
się jednego systemu z innym. Może to być komunikacja oprogramowania z
oprogramowaniem jak również oprogramowania ze sprzętem. Do najpopularniejszych
interfejsów API należą np.: Windows API, OpenGL, DirectX. Framework-i natomiast
to rozszerzenia języków programowania pozwalające, na skróty, realizować najczęstsze
dla danego języka zadania. Jednymi z bardziej znanych Framework-ów są: .NET, Ruby
on Rails, CakePHP, NetBeans, Zend Framework, Prototype.
W mojej pracy magisterskiej postanowiłem się skupić na Framework-ach języków
skryptowych PHP i JavaScript. Postaram się przybliżyć nieco ich zastosowanie i
możliwości które dają programiście na przykładzie aplikacji aukcji internetowych.
Pokaże jak w bardzo krótkim czasie można stworzyć aplikację która po drobnych
modyfikacjach i rozbudowaniu mogłaby stanowić świetną platformę dla handlu
internetowego.
Tezą mojej pracy mogłoby być zdanie: Można w przeciągu miesiąca stworzyć
bezpieczny system aukcji internetowych korzystając z najnowszych technologii i
najpopularniejszych Framework-ów języków skryptowych. Innymi moimi celami są np.
przyjazny interfejs użytkownika, możliwie szerokie wykorzystanie technologii AJAX
1
(zapewniającej mniejsze obciążenie serwera i znacznie poprawiającą wygodę
użytkowania aplikacji www) i wdrożenie nowatorskiego sposobu licytacji nie
spotykanego w żadnych serwisach aukcyjnych istniejących w naszym kraju. Kod
aplikacji będzie zgodny ze wszystkimi ogólnie przyjętymi standardami w sieci (np.
każda pod strona musi się poprawnie walidować).
W mojej pracy omówię szerzej niektóre dostępne darmowe Framework-i języków PHP
i JavaScript oraz nakreślę szerzej problemy związane z projektowaniem serwisów www
ze szczególnym uwzględnieniem systemów aukcji internetowych. Praca będzie
zawierać
szczegółowy
opis
projektowania
i
implementacji
systemu
aukcji
internetowych. Na zakończenie podsumuję efekt zastosowania wykorzystanych
technologii.
2
2. Framework-i języków skryptowych
Framework-i języków skryptowych zostały stworzone w odpowiedzi na rosnące
wymagania rynku. Zastosowania stron www rozrastają się w niesamowitym tempie. Nie
ma mowy już żeby jakikolwiek liczący się serwis mógł się obejść bez dynamicznie
zmieniającej się zawartości, systemu rozbudowy treści przez samych użytkowników,
pod stron które dynamicznie reagują na poczynania użytkownika i takich elementów jak
ankiety, kanały rss lub animacje. Aplikacje internetowe coraz bardziej przypominają te
znane nam z Windows-ów. Całe to zamieszanie określane jest szumną nazwą Web 2.0.
Bez języków skryptowych działających zarówno po stronie serwera jak i po stronie
przeglądarki nie dało by się zrealizować tej koncepcji. Natomiast bez Framework-ów
nie dało by się zrealizować jej w rozsądnym czasie.
Framework-i załatwiają mnóstwo zadań które wcześniej programiści musieli realizować
praktycznie od zera korzystając tylko ze standardowych funkcji jakie zapewniają
skryptowe języki programowania. Takimi zadaniami są np.:

Komunikacja z bazą danych

Autentykacja użytkowników

Zarządzanie datami i walutami

Obsługa kanałów rss

Obsługa plików

Wyświetlanie zawartości

Obsługa zadań związanych z pocztą email

Catcheowanie zawartości

Walidacja danych przesyłanych przez użytkownika
Przy zastosowaniu Framework-ów ilość kodu do wpisania zmniejsza się często nawet o
połowę, a jakość i czytelność kodu jest bez porównania lepsza. Framework-i poza
opisanymi wcześniej zaletami zwiększają również bezpieczeństwo aplikacji skrzętnie
filtrując dane które np. wprowadzamy do bazy danych. Jeśli korzystamy np. z gotowego
systemu autentykacji, nie ma mowy o pomyłkach w postaci pozostawienia otwartych
drzwi dla ataków typu SQL injection.
Framework-i języka javascript pozwalają na szybszy dostęp do elementów interfejsu
DOM strony internetowej oraz zapewniają gotowe rozwiązania dla połączeń
asynchronicznych stosowanych w technologii AJAX.
Wszystko to sprawia, że w przeważającej większości przypadków wykorzystanie
Framework-ów do programowania serwisów internetowych ma bardzo dobre
uzasadnienie.
3
Jeśli są zalety to muszą być też wady i niestety jak zwykle tak jest i w tym przypadku.
Wykorzystanie framework-ów łączy się niestety z lekkim spadkiem wydajności
serwisów. Jest to związane z niejednokrotnie niemałym narzutem operacji
wykonywanych przez serwer http. W większości przypadków, jednak, zwiększenie
czasu generowania strony www jest pomijalne i korzyści wynikające z zastosowania
gotowego rozwiązania ogromnie przewyższają wady.
2.1 Framework-i PHP
2.1.1 Zend Framework
4
Download