Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Dlaczego powinieneś używać frameworka php.


Damianostre

Rekomendowane odpowiedzi

Opublikowano
Założyłem ten temat jako rozwinięcie dyskusji, jaka powstała w temacie


o wzorcu MVC oraz frameworkach w grach via www.


Zauważyłem, że wśród początkujących, ale i tych bardziej doświadczonych programistów php

istnieje jakiś dziwny strach przed frameworkami. Nie wiem skąd to się wzięło

( chociaż najprawdopodobniej spowodowane jest to specyfiką platformy jak i samych twórców php ),

ale jest, do tego zjawisko to nie występuje w przypadku programistów innych języków.


Najczęstszymi argumentami, które padają są:


- framework jest wolny - oczywiście, że obsłużenie zapytania http będzie trwało dłużej we frameworku niż w czystym php, jednak właściwy

czas generowania odpowiedzi zależy w głównie od programisty, jak zoptymalizował zapytania do bazy oraz jakie operacje wykonuje.

Sam narzut czasu przez framework ma w dzisiejszych czasach drugorzędne znaczenie

( A powstają juz frameworki kompilowane do C, gdzie czas generowania jest zbliżony do czystego PHP, patrz Phalcon).

Także jeśli nie tworzysz systemu czasu rzeczywistego, a "klikana" chyba nie jest takim systemem, to nie musisz się martwić o szybkość.


- framework wykorzystuje za dużo zasobów - podobnie jak w punkcie wyżej


- własne rozwiązania są najlepsze - no nie wiem, ale wydaje mi się, że rozwiązania ludzi którzy zjedli zęby na php są jednak trochę lepsze niż

początkującego phpowca.


- czas nauki frameworka jest długi - aby poznać podstawy frameworka wystarczy tak na prawde jeden dzień,

a douczamy się jeśli potrzebujemy jakiejś funkcjonalności. Zazwyczaj istnieją kilkunastominutowe

tutoriale pokazujące pełną implementacje jakiegoś prostego bloga.


- framework jest zbyt "sztywny" i nie pasuje do pisanie gier via www - gra via www (cały czas mówię o klikankach) niczym nie różni się od innych

dynamicznych stron internetowych, niczym. Po za tym każdy nowoczesny framework posiada system dodatków, plugnów więc zawsze możemy sobie dopisać to

czego nam potrzeba.


Dlaczego powinieneś używać frameworka(FW)?


- czas realizacji projektu - wg. mnie większość amatorskich projektów zostaje porzuconych przez długi czas tworzenia, a także częste zastoje.

W przypadku FW prace postępują dużo szybciej, z dnia na dzień widać postępy co motywuje zespół do jeszcze cięższej pracy. Pierwszą grywalną wersje

możną postawić na prawdę szybko


- zajmujesz się pisaniem gry, a nie logowania i rejestracji. We FW wszystkie potrzebne narzędzia są gotowe do użycia, nie musisz ich pisać,

dzięki czemu zyskujesz więcej czasu na implementacje gry.


- uczysz się jak poprawnie implementować wzorce projektowe,

projektować systemy oraz po prostu jak poprawnie pisać kod dzięki czemu stajesz się lepszym programistą.


- rozwiązania FW są lepsze niż twoje - frameworki często używane są przez tysiące osób dzięki czemu kod jest stabilniejszy i bezpieczniejszy,

a wykryte błędy szybko naprawiane.


- brak "kodu spaghetti" - FW wymaga określonej struktury katalogów i klas oraz odpowiedniego nazewnictwa dzięki czemu trzymasz porządek w kodzie.


- praca w zespole - patrz poprzedni punkt, każdy musi trzymać się pewnych zasad.


- wdrożenie nowego programisty - wystarczy, aby nowy programer zapoznał się dokumentacja frameworka i praktycznie może zaczynać pracę.


To chyba tyle, pewnie kilka rzeczy pomiąłem, ale już późno. Mam nadzieje, że chociaż jedną osobę przekonam,

że frameworki to nie zło,a stosując je nic nie tracimy, a zyskujemy.


A może ktoś z was używa frameworka przy tworzeniu swojej gry?


Pozdrawiam :)

Opublikowano

Ja frameworka używam gdziekolwiek się da, nie dość że skraca czas tworzenia www to jeszcze ma ułatwienia. Ale co do gier to fraweworki które możemy znaleźć w sieci są do DUPY!. Tak są do dupy bo ładują dużo nie potrzebnych klas (a po co to robić?). Co do wypowiedzi pana @up to ja się nie zgadzam, lecz dodam że zależy jakie framework. Jeśli stworzymy swój własny a'la framework (Stabilny dispatcher, request abstrakcyjne controllery, modele i klasę wdoku do renderingu). Własny tak przygotowany kod będzie lepszy niż każdy inny FW. Wiemy co w nim mamy, oraz każda funkcja jest szykowana pod gre.

hcq0.png


Opublikowano

@Nygol

Nie zgodzę się z Tobą, nowoczesne frameworki posiadają budowę modułową i masz wolną rękę co do modułów których chcesz używać.

Z tego co pamiętam Laravel posiada nawet oddzielne repozytoria github do core'owych części frameworka więc możesz po prostu zacząć

używać tylko modułu http do obsługi requestów http czy też routingu i będzie dużo lepsze i stabilniejsze niż to co Ty napiszesz, gdyż jest to powszechnie używane przez innych ludzi

a twórcy tego modułu posiadają dużo większą wiedzę i doświadczenie niż początkujący, a nawet zaawansowany skrypter php. Oni zajmują się tym codziennie i dopieszczają latami, więc

nikt mi nie wmówi, że napisze coś lepszego nawet w miesiąc, a zwłaszcza 99% użytkowników for podobnych do tego, którzy mieszają warstwę prezentacji z warstwą biznesową.

 

Po za tym nie wiem po co wymyślać koło na nowo wiedząc, że nasze wyjdzie mniej okrągłe. Wolę spędzić więcej czasu nad implementacją gry niż nad tym dlaczego mój framework źle interpretuje jakiś parametr url, czy też szukać ukrytych błędów, które na pewno się pojawią przy pisaniu takiego frameworka. Oczywiście jeśli ktoś ma czas, wiedzę, doświadczenie i chęci niech pisze taki framework, sam chętnie spojrzę na efekty, ale jeśli jestem początkującym czy nawet średnim programistą to jest to według mnie strata czasu, bo na 99% żaden framework ani gra nie powstanie.

Najpierw wiedza, doświadczenie, a później własny framework, nigdy odwrotnie.

Opublikowano

masz wolną rękę co do modułów których chcesz używać.

 

Masz wolną rękę jeśli chodzi o dodatkowe moduły. Sam i tak załaduje mnóstwo niepotrzebnego kodu.

 

Najpierw wiedza, doświadczenie, a później własny framework, nigdy odwrotnie.

 

Może nie zdajecie sobie z tego sprawy, ale sprawdźcie swoje strony pisane bez fw. Mają część wspólną? Oczywiście, to jest wasz pseudo-fw o którym nie zdajecie sobie sprawy. Po co więc powielać to 'coś' jak można użyć sprawdzonego rozwiązania. (specjalnie piszę sprawdzonego, a nie lepszego)

 

 

 

FW w grach?

Może się sprawdza w grach, ale tylko tekstowych, tylko statycznych. Im bardziej gra jest nieszablonowa tym fw bardziej zaczyna przeszkadzać niż pomagać. Sam przy tworzeniu Danarroth zacząłem od swojego fw. Po czym usunąłem z niego wszystko prócz routingu, filtrowania, obsługi baz i logów (i jeszcze kilku mniejszych elem.)

Wciąż było 'niefajne' więc musiałem zrobić oddzielny plik (nazwijmy go ajax.php) i wyjąć go spod rewritingu. W ten sposób już pisałem dwie rzeczy jednocześnie.

No i wszystko 'śmigało'.

 

Gdybym pisał grę tekstową mogłoby tak zostać, ale tworząc grę real-time MMO(?) szybko można dostrzec jak beznadziejnym rozwiązaniem jest ładować cały fw dla każdego zapytania.

 

Co zrobiłem: zrezygnowałem z php ;)

 

 

Przejdźmy już do wniosków.

Framework do aplikacji: tak

Framework do gier: tak, ale dedykowany. (Dla małych gier nie trzeba się przejmować stratami wydajności, to wciąż baza będzie problemem w 90% przypadków)

 

 

 

Jak zwykle namieszałem, ale może ktoś coś wyciągnie z mojej wypowiedzi. Zajmuję się pisaniem programów, a nie rozprawek na ich temat :)

Opublikowano

@Foxbond zgadzam się z tobą ;-) (ostatnio coraz więcej)

@Damianostre A ja się dalej z tobą nie zgadzam ;-) Do aplikacji internetowej owszem, do gier nie, tylko własne rozwiązania ;-) nie chce mi się pisać plusów i minusów ale uwierz ze jeśli robisz grę w którą planujesz dużo osób online własny jest niezbędny. Możesz ograniczyć dużo danych

hcq0.png


Opublikowano

Chciałbym sprecyzować, że rozmawiamy o grach tekstowych.Gry ala margonem w ogóle nie powinny być pisane w php.

W takim przypadku czym różni się gra ze 100 osobami online od jakiegoś portalu ze 100 os. online? No niczym. Gra tekstowa to zwykła strona internetowa.

Dlatego nie rozumiem tego, tak - dla aplikacji, nie - dla gier.

 

Nawet jeśli po części miałbym się z tobą zgodzić to nie zmienia faktu, że aby napisać dobrze własny framework trzeba mieć jakąś tam wiedze i doświadczenie, a co z resztą, która takiej wiedzy nie posiada?

Framework jest dla nich idealnym rozwiązaniem, aby napisać dobrą grę w niedługim czasie, bez dużej wiedzy i kilkuletniego doświadczenia.

Opublikowano

I ja też tutaj nie mówię o jakimś własnym frameworku na skale np Zend'a ... Wystarczy sam routing,dispatcher, jakiś abstrakcyjny kontroller,model i klasa Widoku. Dodatkowo jakaś klasa do walidacji, obsługi Sesji,ciasteczek i Cache'owania i to już jest lepsze niż dać całego Zenda (czyt. czy też inne komerchy).

hcq0.png


Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...