Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Nie mvc ;) - potrzebna rada...
Forum PHP.pl > Forum > PHP > Object-oriented programming
ixpack
Potrzebuję rady, a właściwie upewnić się, że idę w dobrą stronę...
Projekty tworzyłem głównie liniowo z domieszką oop bazując na swoim prymitywnym (nie)mvc - na swoich zasadach, które innym kolegom nie sprawiały problemu w zrozumieniu i modyfikacji kodu (raptem 2 projekty ;>). Nastał ten dzień, że chcę tworzyć głównie w oop (szykuje się 3ci - poważny projekt :/) z małą domieszką liniowego, szarego php (bo szary to też kolor) aby wszystko szło pewniej, bez zawalonej nocy "bo jednak ktoś popełnił błąd"...

Mój mały plan: tworzę w oop - rozgrzewka, a gdy będę w stanie wyrzucić z moich narzędzi większość nie obiektowego kodu to przesiadam się na codeigniter lub kohana, a następnie zend.

Czy wg. was lepiej jest od razu współpracować z framework'iem czy na początku zaprzyjaźnić się na dobre z obiektami i klasami, a następnie dołączyć do tego np. zend'a?

Jeżeli chodzi o framework - czy przyswojenie kohana lub codeigniter (z akcentem na ten 2gi - z tego co czytałem bardziej przypadł mi do gustu), a następnie przesiadka na zend to dobre rozwiązanie? Czy lepiej od razu wsiąść na zend? A może inny framework?

Dziękuję z góry za wyczerpujące odpowiedzi...
Crozin
1. Naucz się przynajmniej podstaw OOP np. poprzez napisanie prostej biblioteki. Jeżeli dobrze znasz protokół HTTP możesz zrobić takiego własnego cURL-a, jeżeli znasz protokół Mail możesz zrobić coś do wysyłania maili, może to być jakieś narzędzie do obsługi systemu plików. Bylebyś się nie brał od razu za robienie nawet prostej strony w OOP, bo do tego potrzeba całej masy narzędzi, których dostarczą Ci dopiero jakieś FW bo na chwilę obecną raczej samemu nie stworzysz czegoś sensownego.
2. Mając już jakieś obycie z OOP weź się za jakiś FW napisany obiektowo np. popularne Zend czy Symfony.
3. Jaki sens miała by taka "przesiadka" z Kohany na Zenda? Jeżeli myślisz o Zendzie to od razu się za niego bierz (szczególnie, że Kohana czy CI do dobrych - w mojej opinii - nie należą).

PS. Biel i czerń oraz wszystko pomiędzy nimi (odcienie szarości) to nie kolory. wink.gif
Zyx
Z nauką frameworków jest tak, jak z językami programowania. Znasz jeden, drugi poznajesz dwa razy szybciej. Znasz dwa, trzeci poznajesz dwa razy szybciej. Znasz trzy... wszystko to kwestia doświadczenia, reszta to niuanse API i podejścia twórców. Jednak bez OOP zbyt wiele nie zwojujesz.
ixpack
Cytat(Crozin @ 3.05.2011, 12:28:29 ) *
1. Naucz się przynajmniej podstaw OOP np. poprzez napisanie prostej biblioteki.


Podstawy są, gorzej z praktyką - jak na razie tworzyłem klasy rzadko połączone ze sobą.
Teraz zaczynam tworzyć narzędzie do obsługi fotek dla sklepu (user musi jedynie wskazać folder z folderami, gdzie znajdują się foty produktu x) - narzędzie ma sortować fotki, zmieniać ich nazwy tak, aby były zgodne z danym schematem, tworzyć miniatury, updateować bazę a następnie uploadować wszystko na serwer ewentualnie podmieniać 1 fotę lub dodawać kolejną dla produktu... Następnie chcę napisać coś co będzie kontrolowało sesje, a 3cie zadanie to przepisanie na obiekty panelu admina - dodawanie, edycja produktów etc. Mam nadzieję że to mi wystarczy... Mam jakieś 2 miechy na zrobienie tego - i podjęcie decyzji czy robię dalej tak czy używając FW.

Cytat(Crozin @ 3.05.2011, 12:28:29 ) *
Jaki sens miała by taka "przesiadka" z Kohany na Zenda? [...] (szczególnie, że Kohana czy CI do dobrych - w mojej opinii - nie należą).


Głębszego sensu nie ma - myślałem, że CI lub Kohana ułatwią mi późniejszą naukę Zend'a

Cytat(Zyx @ 3.05.2011, 12:43:54 ) *
Z nauką frameworków jest tak, jak z językami programowania. Znasz jeden, drugi poznajesz dwa razy szybciej.


Ale teraz mam wątpliwości i chyba zdecyduję się od razu na Zend (edit: albo symfony - jednak przeraża mnie to, że niektórzy mają z nim problemy przy "oczywistych" rzeczach... Jak przy SSL - @Zyx). Jednak raczej FW wykorzystam w kolejnym, 4tym "projekcie" (3ci to platforma dla małych firm, zarządzanie klientami, przypominacz spotkań i kilka innych użytecznych narzędzi). Myślę, że strukturalno-obiektowy schemat do tego wystarczy tj. strona wykorzystująca narzędzia, biblioteki w OOP.
mike
Czytam ten post i powiem Ci jak on wygląda z mojego punktu widzenia:
"Kupię sobie samochód z silnikiem Diesela ale nie za bardzo potrafię tym jeździć więc najpierw będę go tankował benzyną a potem zacznę tankować olejem".

Podsumowując: Twój plan jest do bani. Naucz się OOP i nie kombinuj. Bo twierdząc, że najpierw sobie pokodujesz w OOP z domieszką programowania strukturalnego (lub odwrotnie) ujawniasz fakt, że nie tylko praktyki ale i podstaw Ci brakuje.
ixpack
Mike szanuję Twoją opinię i poniekąd się z tym zgadzam. Na coś takiego czekałem - tzn. na "kopa", bo sam sobie go dać nie umiem...
Cytat
"Kupię sobie samochód z silnikiem Diesela ale nie za bardzo potrafię tym jeździć więc najpierw będę go tankował benzyną a potem zacznę tankować olejem".

A co ma piernik do wiatraka? Tzn. prawo jazdy mam więc jeździć umiem... Ale nie do końca wiem czym tankować ]smile.gif

Brakuje mi doświadczenie w OOP - ba brakuje bardzo dużo i to wiem. Ok wg. Ciebie brakuje podstaw - a co to są podstawy? Pisanie klas, używanie obiektów?
Mieszanie OOP i liniowego (że tak to ujmę) php jest moim zdaniem naturalne. Teraz podzieliłeś mi programistów php na 2 kupki: tych co piszą wszystko w obiektach (niestety nie wyobrażam sobie całej stronki napisanej TYLKO obiektowo) i tych co OOP nie umieją w ogóle bo tylko czasem używają narzędzi pisanych w OOP - a to nie jest dobre? Działa? Działa - jeżeli jest to zła technika proszę żebyś napisał dlaczego. PEAR - "Wszystko da się zrobić inaczej".
Strukturalno-obiektowy - tak bym określił język PHP. A Ty jak?
Kończę czytać 2gi raz PHP5. Obiekty, wzorce, narzędzia i nadal uważam, że bez struktur PHP nie pojedzie (edit: zbyt długo) - wleję diesla, ale jak nie doleję oleju to i tak silnik zatrę. Jakoś klasy napisać trzeba, metody - a jak wyświetlisz jakąś wartość bez liniowego polecenia? Bo trochę nie rozumiem jak bez np. echo, print etc. wyświetlić jakąś wartość :/ Chyba że źle rozumiem - a (np.) echo jest zorientowany obiektowo?

Nic złośliwego nie mam na myśli - jestem samoukiem (nie poszedłem na studia sad.gif musiałem wcześnie fizycznie pracować i zarabiać na leki wink.gif - nie ważne) i to co napiszesz na pewno przemyślę - masz szansę kogoś, czegoś nauczyć.
Cytat
Jeżeli nie potrafisz czegoś wyjaśnić dostatecznie zrozumiale - to znaczy, że sam nie rozumiesz tego dostatecznie dobrze


Pozdr.

edit: "Plan" się zmienił: czytam kolejny raz księgę zaklęć (+manual bo tam ciekawie piszą ;]) i piszę narzędzia tylko w OOP, nie używam prehistorycznego php i zobaczę co z tego wyjdzie.
Crozin
Masz rację do do jednego... w PHP nie da się pisać w pełni obiektowo. Gdzieś w końcu wewnątrz metod pojawia się kod strukturalny ponieważ... ponieważ PHP jest mocno spieprzone. Jakieś 95% API języka jest w pełni strukturalne i nie obejdziesz tego. Do tej pory nie rozumiem dlaczego jeszcze nie pojawiło się równoległe do istniejącego, obiektowe API.

Nie mniej jednak da się napisać "w pełni obiektowo" stronę w PHP. Przy czym przez pełnię mamy tutaj na myśli "wysokopoziomową" strukturę naszej aplikacji, natomiast najbardziej elementarne operacje, które ze względu na budowę języka muszą być napisane strukturalnie i "przykryte" obiektami.

Cytat
Jeżeli nie potrafisz czegoś wyjaśnić dostatecznie zrozumiale - to znaczy, że sam nie rozumiesz tego dostatecznie dobrze
To jest akurat bzdura. Umiejętność wyjaśnienia czy ogólnie nauczania nie ma nic wspólnego z posiadaną wiedzą czy umiejętnościami w danym temacie.
ixpack
Cytat(Crozin @ 4.05.2011, 12:25:27 ) *
[...]
To jest akurat bzdura. Umiejętność wyjaśnienia czy ogólnie nauczania nie ma nic wspólnego z posiadaną wiedzą czy umiejętnościami w danym temacie.


Crozin - cytowałem Einsteina ;] z nim kłócić się nie będę. Nie mniej jednak uważam, że wy (Ci, którzy tu mi odpowiadali) doskonale rozumiecie OOP - i dlatego chcę na was "pożerować" i się czegoś nauczyć. Pracy wam nie zabiorę, bo nie mieszkam w Polsce wink.gif a poza tym jestem o mile świetlne od was jeżeli chodzi o wiedzę etc.

Mam jeszcze jedno pytanko abstrahując od tego czy PHP/OOP umiem czy nie - czy i kiedy warto używać system szablonów?

Czy sam FW w wykonania "projektu" nie będzie rozsądniejszym rozwiązaniem, czy może po prostu wygodniej zrzucić generowanie wyglądu na system szablonów? Np. symfony zająłby się M - C, a np. twig V? I czy w ogóle będzie to "działać"? Nie chcę teraz się tym zajmować, ale wiem że ten dzień sądu nadejdzie biggrin.gif a na starcie wolałbym wiedzieć, że łączenie np. twig'a i symfony sprawi więcej problemów niż korzyści.
Cysiaczek
Motasz się strasznie, bo nie zaglądasz do źródeł:
http://symfony.com/doc/current/book/index.html
ixpack
Cytat(Cysiaczek @ 6.05.2011, 14:40:07 ) *
Motasz się strasznie, bo nie zaglądasz do źródeł:
http://symfony.com/doc/current/book/index.html


Jeden z komponentów Symfony2 :/

Dzięki panowie za pomoc.
LSM
Hej

Dobrą metodą żeby zrozumieć co i jak jest przepisanie tego co już masz - "liniowego" kodu na własny model MVC. Dużo się nauczysz właśnie w ten sposób, natomiast potem bym zajrzał do gotowców jak Zend, CI, Symfony. Każdy z nich jest inny. Zend ma rozbudowany model komunikacji, na początek może to być zbyt wiele dla Ciebie (dla mnie było). Natomiast podstawową komunikację w MVC można zamknąć w malutkim kodzie.
Polecam również: Kod z książki 'php5 zaawansowane programowanie' - rozdział 10. przyda się do zrozumienia komunikacji we frameworkach, książke można pewnie znaleźc bez problemu w necie... wink.gif

Zyx
LSM -> w Zend Frameworku MVC jest pod warunkiem, że sobie go sam zaimplementujesz. Modeli nie ma tam w ogóle, widoków także (Zend_View to zwykły system szablonów, a nie żaden widok). Podobnie masz w CI, Symfony 1 i większości innych frameworków.
LSM
@Zxyc - spokojnie, nigdzie nie napisałem, że ZF ma MVC, w ogóle co to znaczy, że ma ? Przecież wiadomo ze jak się coś robi to z myślą o konkretnych własnych implementacjach. Ale z pewnością frameworki są stworzone z myślą o szybkiej i łatwiej implementacji MVC - czyli po prostu utworzenia konkretnych klas modeli i widoków. Nie rozumiem do czego zmierzasz Zyxc.

BTW:
http://codeigniter.com/user_guide/overview/mvc.html

Jak czytamy: "CodeIgniter is based on the Model-View-Controller development pattern."
Chociaż rozumiem że "based" nie oznacza "implementation" ... sciana.gif


Pozdrawiam
marcio
Cytat
Jak czytamy: "CodeIgniter is based on the Model-View-Controller development pattern."

To ze jest napisane nie znaczy ze jest to tez dobrze zaimplementowane na poziomie kodu snitch.gif
LSM
Wiele osób uprawia tu demagogię. Trzymajmy się faktów. Przypięty temat odn. MVC zawiera nawet stwierdzenie o implementacji MVC w CI, Symfony. A co to znaczy "dobra implementacja" ? Albo jest koncepcja MVC we frameworku albo jej nie ma. W CI możemy również przeczytać, że jest to luźne MVC czyli wcale nie musimy używać modelu itp. itd.
Zyx stwierdził że w CI nie ma MVC. A teraz doszło, że jest ale źle zaimplementowana, ciekawe hehe. zakochany.gif
jacobson
a ja mam takie pytanie ... co jest przyczyna tego ze wszyscy tak sie przyczepili do CI ? co jest w nim takiego zlego ?
Crozin
@jacobson: To jest po prostu cholernie słaby projekt. Moim zdaniem nie warty nawet uwagi.
LSM
Nic, moim zdaniem to jeden z najlepszych jakie widziałem. Symfony 2 wziął teraz wiele z CI :-) A to o czymś świadczy. On jest mega lajtowy, chociaż ma pare rzeczy do których można się przyczepić jak wszystko na tej planecie - nic nie jest doskonałe. CI ma dobrze zorganizowane katalogi, świetną dokumentację i jak ktoś jest początkującym to w parenaście minut postawi stronę. oneeyedsmiley02.png

@Crozin no to mnie zgiałeś w pół. Jaki polecasz?
marcio
Cytat
Zyx stwierdził że w CI nie ma MVC. A teraz doszło, że jest ale źle zaimplementowana, ciekawe hehe.

Ja sie odnosilem do twojego zdania nie do tego co stwierdzil @Zyx, choc to co on stwierdzil to tylko prawda!
jacobson
no wlasnie nie rozumiem czym on odstaje od takich frameworkow jak symfony ... przeciez nawet duzy serwis mozna postawic na takim framerowku jak CI. Ma niedociagniecia jednak ogolny projekt, prostota pomagaja w implementacji. Czy nie mam racji ? Co zmieni to jak serwis bedzie napisany w zendzie a w CI . poza tym ze w tym pierwszym bedzie PRO bo to jest zend ...
LSM
Prawdę jak na moje oko napisał Cysiaczek w przypiętym o MVC:
"Frameworki implementujące wzorzec MVC
Kod tych aplikacji, oraz sposób ich działania rozwieje większość Twoich wątpliwości."

A Zyx się zamotał. wstydnis.gif (?)

@jacobson Dla mnie to temat rzeka. Nie ma czegoś takiego jak najlepszy framework. No bo jakie kategorie oceny teraz wziąć pod uwagę ? Najgorsza jest ortodoksyjność. Ja cenie sobie ZF za pewne rozwiązania, ale do wielu projektów stosuje po prostu CI bo jest szybszy i mniejszy. Trzeba wziąć pod uwagę co potrzebujesz. Mi się nie chce uczyć API Symfony na przykład bo to dla mnie strata czasu. Wole wlepić to co mam, wytestowałem, wypróbowałem do CI i chulać swawolnie na piwko. Proste.
Crozin
@LSM: Co Sf2 czerpie z CI2? Akurat Symfony (właściwie to "cały świat PHP") na potęgę zrzyna z projektów Java'owych. Spring -> Symfony, Hibernate / JPA -> Doctrine, JUnit -> phpUnit, Maven / Ant -> Phing itd. W sumie bardzo dobrze, że korzystają ze sprawdzonych rozwiązań. Co do tego jaki polecam... na chwilę obecną Symfony w wersji drugiej jest narzędziem wartym uwagi.

@jacobson: Aplikacja jest "PRO", gdy jest napisana w "PRO stylu" i działa w "PRO środowisku", a nie gdy korzysta z jakiś tam narzędzi.

Jeszcze odnośnie frameworków MVC. O frameworku (czy o aplikacji) mówimy, że jest zbudowana w oparciu o architekturę MVC w momencie, gdy spełnia ona wszystkie założenia koncepcji / wzorca MVC. Całkiem logiczne, prawda? Założenia wzorca są podane tutaj: http://en.wikipedia.org/wiki/Model–v...roller#Overview
Teraz, jeżeli Twoja aplikacja spełnia te wszystkie założenia to jest aplikacją o architekturze MVC. Jeżeli tego nie robi to nie jest aplikacją o architekturze MVC. Czy to źle jeżeli aplikacja nie implementuje MVC? Nie! (przepraszam za styl, ale niektórzy nie potrafią tego zrozumieć) Jest po prostu aplikacją o innej architekturze - niektóre również mają swoje dedykowane nazwy.
everth
Zyx (moim zdaniem) po prostu jest purystą jeśli chodzi o wzorce. A dla mnie dyskusja co bardziej implementuje wzorzec XYZ jest wtórna w stosunku do pytań: w czym ci się wygodniej pracuje i czego używacie w zespole (jeśli pracujesz w zespole).

@UP
Ano właśnie - klasyfikacja i szufladkowanie użytych wzorców w danym kodzie. Zazwyczaj ma to minimalne przełożenie na komfort pracy z danym narzędziem.
LSM
@Crozin spokojnie, jak dla mnie to wystarczy normalna czcionka. A poza tym to jedziesz bez trzymanki hehe. Super ten link z Wikipedi co wysłałeś. A niżej jest na przykład coś takiego:
"CodeIgniter A simple, light, fast, open source MVC framework for building websites using PHP."
"Zend Framework An open-source PHP 5-based framework featuring an MVC layer and a broad-spectrum of loosely coupled components."
Najs... ja myślę, że tutaj mamy problem z wyrażaniem jasno o co nam chodzi. Zyx i Crozin piszecie o jakiejś implementacji MVC i nie sposób zrozumieć co przez to macie na uwadze. CI posiada implementację MVC. ZF też. Teraz pytanie do diaska czym jest implementacja MVC ? Tym co jest we frameworku czy tym co już żyje w aplikacji napisanej w tym frameworku.
ZF, CI itd. można powiedzieć ma wbudowane MVC z którego można korzystać. Ale jak dla mnie to jest implementacja MVC obok innych rzeczy, które są napisane czyli zaimplementowane. Można korzystać z MVC, które dają nam frameworki albo to olać i zrobić sobie swój sposób komunikacji np. rozproszony styl sterowania etc. itp.
Crozin
@everth, @LSM: Wszelkie moje zastrzeżenia co do MVC w popularnych PHP-owych FW wynikają nie z tego, że nie implementują one "prawdziwego MVC" (notabene w aplikacjach webowych wcale nie najlepszy wybór wg mnie), tylko że rozpowiadają nieprawdę jakby się co najmniej wstydziły tego, że mają inną - lepszą moim zdaniem - architekturę niż MVC.
Koniec końców doprowadziło to już do tego, że MVC nie jest terminem którym można określić architekturę aplikacji, ponieważ na dobrą sprawę jak ktoś mówi "aplikacja MVC" to ni cholery, nie wiem co dokładnie ma dana osoba przez to na myśli. Ot, w czym cały problem.

@LSM: Niestety dosyć często Wikipedia to nie najlepsze źródło, gdy w grę wchodzą jakieś zaawansowane, precyzyjne zagadnienia z dowolnej dziedziny, a taki problem tutaj występuje. Nie bez powodu przy artykułach medycznych jest taki wielki komunikat, by nie do końca wierzyć w to co się czyta. W innych katetgoriach nie ma go, bo konsekwencje z potencjalnego błędu są względnie niewielkie. W sumie można by i poprawić wiki, ale... mi się niestety nie chce. wink.gif

Swoją drogą znowu złamałem swoje postanowienie o nie udzielaniu się w wątkach-flame'ach o religii, polityce i sprawach światopoglądowych do których niedawno dodać musiałem i temat MVC. wink.gif
LSM
@Crozin Jak dla mnie luz, z tym że musisz zmienić nie tylko Wikipedię, ale i dokumentację ZF, CI w której wyraźnie piszą o użyciu koncepcji MVC :-).
"But Zend Framework also provides an advanced Model-View-Controller (MVC) implementation" Rozumiem, że nie zgadzasz się z twórcami ZF że użyli MVC ? Twoim zdaniem co użyli ? Prawdziwe MVC ? MVC wzorzec podziału logiki na trzy warstwy który nie nakazuje Ci jak możesz się tym pobawić. Jeśli ktoś mi mówi o MVC to widzę zarys logiki kodu i wiem czego mogę się spodziewać. A wiem że napewno będą takie pojęcia jak Widok, Kontroler (Sterownik, Koordynator, Prezenter) i Model (ZarządcaBazą) - nazwy też przecież są tylko umowne...

MVC to prosta sprawa, a ludzie ją komplikują niepotrzebnie i tego nie rozumiem. A niuanse MVC ? To już też temat rzeka - wzorzec to coś prostego, wzorcowego i takie też powinny być rozmowy na temat rzeczy wzorcowych bez wdawania się w niepotrzebne niuanse typu hMVc, MVP itp. CI to przecież hMVC ale ja to zlewam. Jest MVC i tyle. Wystarczy że zrobię sobie zmienną statyczną w kontrolerze bo uznam, że coś zmienie w MVC i nazwę sobie to sMVC i będę mówił, że mam nową architekturę już nie MVC ale moje wielkie super sMVC. Błędne myślenie. Wzorzec to wzorzec. WZORZEC hehe. A niuanse jak wykorzystałeś wzorzec to rzecz odrębna. Przynajmniej ja to tak widze. closedeyes.gif
Crozin
Widzisz... właśnie Wzorzec to wzorzec. WZORZEC hehe.

Jak idziesz do fabryki i mówisz "Wykonajcie mi 20.000 kulek do moich łożysk. Wymiary ..., materiał .... O, a tutaj macie wzorzec takiej kulki." to czego oczekujesz? 20.000 kulek spełniających te wymagania (wymiary, materiał, kształt). Nie specjalnie interesuje cię jak oni to wyprodukują, skąd wezmą i jak przetworzą materiał na nie. Interesuje cię wyłącznie efekt końcowy. Ale jak oddadzą Ci kulki o nieprawidłowej średnicy i w dodatku z innego materiału to one mimo iż dosyć podobne jednak nie spełniają tego wzorca. Tutaj jest kropla w kroplę identyczna sytuacja.

Cytat
Wystarczy że zrobię sobie zmienną statyczną w kontrolerze bo uznam, że coś zmienie w MVC i nazwę sobie to sMVC i będę mówił, że mam nową architekturę już nie MVC ale moje wielkie super sMVC.
I cholera zrobisz dokładnie to co powinieneś! Jeżeli zmiana oznaczała, że jakieś założenia się zmieniły to jak najbardziej powinieneś używać innej nazwy, bo koniec końców skończyłeś z czymś innym, prawda? Co najwyżej będziesz mógł powiedzieć, że Twój wzorzec wywodzi się z MVC i ma nawet sporo rzeczy zgodnych z nim.
Cytat
ale moje wielkie super sMVC
Niestety widzę, żę to moje "Nie!" w poprzednim poście było zbyt małe.
Cytat
bez wdawania się w niepotrzebne niuanse typu hMVc, MVP itp.
Prosta zasada... jeżeli nie wiesz o czym mówisz nie mów. Bo o ile pomiędzy XXX, a H(ierarchical)XXX jest zazwyczaj różnica jedynie w tym, że występują wielokrotnie zagnieżdżone te same struktury o tyle pomiędzy MVC, MVP, MVVM itp. zachodzą już konkretne zmiany w założeniach i działaniu. Dlatego też każdy wzorzec ma inną nazwę, bo opisuje on co innego. To już nie są niuanse.
LSM
"Prosta zasada... jeżeli nie wiesz o czym mówisz nie mów." Prosta zasada jeśli nie wiesz, że ktoś wie o czym mówi nie pisz takich banialuków bo robi się niemiło. Ja widzę, że tu trochę kultury i szacunku by się przydało na tym forum hehe.

A więc...
Co do kuleczuniek to wzorzec wyglądałby na moje oko tak:
- {kulka: srednica, ksztalt, waga} (MVC: warstwa pierwsza kontroluje oczomwidoczne, warstwa druga kontroluje kontrolowane, warstwa trzecia kontroluje wiedziane)
A implementacja czyli wykonanie tak:
- {kulka: srednica=20cm, kształt=kula niedoskonała z marginesem błędu, waga=20g z marginesem +-3g }
Inna implementacja wzorca kulka:
- {kulka: srednica: dowolna w granicach 15-20cm,ksztalt=idealna na poziomie subatomowym, waga=gigantyczna ale proporcjonalna do srednicy i masy}
Czyli jeśli kulkę wykonają źle to spełni wymagania wzorca ale będzie na bakier z implementacją.
Sytuacja jest jak morze w kroplę hehe.

A reszta niech pozostanie milczeniem. Tworzenie czegoś nowego w oparciu o już znane i nazywanie tego czymś zupełnie nowym to ryzykowne przedsięwzięcie.

A poza tym odbiegasz od tematu i słabo się dyskutuje w ten sposób. To jak tam mistrzu, jest to MVC w ZF czy nie ma ? :-)
Crozin
MVC nie definiuje jedynie trzech warstw aplikacji (średnica, kształt*, waga kuliki), ale również odpowiedzialność poszczególnych warstw i sposób ich komunikowania się. Innymi słowy określa, że kulka ma mieć taką i taką średnicę i wagę. Przez implementację w przypadku tej kulki rozumieć można proces jej powstania, bo można to zrobić przykładowo na dwa sposoby (dwie implementacje wzorca).
1. Utworzyć sobie formę i wlać do niej roztopione tworzywo, odczekać i wyjąć je z formy.
2. Wziąć sześcienny blok materiału i przy pomocy frezarki nadać mu odpowiedni kształt.
MVC to bardzo precyzyjny wzorzec. On dokładnie określa w jaki sposób ma działać aplikacja i niejako nie ma tutaj miejsca na "własną interpretację założeń". Ty natomiast wyglądasz jakbyś w rozmowie o różnicach pomiędzy silnikiem benzynowym, na gaz i dieselu twierdził, że jest ona bezsensowna bo koniec końców to wszystko to silnik do których się wlewa jakieś paliwo.

Cytat
Tworzenie czegoś nowego w oparciu o już znane i nazywanie tego czymś zupełnie nowym to ryzykowne przedsięwzięcie.
Tworzysz coś nowego? Tworzysz. Więc sobie to nazywasz. A że wzorowałeś się na czymś innym to już inna sprawa. Jeżeli tylko pierwowzór i nowy twór mają ze sobą co nieco wspólnego dobrze byłoby odwzorować to w nazwie by ułatwić ludziom życie (patrz: MVC, MVP, MVVM).

Cytat
To jak tam mistrzu, jest to MVC w ZF czy nie ma ? :-)
Ktoś o braku kultury przy zwykłej uwadze wspominał?

* trochę bezsensowna ta cecha, w kontekście kulki o danej średnicy. wink.gif
LSM
Cytat
trochę bezsensowna ta cecha, w kontekście kulki o danej średnicy


Niekoniecznie jeśłi weźmiemy pod uwagę że mechanika kwantowa ma się nijak do określeń makro świata. Czyli jeśli średnica kulki jest określona na 20cm to jednak możemy określić jej kształt czy to będzie w formie doskonałej kuli na poziomie świata kwantowego czy też nie. Jeśli poziom kwantowy będzie brany pod uwagę to w makroświecie jej średnica nie ulegnie istotnej zmianie.
Biorąc pod uwagę filozoficzny wymiar naszej dyskusji raczę zauważyć ponownie iż MVC jest obecny w ZF. Natomiast nie spamujmy już o tym nieszczęsnym MVC. Mamy inne podejście do sprawy.
Natomiast co do kultury to nie lubię kiedy rozmówca nie rozumie mojego podejścia i utwierdza mnie w przekonaniu, że nie wiem o czym mówię. To nielogiczne. Lepiej stwierdzić po prostu: nie podzielam Twojego zdania - czy nie brzmi to mniej agresywnie ? businesssmiley.png Zachowuejsz dystans do rozmówcy i nie wnikasz w jego kompetencje intelektualne hehe.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.