Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V  < 1 2  
Reply to this topicStart new topic
> [inny] [ZF2] vs [SF2], Który wybrać?
basso
post 27.11.2012, 22:13:20
Post #21





Grupa: Zarejestrowani
Postów: 155
Pomógł: 1
Dołączył: 12.12.2010

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


Witam,
Panie "ano" ma Pan rację.

Dzisiaj katowałem serwer Apache jMeter z tymi wcześniejszymi zapytaniami czyli ZF2(ORM) vs SF2 (Doctrine2).
ZF2(ORM) zdecydowanie bije SF2(Doctrine2) jeśli chodzi o przetwarzanie małych danych.


Od 4 lata programuje (CMS, CRM , ERP) i nigdy nie wyświetlałem więcej jak 100 rekordów z bazy mających no max 30 kolumn. 95% osadzam wszystko na zapytaniach i podzapytaniach w tym PL/SQL => zatem dostaje mało danych, to co chcę, od paginacji po przez złożone zwortki danych. Zatem jeśli nie przetwarzam dużej ilości danych po stronie PHP to na co mi Doctrine2 i jego hydracja do obiektów?

Na pewno ma Pan większe doświadczenie i może pomoże Pan mi w wyborze frameworka SF2 czy ZF2 ?


Go to the top of the page
+Quote Post
ano
post 28.11.2012, 20:15:02
Post #22





Grupa: Zarejestrowani
Postów: 435
Pomógł: 40
Dołączył: 16.02.2003
Skąd: Wrocław

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


SF2 jest o wiele przyjaźniejszy dla Rapid Developmentu.

Przy ZF2 dostajesz pewien zbiór komponentów, z których tak na prawdę sam musisz ulepić coś fajnego więc w efekcie wejście w ZF2 trwa dłużej - samemu trzeba opracować pewne 'standardy' itp.

Przy SF2 dostajesz od razu całość gotową do szybkiego developingu.

Średnie czasy Requestów dla tych 2óch frameworków przy podobnie zaprojektowanej aplikacji (tak samo wykorzystany cache itp) będą porównywalne. A to, że Zend jest wydajniejszy jest mitem. Sami developerzy Zf żalili się na temat niskiej wydajności Zf1.
(http://forum.php.pl/index.php?s=&showtopic=204816&view=findpost&p=1005857)

Co do ORMa:

Nie wyobrażam sobie CRMa bez użycia ORMa ;-)
Obsługa kodu bazującego na masie tablic asocjacyjnych w aplikacji bazującej na pewnych bytach biznesowych będzie strasznie kosztowna. Sam taki kod prawdopodobnie w końcu 'osiągnie' bardzo niską jakość, ciężko nad nim będzie zapanować.
Wykorzystanie obiektów przy tego typu aplikacjach jest moim zdaniem niezbędne.

Praktyka jest taka, że gdy w jednym requeście wykorzystujesz niewiele rekordów (lub po prostu jeden ;]) to stosujesz ORM. Prawdopodobnie na tej jednej encji będziesz chciał wykonywać pewne skomplikowane operacje, które o wiele łatwiej wykonać w świecie obiektowym.

Jednak gdy masz jakieś listingi rekordów, bez zbędnych operacji na nich/logiki --> wykorzystujesz tablice asocjacyjne.

Dlaczego SF2 się lepiej sprawdzi?
Jest lepiej przystosowany do ORMa, obiektów itp. Głównie ze względu na formularze, które były w założeniu tworzone na potrzeby obiektów (Oczywiście mogą również obsługiwać tablice asocjacyjne, ale raczej tego się nie stosuje, chyba że do prostych struktur)

Poza tym nie wyobrażam sobie definiowania reguł walidacji dla tablic asocjacyjnych. Tak masz całą logikę zdefiniowaną za pomocą adnotacji w konkretnej klasie modelu, lub za pomocą jakiegoś XMLa/YAMLa (czegokolwiek).

A jak byś użył walidacji przy tablicach? Zapisywałbyś pewnie reguły walidacji przy formularzu co jest mało rozsądne.

Obiektami lepiej potem operować gdy będzisez tworzył API swojego serwisu. Do SF2 powstały pewne świetne biblioteki, służące do de/serializacji obiektów do JSON, XML, itp.

Więc tworzenie webservice'ów, RESTa itp będzie bardzo proste przy tak utrzymanym kodzie.


A jeśli chciałbyś zapytać o średnie czasy odpowiedzi to mogę tylko odpowiedzieć, że licz się z między 80ms - 600ms - 600 przy np obsłudze bardzo złożonych formularzy.


--------------------
Linkedin | ...
Go to the top of the page
+Quote Post
basso
post 9.12.2012, 15:14:22
Post #23





Grupa: Zarejestrowani
Postów: 155
Pomógł: 1
Dołączył: 12.12.2010

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


Witam,
Dzięki wielkie za obszerną wypowiedź.

Widzę, że czytasz w moich myślach. Chcę robić komercyjnego CMS-a jako WebService po SOAP albo REST (posadzić to w tym przypadku na SF2) => bo mnie nudzi to wiecznie dorabianie, pamiętanie i haszowanie kodu, u jednego klienta tak, u drugiego tak => praktycznie żadnej kontroli. Na początku było jako tako, bo było tego dosyć mało ale teraz widzę, że coraz mniej pamiętam i zaczyna mi się to wymykać spod kontroli...

Apropos ZF2 vs SF2, a scentralizowanie systemu.
Mam obawy jeśli chodzi o scentralizowanie tego. Jeśli stworzyłbym swoje API, to i frontend i backend musiałby drzeć wszystko z 1 serwera. Załóżmy, że mam 100 klientów (100 backendów i 100 frontendów)... ilość requestów niesamowita (front i backend). Trzeba by mieć kombajn nie z tej ziemi. Może to moja niewiedza prowadzi do tak dziwnych obaw.
Na pewno do tego typu rozwiązania pchałbym się tylko i wyłącznie na SF2 bo wtedy obróbka danych przemiał byłby o niebo wydajniejsze.



Pozdrawiam.

Test najnowszych frameworków
http://www.ruilog.com/blog/view/b6f0e42cf705.html
Go to the top of the page
+Quote Post
d3ut3r
post 9.12.2012, 15:34:06
Post #24





Grupa: Zarejestrowani
Postów: 709
Pomógł: 176
Dołączył: 24.10.2010

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


Co do wydajności to już problem raczej biznesowy musisz się starać aby przychód z x klientów pokrywał koszty swobodnej pracy smile.gif. Od strony technicznej nie wiele jest do zrobienia poza optymalizacją aplikacji i mechanizmami usprawniającymi (wszelkie cache itp.).

Co do testu frameworków to jest to moim zdaniem nieporozumienie. Jeżeli ktoś pisze aplikacje Hello World to nie używa do tego SF2 Autor tych testów nie dość że otwarcie przyznaje że nie potrafił uruchomić aplikacji w trybie produkcyjnym to jeszcze porównuje duże frameworki pokroju ZF czy SF z rozwiązaniami mało popularnymi i nie tak rozbudowanymi.



--------------------
http://d3ut3r.wordpress.com/ | mysql_* jest przestarzałe UŻYWAJ PDO!
Go to the top of the page
+Quote Post
ano
post 9.12.2012, 15:37:10
Post #25





Grupa: Zarejestrowani
Postów: 435
Pomógł: 40
Dołączył: 16.02.2003
Skąd: Wrocław

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


Takie testy na "hello world" są bezsensu - nic nie pokazują, a przewaznie są robione na MacBookach autorów wink.gif Poza tym czy zauwazyłeś w komentarzach, że gość testował Symfony2 w środowisku DEV?

Taki sneak-peak:
Już wkrótce wrzucimy na bloga miarodajne testy porównujące Symfony2, ZF2, Silex, Node.js na podstawie prawdziwej aplikacji o realnym, specyficznym, zastosowaniu (a nie hello world).
Co jeszcze mogę zdradzić: testy będą robione na odpowiednio zoptymalizowanej pod taką aplikację, największej instancji serwera Amazon EC2 (a dokladniej to na dwóch takich instancjach) :-)


--------------------
Linkedin | ...
Go to the top of the page
+Quote Post
basso
post 9.12.2012, 23:45:36
Post #26





Grupa: Zarejestrowani
Postów: 155
Pomógł: 1
Dołączył: 12.12.2010

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


... wiem wiem, doczytałem komentrze i faktycznie kicha...

Czekam z niecierpliwością na wyniki testów. A tak w ogóle, to wybrałem SF2 i zacząłem już poznawać te mechanizmy. Zamówiłem książki już, żeby luki przed snem wypełniać informacjami wiarygodnymi.
Na razie najlepsze co może być to wywoływanie akcji w widoku exclamation.gif! No coś niesamowitego , czegoś takiego mi brakowało od zawsze.

Pozdrawiam.
Go to the top of the page
+Quote Post
d3ut3r
post 10.12.2012, 03:15:00
Post #27





Grupa: Zarejestrowani
Postów: 709
Pomógł: 176
Dołączył: 24.10.2010

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


Osadzanie kontrolerów w templatce dobra rzecz smile.gif Mi osobiście najbardziej podoba się automatyczne pobranie encji w akcji na przykład:

  1.  
  2. public function deleteAction( \My\BundleName\Entity\News $news){
  3.  
  4. }
  5.  


zawsze to kilka linijek kodu mniej.


--------------------
http://d3ut3r.wordpress.com/ | mysql_* jest przestarzałe UŻYWAJ PDO!
Go to the top of the page
+Quote Post
Daimos
post 6.11.2014, 21:37:50
Post #28





Grupa: Zarejestrowani
Postów: 1 319
Pomógł: 118
Dołączył: 26.11.2003
Skąd: Lublin

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


Nie zabijecie jak odkopię stary temat?
Minęło trochę czasu, obydwa frameworki się rozwijają. Może też autor podjął od tamtego czasu decyzję i ma nowe wnioski.
Mnie dalej zastanawia w co się zagłębić bardziej, bo na razie nie znajdę czasu na opanowanie obydwu FW. Drasnąłem obydwa i jak to wszyscy mówią, faktycznie Symfony 2 bije ZF jeśli chodzi o rapid dev. Ale czy przy bardziej rozbudowanych aplikacjach, nie staje się kulą u nogi? Z moich obserwacji wynika, że pisząc bloga, na pewno napiszemy go szybciej z SF, ale w momencie, kiedy z tego bloga zaczniemy tworzyć sklep pokroju magento, czy nie okaże się, że wszystkie udogodnienia ze strony Symfony, będą jedynie miłym dodatkiem, który trzeba dodatkowo wymijać?
Sam zajmuje się m.in. rozwojem średnio zaawansowanych CMSów i sklepów, ale już przestarzałych i moim zadaniem będzie wybór nowego frameworka. Czy sensowne jest Waszym zdaniem poświęcenie czasu całego zespołu na zapoznanie się z obydwoma FW i sprawdzenie w praktyce, który będzie lepszym wyborem na aktualne potrzeby firmy?
Debaty w internecie na temat tych dwóch rozwiązań, zazwyczaj wyglądają jak walka fanów o to, czy lepiej śpiewa Bieber czy Rihanna, a przecież każdy robi to inaczej. Dlatego od jakiegoś czasu już ręce mi opadają, kiedy chcę wybrać FW bazując na opiniach ludzi, którzy w praktyce nie znają obydwu FW i bronią tego jedynego.

Wydaje się wszystko proste, niech wszyscy w zespole napiszą bloga i wybiorą (kiedyś tak zrobiłem z ZF 1). Problem jest taki, że jako zespół, ZF1 poznaliśmy nie po napisaniu tego bloga testowego, lecz po napisaniu sporej aplikacji - uważając, że już wiemy co to jest. Nie wyszło źle wink.gif Ale po roku, dziwnie się patrzyło w źródła.

Może ktoś z Was miał przełomy w wyborze/zmianie frameworka?


--------------------
scriptun.com. Startup z poradnikami do gier ttp.zone i ttpzone.pl
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 Wersja Lo-Fi Aktualny czas: 28.04.2024 - 03:28