Skocz do zawartości

Programowanie obiektowe vs strukturalne.


Tomahawk

Rekomendowane odpowiedzi

Witam!

Od dawna pisalem skrypty strukturalnie.

Niedawno jednak zapalalem chęcią programowania obiektowo i tak wlasnie poznalem OO przy pomocy kilku książek.

Mam teraz taki problem że pomimo tego iż wiem jak pisać obiektowo to niewiem kiedy wlasnie tak pisać a kiedy strukturalnie (dla mnie normalnie).

W wielu skryptach for, cmsów, i innych zauważylem że wszędzie jest pelno klass.

Ale zauważylem też że można ja zastąpić bardzo prostymi funkacjami albo wcale nie używać.

Np. taka klasa do bazy danych mysql skladająca się zaledwie z ok. 100 wierszy i z dziesiątek warunków elseif... a w kodzie calej aplikacji zaledwie 15-20 miejsc gdzie wystepuje zapytanie do bazy danych.

Jak wogóle ma się programowanie obiektowe do wydajnosci aplikacji?

Oplaca się bardziej pisać obiektowo czy strukturalnie?

Odnośnik do komentarza
Udostępnij na innych stronach

  • Odpowiedzi 34
  • Dodano
  • Ostatniej odpowiedzi

i znacznie łatwiej pracuje się w zespole, zwłaszcza przy duzych aplikacjach.

Moje staruszki po liftingu, darmowe, zgodne z wytycznymi G, responsywne!

Katalog stron firm Zorb -/- Katalog sklepów Świat Zakupów -/- Katalog firm ProBi. PS Nie łatwo się dodać. ;)

A jeśli lubisz technologię, zwłaszcza bezzałogowce, to w wolnej chwili zajrzyj na InfoDron - info.dron.pl

Odnośnik do komentarza
Udostępnij na innych stronach

A więc tak.

Obiektowość.

Zalety:

- wygoda

- łatwa modyfikacja kodu

Wady:

- wolniej się wykonuje w porównaniu z kodem strukturalnym

Strukturalność.

Zalety:

- szybsze wykonywanie skryptów

Wady:

- nieporządek, chaos w kodzie

- trudna modyfikacja, gdy programista nie zagląda długo do kodu może się pogubić ;)

Polecam obiektowość.

Nie dyskutuj z debilem! Najpierw sprowadzi Cię do swojego poziomu, a potem pokona doświadczeniem.

Medal of Honor | program telewizyjny

Znajomości: PHP, MySQL, PgSQL, AJAX. Nauka: pozycjonowanie :-)

Odnośnik do komentarza
Udostępnij na innych stronach

A jak już piszesz w OOP to tylko i wyłącznie w PHP5 - tutaj zaczyna się obiektowość. Jednak też nie w pełni, podobno dopiero w "szóstce" ma być coś ciekawszego ;)

Należy też pisać z głową.

Gry internetowe (Travian,oGame itd) są napisane obiektowo, by łatwiej się je modyfikowało. Jednak takie rzeczy jak cache zapytań do bazy, cache strony czy też porządna optymalizacja (całego skryptu jak i serwera) to podstawy. Popatrz jak jest napisany Zend Framework - są tam na prawdę interesujące "odkrycia" w OOP :)

Ja tylko i wyłącznie piszę w OOP. Chyba, że są to małe skrypty ale takie to pisze się przeważnie w Notatniku :-)

Nie dyskutuj z debilem! Najpierw sprowadzi Cię do swojego poziomu, a potem pokona doświadczeniem.

Medal of Honor | program telewizyjny

Znajomości: PHP, MySQL, PgSQL, AJAX. Nauka: pozycjonowanie :-)

Odnośnik do komentarza
Udostępnij na innych stronach

  • 3 tygodnie później...

Dyskusja o OOP w PHP już była. Warto przejrzeć :https://www.forum.optymalizacja.com/index.php?showtopic=9781

OOP pojawił się z potrzeby lepszego modelowania świata. Wszak np. takie połączenie z bazą danych posiada stan (id, nazwę bazy, usera) oraz metody (połącz, rozłącz itd.). Strukturalnie też projektowano to zachowując konwencje nazewniczą pomagającą zarządzać kodem. Wprowadzenie OOP było krokiem ułatwiającym i systematyzującym te techniki.

Owczywiście ostatnie zdanie to przenośnia, gdyż OOP wziął się z innego paradygmatu, ale pozwala zrozumieć o co w tym chodzi. Tak mi się wydaje.

Oficjalna strona serii Football Manager ( FM 2005, FM 2006 ) - CM Revolution

Forza MLKS Woźniki Śląskie!

Odnośnik do komentarza
Udostępnij na innych stronach

  • 6 miesięcy temu...

Ech nie moge się przesiąśc na OO bo cięgle mi się wydaje że strukturalnie jest lepiej pisać.

Np chciałem sobie zrobić klasse do zapytań sql. Luknąłem w kod punBB (taki skrypt forum) bo akurat miałem pod ręką i wydaje mi się że to bez sensu.

W punBB jest klasa do bazy danych ale mniejsza oto.

Mam taki kod:

$result = $db->query('treść zapytania']) or error('Unable to fetch user information', __FILE__, __LINE__, $db->error());

$pun_user = $db->fetch_assoc($result);

Nie wiem poco tu takie ceregiele skoro można to zastąpić strukturalnym php i będzie szybciej.

$result=mysql_query('treść zapytania')or error('Unable to fetch user information', __FILE__, __LINE__, $db_error);

$pun_user=mysql_fetch_assoc($result)l

Co wy ludzie widzicie w tym programowaniu obiektowym. Najlepiej na przykładach.

Odnośnik do komentarza
Udostępnij na innych stronach

No to przypuśćmy, że chcesz sobie potem dodać do projektu np. zliczanie czasu wykonywania SQL, proste cache albo zmienić engine bazy na postgre.

Jeśli napiszesz odwołania do bazy strukturalnie (mysql_query...) to będziesz cały projekt w takich wypadkach pisał od nowa, albo wprowadzał te same zmiany w 50 miejscach. Poza tym programowanie OO zapewnia separację zmiennych (jak do projektu dołączysz kod pisany strukturalnie to może się zdarzyć tak, że akurat ten kod nadpisze jakąś zmienną zadeklarowaną wcześniej i wszystko się posypie, albo będzie zawierał jakąś funkcję którą ty wcześniej zadeklarowałeś do czegoś innego i w ogóle tego kodu nie włączysz).

Odnośnik do komentarza
Udostępnij na innych stronach

No to przypuśćmy, że chcesz sobie potem dodać do projektu np. zliczanie czasu wykonywania SQL, proste cache albo zmienić engine bazy na postgre.

O widzisz to jest powód!:) Na takie coś czekałem! Wielkie dzięki. Sam na to nie wpadałem. Teraz przy większych skryptach napewno się wyposażę w klase do bazy danych.

Jeszcze jakieś powody? Jakie jeszcze klasy by się przydały np. przy skrypcie forum?

Odnośnik do komentarza
Udostępnij na innych stronach

No to przypuśćmy, że chcesz sobie potem dodać do projektu np. zliczanie czasu wykonywania SQL, proste cache albo zmienić engine bazy na postgre.

Jeśli napiszesz odwołania do bazy strukturalnie (mysql_query...) to będziesz cały projekt w takich wypadkach pisał od nowa

znaczy się funkcji nie ma w programowaniu strukturalnym ??? czy co ??

Klasy oznaczają wyższy poziom abstrakcji. Tak naprawdę rzadko w PHP pisze się programy w pełni obiektowe - z drugiej strony operacje na klasach odpowiadające określonym zagadnieniom bywają wygodne. Od kilku lat chyba nieźle sprawdza się hybryda "struktury" i obiektów używana na potrzeby PHP.

Odnośnik do komentarza
Udostępnij na innych stronach

www.phpclasses.org Miejsce gdzie warto zacząć poszukiwania klas w PHP zanim zacznie sie wyważać otwarte drzwi.

Co do pisania obiektowego to żeby to docenić należy trochę popisać strukturalnie i obiektowo i wtedy sie wie dlaczego to jest lepsze od pisania strukturalnego.

Obektowość jest naturalnym rozwojem programowania. Coraz bardziej skaplikowane potrzeby tworzą coraz bardziej skaplikowane programy.

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności