Przejście z pisania strukturalnego na obiektowe

Witam,

Programuję w php od kilku lat, zrobiłem wiele różnych stron. Mam gotową strukturę katalogów i plików, a także panel admina, który wykorzystuję do tworzenia stron. Ale… to wszystko robię strukturalnie. W miarę szybko w tej chwili zbuduję nawet zaawansowane strony. Z przenośnością napisanych już wcześniej funkcji nie ma tak wiele problemu, ale trzeba zazwyczaj przenosić kilka plików razem z tabelami z bazy.

Wiele razy natykałem się na Frameworki i wiele osób wychwala, że lepiej się pisze strony. Ale ja nie mogę się przyzwyczaić. Może dlatego, że nie znam do końca pisania obiektowo bo znam to tylko z analiz przykładów.

Słyszałem też, że strony napisane w OOP spada czasami ich wydajność ponieważ obszerne klasy muszą ładować się do ramu, a przy dużym ruchu może być to kłopotliwe. Natomiast zaleta pisania strukturalnie to serwis działa bardzo szybko i bez większego obciążenia dla serwera.

Zastanawiam się nad przepisaniem tego mojego systemu, który pomaga w pisaniu stron na OOP, ale nie czuję się na siłach.

Może ktoś polecić jakąś książkę z programowania OOP w php, która nauczy mnie przejść z pisania strukturalnego na obiektowe, a także aby nauczyła tworzyć dobrze zbudowane aplikacje internetowe, które są SZYBKIE i bezpieczne. Chciałbym też wiedzieć jak zbudować strukturę strony takiej jak facebook, aby wytrzymała nawet takie obciążenie (żeby dokładać najwyżej serwery).

Fajnie są zrobione moduły w PrestaShop, każda funkcjonalność działa na modułach co mi się bardzo podoba. Jeden moduł wpływa na inne moduły i zachowanie całej strony, a moduł zawarty jest w jednym katalogu (nie jest rozwalony po wielu katalogach).

Interesowałem się frameworkiem CI, tylko nie wiem czy się w niego wgłębiać, bo zapoznanie się z kodem napisanym przez kogoś wiele czasu zajmuje. Więc może lepiej by było napisać coś swojego gdzie będzie się znało każdą linijkę.

Mam pytanie również jaki edytor będzie najlepszy do pisania w OOP ? Aktualnie wiele lat siedzę na kED i bardzo mi się podoba ale brakuje obsługi SVN ewentualnie FTP.

Proszę o jakieś porady.

Presta swoje ORM przypłaciła żałosną wręcz wydajnością.

Facebook jest napisany w PHPie, jednak jest “tłumaczony” na C++.

Zasadniczo do OOP polecałbym edytory z sugerowaniem składni (Zend, phpD), przy większej ilości klas będziesz chciał popełnić harakiri przy pomocy notatnikowatych - nadają się do drobnych poprawek, ale nie do budowania całego systemu - chociaż też się da).

Pamiętaj, że skrypty pisane obiektowo trudniej się debuguje niż pisane strukturalnie, enkapsulacja klas to podstawowa sprawa - pozwala uniknąć wielu problemów.

Jeżeli stosujesz rozsądnie i bez przesady OOP, to wydajność wzrośnie jak i z resztą funkcjonqlność. Zainteresuj się też np. MVC, świetna sprawa. Dzięki OOP możesz oddzielić różne warstwy, i np. jeśli zmieniasz wygląd to tylko to, nie musisz wprowadzać w tedy zmian do np. logiki aplikacji i baz danych. Tak samo możesz np. tworzyć moduły, czy zmieniać klasy bez wpływu na działanie pozostałych elementrów serwisu. W brew pozorom, to ostatecznie pisanie w OOP jest szybsze bo sprawia znacznie mniej problemu a wiele spraw można prościej zrealizować. Nowe wersje PHP obsługują też przestrzenie nazw. Nie wiem, czy wiesz co to, ale daje nam ogromne możliwości i sprawi, że o ile kod jest dobrze napisany, to do żadnych konfliktów nawet przy łaczeniu z innym oprogramowaniem dojść nie powinno. Natomiast jeśli masz okazję swoje strony uruchamiać na windows lub linux z mono, zapoznaj się z http://phalanger.codeplex.com/ .

Pierwsze słyszę aby skrypt PHP-owski napisany obiektowo mogłby być szybszy niż strukturalny :smiley:

  1. Potrzebuję się nauczyć programowania obiektowego. Proszę o jakąś książkę, która dobrze wprowadzi mnie do OOP ze strukturalnego. Najlepiej uczę się na przykładach dlatego fajnie by było gdyby nauka OOP opierała się na praktycznym przykładzie.

  2. Następnie chcę wybrać jakiś framework. Główne wymagania to:

  • szybkość

  • możliwość tworzenia modułów w jednym folderze, żeby nie były rozwalone po całym skrypcie, napisane wcześniej moduły chcę wykorzystywać w innych projektach, czyli niezależność

  • możliwość tworzenia szablonów strony z możliwością nadpisywania plików domyślnych, czyli szablon może zawierać nowe pliki, które są dopasowane do struktury strony i które się nadpisują jesli istnieja w szablonie. Umożliwi to całkowitą edycję strony w zależności od wczytanego szablonu.

  • cache

  • czytelność kodu

  • dobra dokumentacja oraz dobra pomoc techniczna w razie problemów

  • nowoczesność

  1. Ostatnio chciałem sprawdzić popularne strony, które są napisane w jakichś znanych frameworkach, okazuje się, że większość znanych stron jest napisana strukturalnie lub na własnych autorskich rozwiązaniach.

Dodane 10.07.2012 (Wt) 19:21

Proszę o jakieś porady.