Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Object Oriented Programming - i jego pułapki.
LoPMX
post
Post #1





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 25.11.2003
Skąd: Białe Błota

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


Tak wlasnie siedze i mysle sobie, bo chce przepisac swoja aplikacje z GOD classes na prawdziwe OOP. Chce aby kazda klasa reprezentowala jeden typ danych, np. klasa Articles ma metody tworzace obiekty klasy Article, ktora posiada z kolei metody zwracajace dane danego artykulu. Ale jest problem... Artykuly w bazie danych polaczone sa relacyjnie z Article_Type, oraz Category. I problem w tym, ze klasa Article_Type to tylko article_type z DB, Category to tylko category z DB. W templejcie potrzebuje wyswietlic artykuly wraz z ich kategoria oraz typem (np. test, recenzja czy cokolwiek innego). I nie wiem, jak mam polaczyc te obiekty. Moge oczywiscie zrobic wywolanie obiektu Category z Article, ale to za kazdym wyswietleniem danych tworzy jedno zapytanie do bazy o nazwe kategorii. Ma ktos jakis pomysl?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
DeyV
post
Post #2





Grupa: Zarząd
Postów: 2 277
Pomógł: 6
Dołączył: 27.12.2002
Skąd: Wołów/Wrocław




Ok, peace (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Rzeczywiście - "trochę" sie uniosłem...

Co prawda nadal uważam, że zmiany które pojawiły się w php5 były bardzo potrzebne, i że baaaardzo ułatwiły programowanie, szczególnie bardziej złożonych projektów. Z tego powodu nie przeszkadza mi to, że zaczerpnięte jest to z Javy. W końcu dobre pomysły warto zapożyczać. (o ile jeszcze nie są opatentowane (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) )
Choć przyznam szczerze, że nie zawsze tak uważałem.
Swojego czasu miałem bardzo dużo wątpliwości co do sensowności wprowadzenia np. ograniczania dostępności atrybutów w obiektach, do php. Po co pisać private, jeśli i tak każdy może (z uwagi na to, że bibliotka nie jest kompilowana) dowolnie ją zmodyfikować, i ingerować w to co tylko ma ochotę. A z drugiej strony - jeśli chciałem by jakaś metoda czy atrybut był "prywatny" to przecież wystarczyło dodać odpowiedni komentarz.
Jednak wraz z rozpoczęciem pracy nad kilkoma większymi projektami pisanymi konkretnie pod php5 szybko zmieniłem te zdanie.
W końcu bardzo ułatwiło to debugowanie skryptów. Wczesniej nie miałem możłiwości prostego sprawdzenia, czy którakolwiek z klas przez przypadek nie korzysta czasem z danego atrybutu. Jasne - można ograniczyć się tylko do udostępniania interfejsu zbudowanego z meod, ale nawet wtedy, przy wieloktrotnym dziedziczeniu - łatwo stracić kontorlę nad tym, gdzie co jest wykorzystywane.
I wtedy przekonałem się, że wystarczy dodać banalne słowo private, i odpalić serię testów (tak - XP też jest niezatąpione (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) ) by wykryć wszelkie konfliktowe miejsca.
O ile to podnosi szybkość pisania i jego bezpieczeństwo - chyba niekogo nie trzeba przekonywać.
Podobnie jest z innymi nowościami. static umożliwiło w końcu zrezygnowanie z używania globali. Kod automatycznie stał się bardziej przejżysty.
Przesyłanie obiektów zawsze przez referencję - o ile wygodniejsze stało się pisanie.
Możliwość kontrolowania typu przesyłanego przez parametr obiektu (bez bagażu problemów płynących z wymuszonego rzutowania typów).
To wszystko są zmiany, które, przynajmniej jak dla mnie, czynią pisanie w php znacznie bardziej intuicyjne i sprawne.
Pozwoio mi to na porwanie się na projekty, których wcześniej nie podjąłbym się raczej w tym języku, w wersji 4. (Nie należę bowiem do ludzi, którzy potrafią kompilować programy na kartce, i wykrywać wszystkie pojawiające się błędy. Bardzo żałuję, ale tego poziomu perfekcyjności chyba raczej nigdy nie osiągnę (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) )
Dlatego bardzo cenię wszystkie mechanizmy, które pomagają mi w tym, bym, nawet mimo swojej znacznej omylności, mógł pisać dokłądniej.


Faktem jednak jest, że boli mnie to, że rzeczy, które w Perlu, nie mówiąc już o C++, można zrobić bardzo wydajnie, w php zajmują masę czasu. Chciałoby się móc to zmienić.
I choć akceleratory trochę zmieniają tę sytuację, jednak tu potrzebny by był skok wydajnościowy nie o 300-500% (a gdzieś tyle dają akceleratory) a o kilkanaście- kilkadziesiąt razy.
Tego jednak chyba od twórców php wymagać nie możemy. A szkoda...
Go to the top of the page
+Quote Post

Posty w temacie
- LoPMX   Object Oriented Programming - i jego pułapki.   27.11.2003, 18:17:31
- - bumelang   Swojego czasu trochę nad tym z kumplem debatowaliś...   30.11.2003, 19:57:58
- - halfik   mnie z kolei interesuje ciut inne zagadnienie: czy...   5.12.2003, 08:49:57
- - LukaszLenart   Pomysle, ze masz system ktory generuje jakies rapo...   6.12.2003, 23:42:15
- - halfik   tak, wiem. znam zalety programowania obiektowego, ...   7.12.2003, 12:16:55
- - Seth   Szybsze jest programowanie strukturalne. OOP nie ...   7.12.2003, 13:06:53
- - DeyV   Na szczęscie te róznice są na tyle marginalne, że ...   7.12.2003, 14:22:39
- - LoPMX   zastanawiam sie jak zdolacie zaprojektowac klasy z...   7.12.2003, 14:25:44
- - halfik   CytatOOP nie jest natywne w php. Mimo, ze posiada ...   7.12.2003, 15:37:34
- - Użytkownik   Programowanie obiektowe bardziej pasuje mi do porz...   7.12.2003, 16:20:16
- - halfik   oj, jest potrzebne - jezyki obiektowe to przyszlos...   7.12.2003, 18:06:57
- - Użytkownik   Cytatoj, jest potrzebne - jezyki obiektowe to przy...   8.12.2003, 19:38:10
- - Seth   Pisze (ezPublish, Galaxia, Ambivalence, binaryclou...   8.12.2003, 20:00:19
- - halfik   no ale nawet pomijajac juz duze aplikacje. wezmy p...   8.12.2003, 20:42:21
- - LukaszLenart   Jedna rzecz to prostota zmian, a druga to mozliwos...   9.12.2003, 09:23:06
- - Pathfinder   Witam Swoj maly system buduje tylko na klasach. S...   30.12.2003, 04:38:43
- - LukaszLenart   A czy mozesz udostepnic swoje rowiazanie do wgladu...   30.12.2003, 07:18:01
- - radziel   CytatWitam Swoj maly system buduje tylko na klasa...   30.12.2003, 09:54:54
- - Pathfinder   CytatA czy mozesz udostepnic swoje rowiazanie do w...   30.12.2003, 13:44:35
- - lukaswoj   Ja jestem zdecydowanie za OOP. Zgadza się, że w PH...   2.01.2004, 23:53:19
- - Nalfein][WR   Dokładnie. W całej rozciągłości zgadzam się z luka...   3.01.2004, 12:26:27
- - bumelang   Cytat[WR"]Brakuje jednak tej wielowątkowości w PHP...   6.01.2004, 00:18:49
- - a1internet   Cytatzastanawiam sie jak zdolacie zaprojektowac kl...   12.01.2004, 00:01:05
- - a1internet   Cytatphp ma chyba za dużą narośl kompatybilności, ...   12.01.2004, 00:19:32
- - bumelang   CytatCytatphp ma chyba za dużą narośl kompatybilno...   13.01.2004, 10:59:47
- - halfik   CytatReausumując - doceniam rolę obiektów w tworze...   15.01.2004, 08:41:42
- - cagrET   Cytat... upieranie sie przy strukturalnym nie jest...   15.01.2004, 20:48:41
- - patrycjusz   CytatCytat ... upieranie sie przy strukturalnym ni...   15.01.2004, 21:57:46
- - cagrET   Patrycjuszu nie zrozumiales o co mi chodzilo (moze...   15.01.2004, 23:19:50
- - trax   Dobre funkcje też mogą być rozwiązaniem   7.02.2004, 12:49:40
- - Seth   Mozna tez uzywac 286 i dyskietek zamiast tydsku, t...   8.02.2004, 22:42:39
- - keedy   ja tez pisze swoj maly systemik na oop ;p ale wole...   28.09.2004, 01:17:59
- - Yarecki   Cytat(Seth @ 2004-02-08 23:42:39)Pewnych rzec...   28.09.2004, 07:26:39
- - hawk   Cytat(Yarecki @ 2004-09-28 07:26:39)Programow...   28.09.2004, 11:15:59
- - e-Gandalf   Geez... jaka bzdura... Jak napisal hawk: nie mozna...   28.09.2004, 14:10:04
- - Yarecki   Wypowiedzi na forum nie muszą być obiektywne, bo n...   28.09.2004, 15:24:01
- - hawk   Ludzie mają też problemy z programowaniem struktur...   29.09.2004, 09:19:04
- - kubatron   Seth: Czy ten Aspect Oriented Programing (AOP) będ...   1.10.2004, 06:50:27
- - Bora   na necie jest gdzies przyklad programow napisany a...   1.10.2004, 10:54:20
- - Krolik   Cytat(hawk @ 2004-09-29 08:19:04)Ja np najpie...   17.11.2004, 10:11:44
- - hawk   1) php a Java to jest, niestety, gigantyczna przep...   17.11.2004, 11:56:35
- - Krolik   @hawk: wiem ze moze jestem niepoprawnym optymista,...   17.11.2004, 14:08:22
- - DeyV   ale, do %#$^%, chłopie. Jak tak bardzo lubisz...   19.11.2004, 21:35:05
- - Krolik   @DeyV: Przecież ja nikogo nie odmawiam od pisania ...   20.11.2004, 10:56:55
- - DeyV   Ok, peace Rzeczywiście - "trochę" sie u...   20.11.2004, 11:19:47


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

 



RSS Aktualny czas: 26.12.2025 - 02:12