![]() |
![]() ![]() |
![]() |
![]()
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ć.
|
|
|
![]()
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.
|
|
|
![]() ![]()
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 |
|
|
![]()
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..."
|
|
|
![]()
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. ![]() 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 ![]() -------------------- Projekty: PLAY, optymalizator baz danych
|
|
|
![]()
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 ![]() -------------------- 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ć.
|
|
|
![]()
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 ![]() |
|
|
![]()
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
![]() 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 :)
|
|
|
![]()
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. ![]() -------------------- |
|
|
![]()
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 ![]() 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ć ![]() @bela_666: ![]() |
|
|
![]()
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
|
|
|
![]()
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 ;-)
|
|
|
![]()
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 ![]() 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 -------------------- |
|
|
![]()
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
![]() 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 ;-)
|
|
|
![]()
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
|
|
|
![]() ![]()
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 ;-)
|
|
|
![]()
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
-------------------- |
|
|
![]()
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 ;-)
|
|
|
![]()
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 -------------------- |
|
|
![]()
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 ![]() -------------------- nice-object oriented Krzysztof Daniel
php, Java, C++ [itd itd] | DANTECH - aplikacje internetowe |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 05:06 |