![]() ![]() |
Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 141 Pomógł: 7 Dołączył: 22.02.2009 Ostrzeżenie: (0%)
|
mam pytania odnoście tych 2 rodzajów programowania w PHP
programowanie obiektowe jeśli chodzi o serwisy ww gdzie znajdzie zastosowanie ? większość CMSów jest pisane metodą strukturalną ? w jakich przypadkach lepiej używać jednego lub drugiego ? |
|
|
|
Post
#2
|
|
|
Grupa: Moderatorzy Postów: 4 069 Pomógł: 497 Dołączył: 11.05.2007 Skąd: Warszawa |
//większość CMSów jest pisane metodą strukturalną ?
to czy cms będzie pisany oop zależy od tego kto go pisze (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) lepiej oop przy mega małych stronkach można się ograniczyć do strukturalnego programowania, przy reszcie lepiej oop |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 316 Pomógł: 36 Dołączył: 2.04.2008 Ostrzeżenie: (0%)
|
Cytat programowanie obiektowe jeśli chodzi o serwisy ww gdzie znajdzie zastosowanie ? Duże aplikacje tylko w OOP. Łatwiej można kod zrozumieć po wielu miesiącach od napisania, łatwiej go udokumentować, no i jest krótszy. Cytat w jakich przypadkach lepiej używać jednego lub drugiego ? Jeśli piszesz coś bardzo małego, to tak jak Spawnm napisał możesz pisać proceduralnie. Odpada wtedy problem rozumienia kodu, bo jest go mało. Ale jeśli piszesz coś dużego - np. chciałbyś sobie stworzyć jakis odpowiednik wp.pl, to tylko obiektowo. Ten post edytował 230005 1.05.2009, 16:11:54 |
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 141 Pomógł: 7 Dołączył: 22.02.2009 Ostrzeżenie: (0%)
|
ale istniejące darmowe typu jommola php-fusion itd. chyba są strukturalne
nie wiem jak z komercyjnymi np. edito etid// czyli pisząc CMS pokroju php-fusion dużo lepiej będzie użyć oop trza się będzie podszkolić ;] do strukturalny w porównaniu z tymi całymi classami to pikus (IMG:http://forum.php.pl/style_emoticons/default/haha.gif) Ten post edytował Qss 1.05.2009, 16:15:34 |
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 1 470 Pomógł: 75 Dołączył: 21.09.2005 Skąd: że znowu Ostrzeżenie: (0%)
|
z całym szacunkiem, ale bzdury piszecie.
Cytat Duże aplikacje tylko w OOP. Łatwiej można kod zrozumieć po wielu miesiącach od napisania, łatwiej go udokumentować, no i jest krótszy. co jest krótsze? kod? no chyba kpisz. że niby na jakiej podstawie OOP Ci kod skraca? OOP to nie tylko czytelniejszy kod, czego koledzy widzę nie wiedzą. OOP to przede wszystkim cały wachlarz możliwości (który w wypadku php jest ciągle skromny ale wersja 6 a nawet 5.3 wnoszą już sporo ku lepszemu). OOP to przeciążanie, metody magiczne, konstruktory, destruktory, dziedziczenie, ograniczanie widoczności i wiele wiele więcej. polecam lekturę manuala. OOP pozwala na hermetyzację danych - do których obróbki używany jest tylko konkretny zestaw funkcji (metod), mamy wtedy gwarancję że jakiś zewnętrzny kod nam nic nie napsuje itp. co by jednak nie mówić to użycie oop powinno wynikać ze specyfiki konkretnego zadania które należy wykonać. Nie należy pchać go wszędzie na siłę. Kiedy najlepiej używać? nie powiem Ci, bo nie ma złotego środka, jeśli opanujesz oop a wcześniej programowanie strukturalne to sam będziesz potrafił wyczuć kiedy lepiej jest zastosować którą z tych metod.
|
|
|
|
Post
#6
|
|
|
Grupa: Zarejestrowani Postów: 1 470 Pomógł: 75 Dołączył: 21.09.2005 Skąd: że znowu Ostrzeżenie: (0%)
|
dlatego napisałem
Cytat co by jednak nie mówić to użycie oop powinno wynikać ze specyfiki konkretnego zadania które należy wykonać. Nie należy pchać go wszędzie na siłę. Kiedy najlepiej używać? nie powiem Ci, bo nie ma złotego środka, jeśli opanujesz oop a wcześniej programowanie strukturalne to sam będziesz potrafił wyczuć kiedy lepiej jest zastosować którą z tych metod. z czego chyba jasno wynika że użycie oop lub nie powinno być każdorazowo przemyślane. Nie zmienia to faktu że nawet serwis z jedną podstroną można zbudować przy użyciu oop.
|
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 214 Pomógł: 18 Dołączył: 25.04.2009 Ostrzeżenie: (20%)
|
OOP to inny sposób myślenia, programy napisane obiektowo, mają mniej błędów i łatwiej je potem ewentualnie poprawić, lecz niestety nie jest to proste, wymaga wiele lat praktyki. Bez względu na to co piszesz dobrze się nastawić na obiektowość, czy jest to mała funkcja i wielki projekt, obiektowość ma te zaletę nad strukturalnym programowaniem, że jak coś raz napiszesz dobrze to możesz to wciągać w inne projekty, strukturalne niestety nie zawsze się tak da, nie jednokrotnie, wciągnięcie fragmentu kodu powoduje pociągnięcie za sobą połowy projektu.
w programowaniu strukturalnym skupiasz się krok po kroku, jak się będzie projekt zachowywał, w OOP tworzysz klasy, które mają sciśle określone zadania, i tworząc taką klase, głównie temu poświęcasz cały czas. Polecam OOP |
|
|
|
Post
#8
|
|
|
Grupa: Zarejestrowani Postów: 1 470 Pomógł: 75 Dołączył: 21.09.2005 Skąd: że znowu Ostrzeżenie: (0%)
|
Cytat wciągnięcie fragmentu kodu powoduje pociągnięcie za sobą połowy projektu. prawda, ale tylko po części, pamiętaj o tym że są też funkcje które tak samo dobrze napisane mogą zostać wyciągnięte i użyte gdzie indziej, analogicznie można skopać od góry do doły klasę jeśli jej kod będzie się odwoływał do innych klas z projektu - dzieje się dokładnie to samo - wyciągnięcie jej powoduje wyciągnięcie połowy projektu. nie ma sensu pchać oop do takich zastosowań jak "hello world" i podobnie banalne czynności - chyba że stoją za tym jakiej inne konkretne pobudki.
w programowaniu strukturalnym skupiasz się krok po kroku, jak się będzie projekt zachowywał, w OOP tworzysz klasy, które mają sciśle określone zadania, i tworząc taką klase, głównie temu poświęcasz cały czas. |
|
|
|
Post
#9
|
|
|
Grupa: Zarejestrowani Postów: 375 Pomógł: 20 Dołączył: 28.07.2006 Ostrzeżenie: (0%)
|
Obie techniki programowania mają swoje zastosowania. Można je ze sobą łączyć. Skrypty od podstaw szybciej pisze się strukturalnie, chociaż stworzenie klas np. do obsługi szablonów ułatwia wiele zadań.
Strukturalne: większa wydajność, mniejszy rozmiar plików, prostota, ale niektóre fragmenty kodu trzeba powtarzać Obiektowe: łatwiej przenieść fragmenty kodu, funkcje magiczne, więcej możliwości, protekcja metod i zmiennych Jeżeli mówimy o przenośności kodu OOP, nie można odwoływać się do zmiennych globalnych ani funkcji spoza klasy, których w innych projektach może nie być lub mogą nazywać się inaczej. Eliminuje się problem "global". Aby modyfikować inny - często rozbudowany - projekt w OOP, trzeba najpierw go dobrze poznać. Ten post edytował WebCM 1.05.2009, 22:57:10 |
|
|
|
Post
#10
|
|
|
Grupa: Zarejestrowani Postów: 1 470 Pomógł: 75 Dołączył: 21.09.2005 Skąd: że znowu Ostrzeżenie: (0%)
|
Cytat mniejszy rozmiar plików (..) ale niektóre fragmenty kodu trzeba powtarzać to się raczej wyklucza zresztą od tego są funkcje żeby się nie powtarzaćCytat większa wydajność też bzdura - w nowych wersjach php które starają się być jak najbardziej obiektowe postawiono duży nacisk na wydajność obiektów i wszystkiego co z nimi związane. Wyniki działania kodu strukturalnego i obiektowego w php są na tyle porównywalne że nie może być mowy o większej wydajności jednego czy drugiego w wypadku gdy kod jest napisany dobrze
|
|
|
|
Post
#11
|
|
|
Grupa: Zarejestrowani Postów: 141 Pomógł: 7 Dołączył: 22.02.2009 Ostrzeżenie: (0%)
|
jednak przy projektowaniu małego CMS'a zostanę przy strukturalnym większość rzeczy powtarzających się pisze w funkcjach więc łatwo jest je później wyciągnąć. teraz myślę że oop ma chyba największe zastosowanie w grach przegladarkowych gdzie np. tworzymy pole bitwy czy losowe warunki pogodowe ;]
|
|
|
|
Post
#12
|
|
|
Grupa: Przyjaciele php.pl Postów: 1 202 Pomógł: 117 Dołączył: 13.04.2007 Skąd: 127.0.0.1 Ostrzeżenie: (0%)
|
Jeśli się zastanawiasz to znaczy, że nie umiesz pisać obiektowo (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Nie ma nad czym gdybać. Tylko OOP, oczywiście pomijam tu jakieś "statyczne" wizytówki itd. Napisałem ostatnio artykuł na konkurs gdzie wyjaśniam (staram się wyjaśnić) jakie są korzyści z OOP. Na wortalu znajdziesz zresztą masę innych artykułów zgłębiających temat. Ja jednak (bo jestem bardzo nieskromny) podam Ci linka do swojego artykułu. Oto i on
Pozdrawiam! |
|
|
|
Post
#13
|
|
|
Grupa: Zarejestrowani Postów: 375 Pomógł: 20 Dołączył: 28.07.2006 Ostrzeżenie: (0%)
|
I tak front kontroler nie może być w pełni obiektowy. Można nawet Hello World! napisać obiektowo, używając N klas i tworząc dla każdej M obiektów. Kod: http://pastebin.pl/7578 - prawda, że jest pro? Tylko po co, jeśli można napisać:
Oczywiście większe lub zaawansowane projekty lepiej napisać obiektowo, szczególnie frameworki, na których tworzy się serwisy internetowe. (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Nie przesadzajmy jednak z OOP w każdym skrypcie. Jest jeszcze jedna zaleta programowania strukturalnego - jeżeli w kilku miejscach odczytujemy listę artykułów, fragment kodu można dostosować do potrzeb. Zwolennicy OOP zaraz napiszą o dziedziczeniu. W wortalu PHP.PL kiedyś trafiłem na artykuł napisany przez Zend. Zarówno zwolennicy S i OOP zyskali uznanie. Używając OOP bez wątpienia łatwiej tworzy się programy - szczególnie okienkowe, a także skrypty JavaScript. Cytat Cztery parametry!? I ja mam pamiętać jakie i w jakiej kolejności? Kod funkcja( array('param' => 'val', 'param2' => 'val2') ); Zamiast pisać kilka razy $query->bindValue() można wrzucić tablicę z parametrami: $query->execute($tablica). Kiedy to się przydaje? Na przykład wtedy, gdy po wysłaniu formularza wystąpią błędy - wtedy bez problemu wyświetlimy formularz z wysłanymi danymi, bo wcześniej przygotujemy sobie taką tablicę z nazwami pól i wartościami z POST - oczywiście zabezpieczonymi przed HTML, nieprawidłowymi wartościami, itd.
Ten post edytował WebCM 2.05.2009, 09:51:18 |
|
|
|
Post
#14
|
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%)
|
I tak front kontroler nie może być w pełni obiektowy.[/php] Wybacz ale hahahahahahahahaWyjrzyj poza świat PeHaPe: FrontController Jest jeszcze jedna zaleta programowania strukturalnego - jeżeli w kilku miejscach odczytujemy listę artykułów, fragment kodu można dostosować do potrzeb. Zwolennicy OOP zaraz napiszą o dziedziczeniu. I będą mieli rację. Co masz na myśli, że pisząc strukturalnie można dopasować kod do potrzeb? To pisząc zgodnie z OOP już nie można?Oczywiście, że można. I to prościej i elastyczniej. Ten post edytował mike 2.05.2009, 09:43:56 |
|
|
|
Post
#15
|
|
|
Grupa: Zarejestrowani Postów: 141 Pomógł: 7 Dołączył: 22.02.2009 Ostrzeżenie: (0%)
|
ayeo artykuł się na pewno przyda ale narazie zostanę przy zwykłym programowani ucząc się opp
z drugiej strony uczenie się oop PHP jest dobre bo później szybciej można przejść do JS, AJAX, AS3 bo już się zna jego strukture Ten post edytował Qss 2.05.2009, 11:36:55 |
|
|
|
Post
#16
|
|
|
Grupa: Zarejestrowani Postów: 1 470 Pomógł: 75 Dołączył: 21.09.2005 Skąd: że znowu Ostrzeżenie: (0%)
|
Cytat I tak front kontroler nie może być w pełni obiektowy można by go też napisać w assemblerze - ale pytanie "po co?" skoro można łatwiej i przyjemniej. Różne metody programowania nie powstały po to żeby utrudniać życie stawiając nas każdorazowo przed trudnym wyborem "czego użyć" tylko po to żeby dać odpowiednio szeroki wachlarz możliwości z którego będziemy mogli wybrać rozwiązanie optymalne w danej sytuacji. Na tym między innymi polega programowanie - na umiejętności dobrania odpowiedniej metody do zadanego problemu, a nie tylko na klepaniu pętli i warunków w jeden określony schematyczny sposób, całkowicie bezmyślnie tworząc nieefektywny i ciężki w późniejszym rozwijaniu kod.
|
|
|
|
Post
#17
|
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%)
|
Cytat z drugiej strony uczenie się oop PHP jest dobre bo później szybciej można przejść do JS, AJAX, AS3 bo już się zna jego strukture Nauczenie się dowolnego języka prog. ułatwia poznanie kolejnego.Nauczenie się dowolnego algorytmu umożliwia wykonanie go w dowolnym języku Nauczenie się dowolnej "idei" pozwala na stosowanie jej niezależnie od języka btw: AJAX to JS - zapamiętajcie to w końcu... |
|
|
|
Post
#18
|
|
|
Grupa: Zarejestrowani Postów: 385 Pomógł: 26 Dołączył: 22.03.2008 Skąd: TM Ostrzeżenie: (0%)
|
Ogólnie to jest tak, że programowanie strukturalne (proceduralne) jest nieco szybsze niż OOP (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Dlatego np PhpMyAdmin jest napisany strukturalnie (tzn gdzies tak czytałem, nie sprawdzałem). Ja np. jestem za łączeniem tego, w sumie to może troszkę się kłócić z ogólnymi zasadami OOP, ale wychodzi jak narazie fajnie, zobaczymy jak to będzie w PHP 6 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
|
|
|
|
Post
#19
|
|
|
Grupa: Zarejestrowani Postów: 2 148 Pomógł: 230 Dołączył: 26.03.2008 Ostrzeżenie: (0%)
|
Ogólnie to jest tak, że programowanie strukturalne (proceduralne) jest nieco szybsze niż OOP (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Dlatego np PhpMyAdmin jest napisany strukturalnie (tzn gdzies tak czytałem, nie sprawdzałem)wychodzi jak narazie fajnie, zobaczymy jak to będzie w PHP 6 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) To wytłumacz mi co robi w moim htdocs ściągnięty już dawno temu PHPMyAdmin napisany w pełni obiektowo? |
|
|
|
Post
#20
|
|
|
Grupa: Zarejestrowani Postów: 1 470 Pomógł: 75 Dołączył: 21.09.2005 Skąd: że znowu Ostrzeżenie: (0%)
|
Cytat To wytłumacz mi co robi w moim htdocs ściągnięty już dawno temu PHPMyAdmin napisany w pełni obiektowo? pewnie pisali go jacyś amatorzy nie mający pojęcia o temacie (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
|
|
|
|
![]() ![]() |
|
Aktualny czas: 20.12.2025 - 18:54 |