Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [PHP]Korzyści z przejścia na programowanie obiektowe
Azek
post
Post #1





Grupa: Zarejestrowani
Postów: 57
Pomógł: 3
Dołączył: 28.12.2011

Ostrzeżenie: (0%)
-----


Trochę piszę w php, ostatnio nawet zacząłem czytać o programowaniu obiektowym. Wszystko ładnie pięknie, rozumiem jak to działa, ale nie wiem po co mi to do szczęścia. Programuję strukturalnie i na razie nie widzę potrzeb pisania obiektowego: kodu nie udostępniam, bo piszę dla siebie albo do pracy, a tworzenie całej klasy aby stworzyć jeden obiekt wydaje mi się nieco zbędne. To tak jakbym dostał młotek wraz z instrukcją obsługi, ale nie wiem wogóle po co mam wbijać gwoździe.
Proszę o łopatologiczne wyjaśnienie "potrzeby wbijania gwoździ", czyli progamowania obiektowego.

Ten post edytował Azek 4.04.2012, 09:35:36
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Takich pytań jak Twoje przewijało się na forum już dużo.
Nie chcesz, nie pisz. Życie prędzej czy później samo ci wyjaśni "po co".


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Azek
post
Post #3





Grupa: Zarejestrowani
Postów: 57
Pomógł: 3
Dołączył: 28.12.2011

Ostrzeżenie: (0%)
-----


W tym problem, że chcę tylko jakoś nie widzę, co mi to daje...
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




To skoro chcesz to zacznij to robić.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Azek
post
Post #5





Grupa: Zarejestrowani
Postów: 57
Pomógł: 3
Dołączył: 28.12.2011

Ostrzeżenie: (0%)
-----


Właśnie zacząłem, ale tak mechaniczne. Wolałby jednak rozumieć po co robić klasy i obiekty, jak można to zrobić strukturalnie.

BTW
Wyszukiwarka postów wywala błąd: Wystąpił bląd. Wróć i spróbuj ponownie.
connection to localhost:3312 failed (errno=111, msg=Connection refused)
Co jest nie tak?
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




google -> programowanie obiektowe co daje
I ja tam znalazłem parę ciekawych informacji dla początkujących. Skoro "chcesz" to poszukaj wpierw trochę sam, a potem ewentualnie dopytuj o szczegóły.

ps: tak, wyszukiwarka forum nie działa.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Lorum3
post
Post #7





Grupa: Zarejestrowani
Postów: 86
Pomógł: 5
Dołączył: 10.12.2011
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Łatwa rozbudowa, porządek, szybkość działania aplikacji, itd.

Samo OOP może Ci nie wiele wyjaśnić, ale w połączeniu z MVC dostrzeżesz korzyści.
Go to the top of the page
+Quote Post
Niktoś
post
Post #8





Grupa: Zarejestrowani
Postów: 1 195
Pomógł: 109
Dołączył: 3.11.2011

Ostrzeżenie: (10%)
X----


Cytat
Łatwa rozbudowa, porządek, szybkość działania aplikacji, itd.

Łatwa rozbudowa owszem,porządek także ,ale z szybkością działania nie mogę się zgodzić.Czytałem trochę i kod napisyny strukturalnie jest wykonywany szybciej niż pisany obiektowo,choć pewnie różnice nie będą, aż tak widoczne dla normalnego użytkownika.

A co sądzicie o takim sposobie-główny "szkielet"(silnik) aplikacji pisany strukturalnie.Rozbudowanie aplikacji o np.dodatkowe ficzery już pisane obiektowo.

Ten post edytował Niktoś 4.04.2012, 10:26:16
Go to the top of the page
+Quote Post
Lorum3
post
Post #9





Grupa: Zarejestrowani
Postów: 86
Pomógł: 5
Dołączył: 10.12.2011
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Cytat(Niktoś @ 4.04.2012, 11:22:22 ) *
Łatwa rozbudowa owszem,porządek także ,ale z szybkością działania nie mogę się zgodzić.Czytałem trochę i kod napisyny strukturalnie jest wykonywany szybciej niż pisany obiektowo,choć pewnie różnice nie będą, aż tak widoczne dla normalnego użytkownika.

A co sądzicie o takim sposobie-główny "szkielet"(silnik) aplikacji pisany strukturalnie.Rozbudowanie aplikacji o np.dodatkowe ficzery już pisane obiektowo.



Wiadomą sprawą jest, że przy prosty/ małych aplikacjach, kod strukturalny sprawdzi się lepiej i jego szybkość również będzie lepsza. Inaczej to wygląda przy dużych serwisach, z dużym ruchem.
Go to the top of the page
+Quote Post
Niktoś
post
Post #10





Grupa: Zarejestrowani
Postów: 1 195
Pomógł: 109
Dołączył: 3.11.2011

Ostrzeżenie: (10%)
X----


Cytat
Wiadomą sprawą jest, że przy prosty/ małych aplikacjach, kod strukturalny sprawdzi się lepiej i jego szybkość również będzie lepsza. Inaczej to wygląda przy dużych serwisach, z dużym ruchem.

Wiadomo,że przy dużych aplikacjach się tego nie robi.Wyobrażasz sobie pewne moduły zamieszczone przykładowo w 10 klasach, sprowadzone do jednego pliku?Wyobraź sobie kod z 10tyś linijek i teraz wyszukaj w takim kodzie konkretną linijkę konkretnego modułu,aby coś poprawić.Wydaje mi się że i tak pisane strukturalnie by byłą szybsze niż pisane obiektowo(odchodzi czas dostępu i wczytywania zewnętrznego pliku),ale tego się nie robi ze względu na ewentualną konserwację,modernizacje i rozwój.

Ten post edytował Niktoś 4.04.2012, 10:59:26
Go to the top of the page
+Quote Post
nospor
post
Post #11





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Wyobraź sobie kod z 10tyś linijek i teraz wyszukaj w takim kodzie konkretną linijkę konkretnego modułu,aby coś poprawić.Wydaje mi się że i tak pisane strukturalnie by byłą szybsze niż pisane obiektowo(odchodzi czas dostępu i wczytywania zewnętrznego pliku)

Gadasz teraz głupoty. Stwórz sobie plik php z kodem składającym się z 10 tys linijek a potem go odpal. Przekonasz się wówczas, że wczytywanie z plików tylko tego co potrzeba, jest o wiele wiele wiele razy wydajniejsze.

ps: poza tym 10tys linijek to zajmuje wstęp do średniej wielkości aplikacji. W takich 100tys to już można coś napisać wink.gif
Powód edycji: [nospor]:


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Niktoś
post
Post #12





Grupa: Zarejestrowani
Postów: 1 195
Pomógł: 109
Dołączył: 3.11.2011

Ostrzeżenie: (10%)
X----


Cytat
Gadasz teraz głupoty. Stwórz sobie plik php z kodem składającym się z 10 tys linijek a potem go odpal. Przekonasz się wówczas, że wczytywanie z plików tylko tego co potrzeba, jest o wiele wiele wiele razy wydajniejsze.


Ale jak to robisz:
Pierwszy sposób:
  1. if(warunek1){
  2. include(klasa.php)}
  3. else{
  4. include(klasa2.php)
  5. }

Drugi sposób:
Cytat
if(warunek1){
.............................
......kod strukturalny........
......................................
}
else{
...........................................
............kod strukturalny2..........
...............................................
}
}

Drugi sposób będzie szybszy,lecz mniej czytelny niż 1, gdyż od razu następuje wykonywanie kodu po określonym warunku.W pierwszym sposobie po spełnionym warunku następuje odczyt pliku z katalogu i egzekucja kodu.
Cytat
ps: poza tym 10tys linijek to zajmuje wstęp do średniej wielkości aplikacji. W takich 100tys to już można coś napisać

Tylko wariat pisałby taką aplikację strukturalnie wink.gif
Go to the top of the page
+Quote Post
nospor
post
Post #13





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Widzę nie zrozumiałeś.... o wykonanie tego co prosiłem już nie wspominam...

Kod, który ma 10tys linijek w jednym pliku jest wolniejszy od wczytania kilka plików z kodem, który akurat teraz potrzebujemy.
Jest wolniejszy i zżera o wiele więcej pamięci. Gdy tego kodu będzie jeszcze więcej, to aplikacja ci w ogóle padnie. Paniał?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Niktoś
post
Post #14





Grupa: Zarejestrowani
Postów: 1 195
Pomógł: 109
Dołączył: 3.11.2011

Ostrzeżenie: (10%)
X----


Cytat
Kod, który ma 10tys linijek w jednym pliku jest wolniejszy od wczytania kilka plików z kodem, który akurat teraz potrzebujemy.

W pełni się z tobą zgadzam ,ty mówisz o czasie dostępu do pliku i będzie on dużo większy niż rozbijając to na wiele plików,gdyż sam rozmiar pliku jest większy,wzrośnie też zużycie zasobów,ale ja mówiłem o egzekwowaniu samego kodu.
Dajmy na to został już wczytany plik z 10tyś linijek(będzie to trwało dłużej,zużycie pamięci większe),ale wykonanie już kodu w tym pliku będzie trwało krócej,gdyż brak już jest jakichkolwiek odwołań do zewnętrznych plików,które także zawierają jakiś tam kod.

Ja się staram pisząc u siebie nie przekraczać 2tyś linijek,tak aby to jeszcze ogarnąć ,resztę pakuję w klasy.

Ten post edytował Niktoś 4.04.2012, 12:26:32
Go to the top of the page
+Quote Post
nospor
post
Post #15





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Ale wykonanie kodu to też jego wczytanie i sparsowanie. Wiec dla dużych plików aplikacja tak czy siak będzie działała wolniej. Wiec wniosek jeden: robijać na pliki niezależnie czy piszesz obiektowo czy strukturalnie.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Niktoś
post
Post #16





Grupa: Zarejestrowani
Postów: 1 195
Pomógł: 109
Dołączył: 3.11.2011

Ostrzeżenie: (10%)
X----


Cytat
Ale wykonanie kodu to też jego wczytanie i sparsowanie. Wiec dla dużych plików aplikacja tak czy siak będzie działała wolniej. Wiec wniosek jeden: robijać na pliki niezależnie czy piszesz obiektowo czy strukturalnie.

Zgadzam się ,ciekawe jak to się ima do języków kompilowanych,gdzie kompilacja następuje tylko raz.

Ten post edytował Niktoś 4.04.2012, 12:36:25
Go to the top of the page
+Quote Post
Fifi209
post
Post #17





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Cytat(Niktoś @ 4.04.2012, 13:32:46 ) *
Zgadzam się ,ciekawe jak to się ima do języków kompilowanych,gdzie kompilacja następuje tylko raz.

Zależy od języka, może być różnie np. z Javą, C# bo one kompilują do kodu, który rozumie ich maszyna, co innego C/C++ etc.

Ale i tak wątpię, że ma to jakiekolwiek znaczenie, kompilujesz raz. wink.gif


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
redeemer
post
Post #18





Grupa: Zarejestrowani
Postów: 915
Pomógł: 210
Dołączył: 8.09.2009
Skąd: Tomaszów Lubelski/Wrocław

Ostrzeżenie: (0%)
-----


Cytat(Niktoś @ 4.04.2012, 13:32:46 ) *
Zgadzam się ,ciekawe jak to się ima do języków kompilowanych,gdzie kompilacja następuje tylko raz.

Nie ma różnicy w językach natywnie kompilowanych, czy kod będzie w jednym pliku, czy w wielu.

Edit: Oczywiście miałem na myśli tylko szybkość wykonania biggrin.gif

Ten post edytował redeemer 4.04.2012, 12:54:44


--------------------
Go to the top of the page
+Quote Post
usb2.0
post
Post #19





Grupa: Zarejestrowani
Postów: 341
Pomógł: 25
Dołączył: 28.09.2008
Skąd: Lublin

Ostrzeżenie: (0%)
-----


a ja bym powiedział tak jeden z kolegów wyżej, żeby spróbował mvc np. jakiś framework
bo faktycznie może się wydawać że równie dobrze mogą być zwykle funkcje pisane strukturalnie, jak i metody klasy i niczym się nie różni - dobry przykład podstawąwink.gif
Go to the top of the page
+Quote Post
!*!
post
Post #20





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


Cytat(Azek @ 4.04.2012, 10:32:10 ) *
Proszę o łopatologiczne wyjaśnienie "potrzeby wbijania gwoździ", czyli progamowania obiektowego.


- żadna poważna firma, która zna się na rzeczy, nie przyjmie Cie do pracy jak nie masz pojęcia o OOP.
- żaden rozbudowany projekt (niech będzie 5k linijek) nie ma szans się rozwijać, gdy jest napisany strukturalnie, szczególnie gdy mają nad nim pracować więcej niż 2 osoby.
- OOP jest po to min. żeby nie powielać 50razy tego samego kodu... np. chcesz pobrać treść newsa, piszesz:

Cytat
$o = new News;
$o-> getNews('tytul');


zamiast całych funkcji łączenia z bazą. Do tego dochodzą loadery klas np. SPL które załadują plik z klasą wtedy gdy jest potrzebny... strukturalnie, jakoś nie bardzo to widzę. I najważniejsze, chcesz zmienić coś w pobieraniu newsa? zmianiasz tylko metodę getNews(); w 1 pliku, a nie tam gdzie zrobiłeś do niej odwołanie.

Ten post edytował !*! 4.04.2012, 13:01:19


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 20:36