POWRÓT NA STRONĘ SZKOŁY

Programowanie proceduralne i obiektowe

Schemat blokowy pokazany na ostatnich zajęciach prezentował prościutki programik. Ale małe poprzedza wielkie - inaczej się nie da. Tak było również z rozwojem programów. Na początku były programy proste, które zaczynały "działać" z chwilą wprowadzenia danych, aby na koniec pokazać wynik obliczeń. Bardziej złożone programy dawały użytkownikowi wybór opcji, zatrzymywały się, ich wykonanie w niektórych fragmentach miało charakter pętli, niemniej ich przebieg przypominał jazdę zamochodem z miasta A do miasta B. Jadąc wykonujemy postoje, mamy wybór dróg, niekiedy zawracamy i czasami musimy kluczyć, aby załatwić coś po drodze. Co byśmy jednak nie robli po drodze, to sens jest jeden - dotrzeć z punktu A do punktu B. Ponieważ kody zaczęły liczyć po kilkaset tysięcy wierszy, zaczęto myśleć jak je zracjonalizować. Powstały pojęcia procedur i funkcji, aby fragmenty kodu można było wykorzystywać wielokrotnie - w jednym miejscu znajduje się nazwany fragment kodu, natomiast w innych miejscach, wystarczy podać samą nazwę, bez przepisywania kodu. W PHP mamy tylko funkcje, co nie umniejsza możliwości tego języka. Stąd powtało określenie programowania proceduralnego. Wraz z "rozrastaniem" się programów zaczęto gromadzić procedury i funkcje w większe bloki - moduły. Przy takiej organizacji kodu, zaczęto mówić o programowaniu strukturalnym. Wiele z tego co zostało tu powiedziane stosuje się do dzisiaj - na przykład stosowanie funkcji, które dokładnie poznamy w dalszym toku nauki, czyni program przejrzystym i łatwym w utrzymaniu.

Prawdziwym przełomem w technikach programowania było podejście obiektowe. W tym miejscu wyjaśnię ogólne jego znaczenie. Co to są obiekty? Najlepiej wytłumaczyć na podstawie obiektów wizulanych, a więc tych które widzimy w danej aplikacji. Może to być na przykład menu, przyciski, obiekty które możemy przeciągać myszką, pola opcji, itp, itd. Najważniejsze jest to, że sam obiekt nic nie robi "sam z siebie" - czeka na działanie użytkownika (lub programisty), który generuje zdarzenia. Co to są zdarzenia? na przykład ruch kursora myszki nad obiektem, czy kliknięcie obiektu. Wciśnięcie klawisza klawiatury, to również zdarzenie. Działanie aplikacji także generuje zdarzenia - na przykład podczas jej otwierania lub zamykania. Obiekt posiada również właściwości - na przykład rozmiary, położenie, kolor, itp. Tworząc program obiektowy, oprogramowujemy zdarzenia, nadając obiektowi, jeżeli jest taka potrzeba, odpowiedznie właściwości - na przykład podczas wskaznia przycisku myszką, zmienia on kolor. Dzięki takiemu podejściu, programiście jest o wiele łatwiej "opanować" kod programu. Takie podejście zrywa z liniowym wykonywaniem programu, program jest dynamiczny - wykonuje polecenia użytkownika, których może być bardzo wiele. Obiekty posiadają również metody, które są niczym innym jak procedurami i funkcjami wykonującymi różne operacje związane z obiektem. Niektóre metody są dostępne spoza obiektu, inne tylko w obrębie obiektu, podobnie jest z danymi przetwarzanymi przez program. To się wiąże z tak zwaną hermetyzacją - to się dzieje wewnątrz obiektu, na zewnątrz jest niewidoczne. Biorąc jeszcze pod uwagę, że raz zdefiniowany obiekt możemy stosować wielokrotnie, np. kilka przycisków, oraz fakt, że w obiektach występuje dziedziczenie (obiekty bardziej złożone są potomkami prostszych, dziedzicząc ich metody) widzimy, że zastosowanie obiektów, dosłownie zrewolucjonizowało programowanie.

W PHP będziemy w większości przypadków posługiwali się programowaniem proceduralnym, ponieważ nasze programy będą bardzo proste. Nie zapomnimy jednak o PHP obiektowym - będzie ono również dokładnie opisane. Programowanie typowo obiektowe zastosujemy ucząc się podstaw JavaSript.

Praca domowa

Opisz w zeszycie, własnymi słowami na czym polega programowanie proceduralne, a na czym obiektowe.