Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> Model MVC zbojkotowany.
Pulsar
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 24.11.2004
Skąd: Szczecin

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


Dzisiaj miałem średnio miłą sytuację. Otóż postanowiłem zainicjalizować wykorzystanie modelu MVC w nowym projekcie firmy. W tym celu przygotowałem wykład dla dyrekcji, oraz współpracowników i niestety zostałem zbojkotowany.

Niektóre argumenty które padły przeciwko temu rozwiązaniu to:

- zbyt duży rozmiar plików z klasami
- pochłanianie dużej ilości pamięci przy operacjach
- powolność rozwiązania, gdyż większość operacji wykonywana jest na obiektach (padło porównanie do powolności w Java)
- obiekty będą wykorzystywane ale w prostszy sposób, bez zbędnego komplikowania postulatami MVC

Powiem szczerze, że po tej dyskusji, jestem dosyć przygnębiony. Włożyłem w to dużo pracy, która poszła na marne.

Czy możecie mi przytoczyć jakieś mocne argumenty, dlaczego rozwiązanie oparte na MVC będzie lepsze? Co ogólnie o tym myślicie?


--------------------
Zastanów się co chcesz osiągnąć w życiu. Potem określ cenę, jaką przyjdzie Ci za to zapłacić. Następnie zaś, postanów ją zapłacić.
Go to the top of the page
+Quote Post
Imperior
post
Post #2





Grupa: Zarejestrowani
Postów: 105
Pomógł: 0
Dołączył: 16.10.2004

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


Na mój gust, to MVC, nie daje nic prócz przejżystości i łatwości w rozszerzaniu funkcji, choć to i tak zależy od umiejętności i staranności programisty.
Zawsze można zrobić coś lepiej bez użycia MVC...
Moge się mylić, jeśli tak to wyprowadźcie mnie z błędu.


--------------------
Com powiedział, powiedziałem.
Go to the top of the page
+Quote Post
bregovic
post
Post #3





Grupa: Zarejestrowani
Postów: 562
Pomógł: 15
Dołączył: 8.08.2003
Skąd: Denmark/Odense

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


Zalety MVC to nażucony pożądek w kodzie. Jeśli wykożystacie np [url=mojavi.org]Mojavi 3[/ur] (jeszcze troszkę beta, ale działa już pod php5!) to będziecie mieli znacznie ułatwioną współpracę - jedyne co będzie porzebne to ogólny plan aplikacji - nad strukturą nie będzie się trzeba zbyt zastanawiać bo większość dobrych frameworków nażuca bardzo dobrą strukturę - i daje mnóstwo różnych featuresów.


--------------------
Prank - for the fun. Mac - for the simplicity. Deviantart - for the kick.
Life is ours, We live it our way -- Metallica
Go to the top of the page
+Quote Post
DeyV
post
Post #4





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




Od dawna pracuję na MVC lub różnych wariacjach tego wzorca. Nie zawsze trzymam się go w 100% , z przekonaniem moge powiedzieć jedno - nie znam lepszego sposobu na pracę z kodem, szczególnie jeśli jest to praca zespołowa.

Czasami ludzie obawiają się tego terminu, mając wrażenie, że niesie on automatycznie znaczną komlikację kodu. Jednak tak nie jest - przecież widokiem może być dowolny system szablonów.

Czym natomiast jest model? |To przecież zwykły zestaw klas, w ktorych zawarte są wszystkie zapytania do bazy, wraz z przejżystym interfejsem.

Wszystko sprowadza sie do tego, że należy napisać ładne akcje, które to wszystko połączą, a dla ułatwienia - mają się automatycznie uruchamiać.


cdn. ...


--------------------
"Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
Go to the top of the page
+Quote Post
Krolik
post
Post #5





Grupa: Zarejestrowani
Postów: 53
Pomógł: 0
Dołączył: 16.11.2004

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


Trzeba bylo przedstawic im rachunek kosztow...
Mysle, ze zaoszczedzenie paru tygodni pracy dzieki modelowi MVC (bo bedzie mniej bledow, kod czytelniejszy i wszystko duzo ladniej) spokojnie pozwoliloby na zakup dwuprocesorowego Pentium IV XEON 3.8 GHz z 2 GB RAMu na ktorym chodzilby serwis. smile.gif

Fakt, ze moze php najszybsze nie jest, ale chyba obiektowosc tak duzo znowu nie spowalnia. Nie rozumiem tych ludzi. Nie wiem skad sie biora te mity, ze to niby obiektowosc i ladny kod sa niewydajne. I te glupie porownania do Javy. Nie, to nie obiektowosc, a co najwyzej niedbala implementacja. Program w C tez mozna napisac tak, ze bedzie zarl wiecej zasobow niz odpowiednik w Javie.

Zwykle im przejrzystsza struktura kodu, tym latwiej sie to pozniej optymalizuje.
Swoje zdanie opieram glownie na jezykach Object Pascal, C, C++ i Java, bo w tych mam duzo wieksze doswiadczenie niz w php. Jesli w php jest inaczej, to mnie oswieccie smile.gif


--------------------
Projekty: PLAY, optymalizator baz danych
Go to the top of the page
+Quote Post
Pulsar
post
Post #6





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 24.11.2004
Skąd: Szczecin

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


Czyli jednak moje podejście zastosowania MVC do nowej aplikacji było słuszne?

Moim zdaniem, ponieważ aplikacja będzie duża, poza tym będzie rozwajana na bieżąco przez przynajmniej 5 osób, to opłaca się zastosować MVC. To właśnie próbowałem przekazać.

Niestety bez powodzenia sad.gif


--------------------
Zastanów się co chcesz osiągnąć w życiu. Potem określ cenę, jaką przyjdzie Ci za to zapłacić. Następnie zaś, postanów ją zapłacić.
Go to the top of the page
+Quote Post
zezik
post
Post #7





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 28.06.2004
Skąd: Kraków

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


Ja bym to teraz rozegral tak:

Wymysl jakis problem, rozszerzenie etc. i przedstaw latwosc rozwoju aplikacji pod kontem danego problemu, jak i przedstaw to z poziomu rozwiazania bez wykorzystania modelu. Ja w taki sposob przekonalem sie do wzorcow projektowych, dobre przyklady o rozszerzeniach i poprawkach powalily mnie ;-) No i tym sie trzeba bronic. Prawda jest taka ze ludzie boja sie takich rozwiazan jako ze dosc czesto nie wiedza o co wogole chodzi, a tym bardziej ile problemow implementacyjnych bedzie.

Ale walcz, jestesmy z Toba biggrin.gif
Go to the top of the page
+Quote Post
NuLL
post
Post #8





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

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


Pulsar: A jakiego MVC sie trzymasz - mowisz stricte o MVC questionmark.gif

Jesli chcesz za wszelka cene trzymac sie tego wzorca , to chyba podlacze sie do bojkotu. Pilnowanie sie MVC na wszelkie mozliwe strony jest lekko bezsensowne. Wiele osob nie zauwaza ze MVC opracowano dla JAVY i jak dla mnie gdyby ktos w firmie zaproponowal mi zaisywanie kodu kazdej akcji w osobym pliku wysmial bym go.

Pamietajmy ze aplikacja w php dzial max. kilkanascie sekund w przeciwienstwie do aplikacji Javovwych ktore dzialaja jak normalne pisane w C. Ja korzystam ze wzroca MVC - ale z jego glownych zarysow. U mnie np jest kontroler strony, ale akcje odpowiedzilane za jakis pojedynczy modul sa zapisane w jednym pliku.


--------------------
Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
Go to the top of the page
+Quote Post
bela
post
Post #9


Administrator PHPedia.pl


Grupa: Developerzy
Postów: 1 102
Pomógł: 2
Dołączył: 14.09.2003

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


Cytat(null)
MVC opracowano dla JAVY

Cytat(hawk)
MVC nie jest pomysłem nowym. Wymyślony został w laboratoriach PARC (Palo Alto Research Centre) firmy Xerox (tych samych, którym zawdzięczamy m. in. myszki i systemy okienkowe) już w latach siedemdziesiątych. Wtedy oczywiście nikt nawet nie myślał o wykorzystaniu wzorca do aplikacji internetowych. MVC został wykorzystany do zaprojektowania interfejsu użytkownika w języku Smalltalk, stworzonym zresztą również przez PARC. To, co nas jednak interesuje, to zastosowanie MVC w aplikacjach internetowych. Tego kroku dokonał Sun na potrzeby Javy.


winksmiley.jpg


--------------------
Go to the top of the page
+Quote Post
hawk
post
Post #10





Grupa: Zarejestrowani
Postów: 521
Pomógł: 0
Dołączył: 3.11.2003
Skąd: 3city

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


@Pulsar: opinie o zżeraniu pamięci, zbyt dużych plikach itd biorą się raczej z totalnej niewiedzy i niechęci do zmiany przyzwyczajeń.

Owszem, można pokazać, że system napisany na chama, bez obiektów, będzie szybszy niż to samo w MVC. Ale w takim razie dlaczego nie napisać wszystkiego jako CGI w C? Też się da i będzie znacznie szybsze. Tylko że projekt się nie uda winksmiley.jpg.

A jeżeli już zgodzimy się na obiektowość i porządek w kodzie, to MVC wcale nie musi być wolny. Wszystko zależy od tego, co chcemy tam mieć. Kontroler nie musi wprowadzać żadnego narzutu - wystarczy że URLe będą miały postać index.php?action=foo. I tak, i tak jakaś namiastka kontrolera musiałaby być. Wywalenie SQL z plików z akcjami do modelu to w zasadzie bardziej wymóg zdrowego rozsądku niż MVC. Lepiej mieć coś w jednym miejscu, niż rozsiane po dziesięciu...

Ciekawe, czy któryś z oponentów może zaproponować bardziej wydajne, a jednocześnie sensowne rozwiązanie? Są frameworki wyraźnie szybsze od tego co może zaoferować MVC? No chyba że alternatywa polega na robieniu wszystkiego byle jak - wtedy nic nie da się poradzić sad.gif.

@bela_666: winksmiley.jpg
Go to the top of the page
+Quote Post
Krolik
post
Post #11





Grupa: Zarejestrowani
Postów: 53
Pomógł: 0
Dołączył: 16.11.2004

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


Nie wiem po co tyle gadania o tej wydajnosci. Jak chca miec super szybko to niech sobie napisza w czyms "natywnie kompilowanym" czyli C++ albo C. Tylko ciekawe ile czasu beda to pisac, bo bibliotek dobrych do tego nie ma... (na razie).

Jest kilka takich mitow dotyczacych wydajnosci glownie rozpowszechnianych przez ludzi, ktorzy nie znaja dobrze obu technologii ktore porownuja: "C++ jest wolniejsze niz C", "Garbage collectory sa wolniejsze niz malloc/free", "Java jest szybsza niz C" no i teraz jeszcze "MVC jest wolne". Kazdy z tych mitow da sie latwiej lub trudniej obalic, choc w kazdym jest jakies ziarnko prawdy.

Moim zdaniem ludzie sie po prostu boja uczyc nowych rzeczy. Wydajnosc jest chyba tylko pretekstem, zeby sie nie uczyc. To mi troche przypomina tez takie myslenie niektorych programistow C - "Nasi dziadkowie i ojcowie uzywali ansi C i funkcji malloc, to i ten system baz danych tez napiszemy w C...". Jak sie ktos przyzwyczail, to nie ma na niego sily. A w programowaniu bardzo latwo o nawyki i chodzenie "na skroty". Napisanie skryptu byle jak to wlasnie "chodzenie na skroty". Bedzie dzialac, ale jak zajdzie koniecznosc zmodyfikowania czegos po 2 miesiacach, to ja juz wspolczuje tym, co beda ten kod czytac.


--------------------
Projekty: PLAY, optymalizator baz danych
Go to the top of the page
+Quote Post
squid
post
Post #12





Grupa: Zarejestrowani
Postów: 358
Pomógł: 0
Dołączył: 3.07.2003
Skąd: Szczecin->niebuszewo->*(next to window)

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


Cytat(hawk @ 2004-11-29 10:20:59)
Ale w takim razie dlaczego nie napisać wszystkiego jako CGI w C? Też się da i będzie znacznie szybsze.

wedlug testow z ksiazki "php zaawansowane programowanie" ( http://helion.pl/ksiazki/zprphp.htm ) niekoniecznie, php potrafi przewyzszyc inne rozwiazania jak CGI/c, CGI/PERL, mod_perl, mod_python


--------------------
Jeśli życie to kara to nieźle nabroiłem ;-)
Go to the top of the page
+Quote Post
bela
post
Post #13


Administrator PHPedia.pl


Grupa: Developerzy
Postów: 1 102
Pomógł: 2
Dołączył: 14.09.2003

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


a mógłbyś powiedzieć coś więcej o tych testach, bo nie każdy ma tą książke

i podaj numer strony to zobacze sobie w empiku winksmiley.jpg

Cytat(Krolik)
Jest kilka takich mitow dotyczacych wydajnosci glownie rozpowszechnianych przez ludzi, ktorzy nie znaja dobrze obu technologii ktore porownuja: "C++ jest wolniejsze niz C"


gdzie tak piszą ?

Ten post edytował bela_666 8.12.2004, 17:59:20


--------------------
Go to the top of the page
+Quote Post
squid
post
Post #14





Grupa: Zarejestrowani
Postów: 358
Pomógł: 0
Dołączył: 3.07.2003
Skąd: Szczecin->niebuszewo->*(next to window)

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


nie mam tej ksiazki na wlasnosc, mam do nieje dostep na wydzialowej czytelni, postaram sie do piatku umiescic odpowiedni fragmet smile.gif badzcie cierpliwi

P.S.
w tej ksiazce jest caly rozdzail dotyczacy wydajnosci a te testy sa zaraz na jego poczatku, nietrudno wiec znalezc

Ten post edytował squid 8.12.2004, 20:48:11


--------------------
Jeśli życie to kara to nieźle nabroiłem ;-)
Go to the top of the page
+Quote Post
Krolik
post
Post #15





Grupa: Zarejestrowani
Postów: 53
Pomógł: 0
Dołączył: 16.11.2004

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


Nie pamietam gdzie dokladnie tak pisza, ze C++ jest wolniejsze niz C, ale co jakis czas spotykam sie ze stwierdzeniami: "Napiszmy to w C, to musi byc super szybkie". Jak pytam dlaczego nie w C++, to dostaje odpowiedz, ze "Cala ta obiektowosc C++ wprowadza strasznie duze narzuty" i tu jako argument pada przyklad jakiejs duzej i wolnej aplikacji KDE napisanej w C++. Zreszta niewazne, to zagadnienie na odrebny temat i niekoniecznie na to forum...

Co do CGI w C kontra php - no pewnie, ze bardzo latwo napisac program, ktory bedzie ponad 10 razy szybszy w php niz CGI. Daleko nietrzeba szukac: wystarcz zwykle "Hello world." Tyle, ze taki benchmark jest bez sensu. A im wieksza aplikacja, tym CGI bedzie sie zblizac wydajnoscia do php. W ktoryms momencie moze byc nawet szybsze. Zwlaszcza jesli kodu jest malo, ale duzo operacji do wykonania (np. jakies petle, jakies skomplikowane obliczenia). Tak czy inaczej CGI nie zalicza sie do zbytnio wydajnych technologii, bo kazde wywolanie to start nowego procesu.

Natomiast nic nie pobije szybkosci Fast-CGI pisanego w C. Tak na oko moze byc z jakies kilkanascie-kilkadziesiat razy szybsze niz php z akceleratorem. Ciekawe tylko, czy w tej ksiazce zrobili taki benchmark...


--------------------
Projekty: PLAY, optymalizator baz danych
Go to the top of the page
+Quote Post
squid
post
Post #16





Grupa: Zarejestrowani
Postów: 358
Pomógł: 0
Dołączył: 3.07.2003
Skąd: Szczecin->niebuszewo->*(next to window)

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


Zaczerpnelem z elektronicznej wersji tej ksiazki
Niestety nie mozna uzywac html'a na tym fotum wiec musi wygladac to tak:
Cytat
The tests were done on:

CGI Perl scripts
The traditional way to code web sites and applications just one or two years ago

FastCGI Perl scripts
A mechanism to improve the performance problems of CGI scripts

Python CGI scripts
In this case we used Python to code CGI scripts

mod_python Python scripts
An Apache module to let Apache run Python code without calling the Python interpreter

C CGI scripts
Compiled C scripts running as CGI programs

mod_perl Perl scripts
An Apache module to let Apache run Perl scripts without having to execute the Perl interpreter

php
To compare the other languages to php, the same test were run on php

After several benchmarks, including different script types and server loads, it was found that mod_perl, FastCGi, and php were the fastest options with very similar results. Therefore, if a php site or script is facing a performance problem then the solution is to work with the code and not change the language.

The Benchmarks
Test 1 – 1000 executions of a very short script:

Language
Time (seconds)

C
20.6

Perl
23.8

Python
45.2

php
16.0

mod_python
30.0

mod_perl
16.4

FastCGI
16.4


Test 2 – 1000 executions of a long script, more than 1000 lines of code:

Language
Time (seconds)

C
258

Perl
963

Python
978

php
304

mod_python
347

mod_perl
476

FastCGI
280


Ten post edytował squid 9.12.2004, 16:19:38


--------------------
Jeśli życie to kara to nieźle nabroiłem ;-)
Go to the top of the page
+Quote Post
bela
post
Post #17


Administrator PHPedia.pl


Grupa: Developerzy
Postów: 1 102
Pomógł: 2
Dołączył: 14.09.2003

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


szkoda, że nie ma fastcgi c w tym porownaniu


--------------------
Go to the top of the page
+Quote Post
squid
post
Post #18





Grupa: Zarejestrowani
Postów: 358
Pomógł: 0
Dołączył: 3.07.2003
Skąd: Szczecin->niebuszewo->*(next to window)

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


ano nie ma aczkolwiek przed tym postem nie slyszalem nic o FastCGI w C widac malo przyjazne. Bardziej brakuje mi porownania php jako CGI i jako modol serwera Mozna sie spodziwac rezultatow nie wiekszych niz 200 w drugim tescie. Swoja droga nie mozna czegos takiego jak FastCGI zastosowac w php?

Ten post edytował squid 10.12.2004, 09:10:14


--------------------
Jeśli życie to kara to nieźle nabroiłem ;-)
Go to the top of the page
+Quote Post
bela
post
Post #19


Administrator PHPedia.pl


Grupa: Developerzy
Postów: 1 102
Pomógł: 2
Dołączył: 14.09.2003

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


Cytat(squid @ 2004-12-09 22:40:12)
ano nie ma aczkolwiek przed tym postem nie slyszalem nic o FastCGI w C widac malo przyjazne. Bardziej brakuje mi podownania php jako CGI i jako modol serwera Mozna sie spodziwac rezultatow nie wiekszych niz 200 w drugim tescie. Swoja droga nie mozna czegos takiego jak FastCGI zastosowac w php?

chyba coś ci się myli
gdy jest używane cgi to przy każdym wywołaniu strony tworzony jest nowy proces, w przypadku fastcgi nie są tworzene 2 procesy dla jednej strony tylko używany jest jeden


--------------------
Go to the top of the page
+Quote Post
DaNTe
post
Post #20





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 7.01.2004
Skąd: Katowice

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


MVC i tylko MVC w takiej czy innej formie. Oddzielenie logiki od prezentacji to podstawa nawet malych projektow grupowych, o duzych i mających się rozwijac - to już nawet nie wspominam!

Co do wydajności - zamiast pakować pieniądze w dodatkowe P4 można zastanowić się nad zainwestowaniem w Zend Optymizera czy po prostu instalacją http://www.phpaccelerator.co.uk/. Kod kompilowany jest wtedy raz i utrzymywany w pamięci, co więcej - jedna instancja dla wszystkich klientów.

A co do przekonywania: zawsze należy się tak przygotować aby na każdą wade mieć riposte w postaci 2 zalet biggrin.gif


--------------------
nice-object oriented Krzysztof Daniel
php, Java, C++ [itd itd] | DANTECH - aplikacje internetowe
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 - 05:06