konto usunięte
Marcin
B.
Webdirector,
Wspólwłasciciel
Contip.net
Temat: model, helper czy klasa?
IMHO helpery raczej są do widoku. Obróbka danych to dość ogólne pojęcie, jeśli dotyczy tych konkretnych danych modelu to do modelu.
Wojciech
Soczyński
Programista
eksplorator -
blog.wsoczynski.pl
Temat: model, helper czy klasa?
Za komunikację z bazą danych generalnie zwykle odpowiada warstwa DAL (Data Access Layer), model zawiera logikę - czyli to co określiłeś jako obróbkę danych. Oczywiście sposób warstwowania aplikacji zależy od tego jak będzie ona duża i co chcesz osiągnąć.konto usunięte
Temat: model, helper czy klasa?
Zend w zasadzie utożsamia model z ORM-em, stad moje pytanie. View helpery sa do widoku ale action helpery to już chyba niekoniecznie, he?
Wojciech
Soczyński
Programista
eksplorator -
blog.wsoczynski.pl
Temat: model, helper czy klasa?
Action helpery to są po prostu kawałki kodu kontrolera, które się często powtarzają. Kontroler nie ma natomiast nic wspólnego z "obróbką danych" jego zadaniem jest tylko analiza requestu i wywołanie odpowiednich metod modelu, które wszystko robią. Jeżeli chcesz stosować zasade Fat Model, to nie utożsamiaj modelu z bazą danych...
Jarosław
Żeliński
Analityk i
Projektant Systemów
Temat: model, helper czy klasa?
Wojciech Soczyński:
Action helpery to są po prostu kawałki kodu kontrolera, które się często powtarzają. Kontroler nie ma natomiast nic wspólnego z "obróbką danych" jego zadaniem jest tylko analiza requestu i wywołanie odpowiednich metod modelu, które wszystko robią. Jeżeli chcesz stosować zasade Fat Model, to nie utożsamiaj modelu z bazą danych...
w kwestii wzorców to: faktycznie "fat model" to DDD czyli "cały biznes w Modelu", w kwestii danych fizycznych polecam wzorzec "repository"... np. tu opis
http://www.pzielinski.com/?p=281
Wojciech
Soczyński
Programista
eksplorator -
blog.wsoczynski.pl
Temat: model, helper czy klasa?
W ogóle te całe helpery są wg mnie bezsensownym tworem i jakąś dziwną protezą nie wiadomo na co ;)
Jarosław
Żeliński
Analityk i
Projektant Systemów
Temat: model, helper czy klasa?
Wojciech Soczyński:
W ogóle te całe helpery są wg mnie bezsensownym tworem i jakąś dziwną protezą nie wiadomo na co ;)
ja też tego nie kumam :)
Marcin Drwięga Programista PHP
Temat: model, helper czy klasa?
Temat znaleziony w Google, bo sam chciałem poznać konkretną definicję helpera. To zabawne, używam go a dalej dokładnie nie wiem po co to istnieje:) No ale wypowiem się, a nuż się komuś przyda?Helper wg mnie to klasa, która służy do stworzenie jednego obiektu pod jedno konkretne zadanie. Ważne, by klasa dotyczyła jednego zagadnienia. Różnica między zwykłym obiektem a helperem jak taka, że helper ma zasięg globalny - obiekt może zostać utworzony gdziekolwiek.
Przykładem może być klasa 'File' w Javie, którą wywołuje się jeden obiekt pod jeden plik. Jeżeli nie ma już potrzeby operowania na pliku, obiekt zostaje zniszczony.
Nie wiem szczerze czy to dobrze rozumuję. Tak czy siak, z helperów korzystam również po to by uniknąć stosowania Singletonów.Marcin Drwięga edytował(a) ten post dnia 17.03.12 o godzinie 17:58
Wojciech
Soczyński
Programista
eksplorator -
blog.wsoczynski.pl
Temat: model, helper czy klasa?
Marcin Drwięga:Widzę, że odkopałeś temat z przed roku :P. Jak bym miał podać definicje "helpera" to bym napisał tak: klasa stworzona po to, żeby wybrnąć ze zbyt dużej ilości kodu wrzuconą do jakiejś klasy przez nieudolnego programistę :)
Temat znaleziony w Google, bo sam chciałem poznać konkretną definicję helpera. To zabawne, używam go a dalej dokładnie nie wiem po co to istnieje:) No ale wypowiem się, a nuż się komuś przyda?
Helper wg mnie to klasa, która służy do stworzenie jednego obiektu pod jedno konkretne zadanie. Ważne, by klasa dotyczyła jednego zagadnienia. Różnica między zwykłym obiektem a helperem jak taka, że helper ma zasięg globalny - obiekt może zostać utworzony gdziekolwiek.
Przykładem może być klasa 'File' w Javie, którą wywołuje się jeden obiekt pod jeden plik. Jeżeli nie ma już potrzeby operowania na pliku, obiekt zostaje zniszczony.
Nie wiem szczerze czy to dobrze rozumuję. Tak czy siak, z helperów korzystam również po to by uniknąć stosowania Singletonów.
konto usunięte
Temat: model, helper czy klasa?
Chce napisać program zgodnie z regula "fat models and skinny controllers".
To bardzo głupia reguła więc ją odradzam.
Model powinien być totalnie niezależny od controller'a (warstwy) więc 'przytycie' jednego nie powinno mieć żadnego wpływu na 'masę' drugiego.
Trzeba też dodać, że ew. "fat models and skinny controllers" co najwyżej mogłoby być (bo nie jest) konsekwencją dobrej architektury a nie jej 'przyczyną'... A tobie chodzi przecież o dobrą architekturę, prawda ?
Zastanawiam się, gdzie umieścić metody do obróbki danych.
Na czym polega ta obróbka ? Jeśli na odpowiednim formatowaniu / konwersji danych to w View (czyli klasy View wyspecjalizowane w wyświetlaniu konkretnych danych).
Dla przykładu: Jeśli masz wyświetlić imię i nazwisko pracownika to imho powinieneś stworzyć klasę / kontrolkę "NameSurnameTextBox" która dziedziczy po 'TextBox' np. a konstruktorze przyjmuje obiekt modelu klasy "Worker".
Wojciech
Soczyński
Programista
eksplorator -
blog.wsoczynski.pl
Temat: model, helper czy klasa?
Jakub Wojt:
Chce napisać program zgodnie z regula "fat models and skinny controllers".
To bardzo głupia reguła więc ją odradzam.
Model powinien być totalnie niezależny od controller'a (warstwy) więc 'przytycie' jednego nie powinno mieć żadnego wpływu na 'masę' drugiego.
Trzeba też dodać, że ew. "fat models and skinny controllers" co najwyżej mogłoby być (bo nie jest) konsekwencją dobrej architektury a nie jej 'przyczyną'... A tobie chodzi przecież o dobrą architekturę, prawda ?
Zastanawiam się, gdzie umieścić metody do obróbki danych.
Na czym polega ta obróbka ? Jeśli na odpowiednim formatowaniu / konwersji danych to w View (czyli klasy View wyspecjalizowane w wyświetlaniu konkretnych danych).
Dla przykładu: Jeśli masz wyświetlić imię i nazwisko pracownika to imho powinieneś stworzyć klasę / kontrolkę "NameSurnameTextBox" która dziedziczy po 'TextBox' np. a konstruktorze przyjmuje obiekt modelu klasy "Worker".
Moim zdaniem warstwa widoku powinna być niezależna zupełnie od warstwy modelu - w twoim przykładzie nakładasz zależność klasy NameSurnameTextBox (widok) od klasy Worker (model). Moim zdaniem to zła praktyka, widok powinien być w 100% głupi - dostawać czyste DTO, czy to w postaci dedykowanych klas DTO, czy też Map, dzięki temu unikamy pokusy manipulacji modelem z widoku.
Jarosław
Żeliński
Analityk i
Projektant Systemów
Temat: model, helper czy klasa?
Widok powinien wyświetlać i nie myśleć. Na poziomie Vidok tekst jest już tylko tekstem, tu Imię Nazisko jest tym samym co Marka Samochodu - oba są tekstem. W kwestii ewentualnego "preformatowania" przydaje się korzystanie z MVVC, innymi słowy jeżeli miejsce wyświetlania ma ograniczone możliwości do tylko obiekt dziedziny wie "co można uprościć" ...W kwestii helpera nie wiem co to jest, po prostu możliwe są usługi (w DDD Serviceces), kto powiedział, ze klasa dziedziny musi być encją? Osobiście odradzam "teorię" mówiącą, że "zbyt dużo kodu należy podzielić", istotne są operacje publiczne i ich spójność (konkretna odpowiedzialność klasy) a nie to ile linii kodu to ma, nikt nie dzieli na kawałki metody renderingu obiektów 3D tylko dlatego, ze 'dużo tego"...
konto usunięte
Temat: model, helper czy klasa?
Moim zdaniem warstwa widoku powinna być niezależna zupełnie od warstwy modelu - w twoim przykładzie nakładasz zależność klasy NameSurnameTextBox (widok) od klasy Worker (model). Moim zdaniem to zła praktyka,
W sumie racja. Kontrolka powinna przyjmować obiekt klasy WorkerState przy czym np:
class Worker extends WorkerState implements WorkerDomain
widok powinien być w 100% głupi -
dostawać czyste DTO,
nie lubię DTO ;)
Oskar
Marciniak
Koder php
hobbystycznie :-)
Temat: model, helper czy klasa?
Helper zazwyczaj powinien byc klasa ze statycznymi metodami ktore ulatwiaja czesto wykonywane operacje w kontrolerze czy tez widoku.U mnie np mam kilka takich Helperow a te ktore najczesciej uzywam to Box i Form ten pierwszy tworzy komunikaty i alert() z button'ami tak/nie przydatne w czasie usuwania danych np.
A Form sluzy do budowy formularzy, gdy mam potrzebe by wykorzystac jakis helper w widoku to go poprostu do niego laduje.
Ladnym przykladem jest Kohana.
Widok powinien wyświetlać i nie myśleć
Ja nie do konca sie z tym zgadzam, zalezy jak zostal zaprojektowany nasz system.
Moim zdaniem warstwa widoku powinna być niezależna zupełnie od warstwy modelu
Tu nie chodzi o zdanie a o dobra implementacje wzorcow architektonicznych.
W MVC np model i widok sa powiazane ze soba to widok np wie czy ma zostac dolaczona paginacja do danego zasobu bazujac sie na interfejsach implementujacych przez model.
W MVP na ktorym jako tako bazuja sie wszysykie frameworki jak Zend,Symfony,Kohana czy Cake ta zaleznosc wyglada juz inaczej czyli to co widzimy na codzien nie widok pobiera dane z modelu lecz to kontroler mu je ustawia.Oskar Marciniak edytował(a) ten post dnia 18.03.12 o godzinie 20:45
konto usunięte
Temat: model, helper czy klasa?
Widok powinien wyświetlać i nie myśleć.
Chodzi właśnie o to, że taka kontrolka 'nie myśli' więcej niż musi.
Nawet w TextBox jest jakaś logika - enumeracja kolejnych znaków stringa i rysowanie ich.
W 'naszej' dedykowanej dla konkretnych zadań (czyli nie ogólnych) kontrolce będzie łączenie Properties Name i Surname z obiektu z interface HasNameAndSurname tzn.
class Worker implements HasNameAndSurname.
Dodatkowo taką kontrolkę będzie można wykorzystać przy wyświetlaniu 'imion i nazwisk' wszystkich obiektów (Worker, Client etc ...) które taki interface implementują.
Jedną kontrolką można 'załatwić' załatwić wyświetlanie wszystkich 'imion i nazwisk' w systemie.
Może tak: W systemach ERP nie ma czegoś takiego jak String'i, Int'y, Floaty, List'y, są za to nazwy, imiona, nazwiska, ceny, ilości, spisy etc. Ja proponuję po prostu, wykorzystanie TextBoxów, ValueBoxów, ListControl w celu modelowania zachowanie NameSurnameBox, PriceBox, WorkersList'ów.
Na poziomie Vidok tekst jest już tylko tekstem, tu Imię Nazisko jest tym samym co Marka Samochodu - oba są tekstem.
W kwestii ewentualnego "preformatowania" przydaje się korzystanie z MVVC, innymi słowy jeżeli miejsce wyświetlania ma ograniczone możliwości do tylko obiekt dziedziny wie "co można uprościć" ...
Jaką przewagę daje przeniesienie kodu z kontrolki do ModelView ?
W kwestii helpera nie wiem co to jest,
To jest kod proceduralny w klasie :) podobnie jest z klasami ModelView z resztą.
Jarosław
Żeliński
Analityk i
Projektant Systemów
Temat: model, helper czy klasa?
Jaką przewagę daje przeniesienie kodu z kontrolki do ModelView ?
masz np. klasę dziedzinową Samochód, zapytana o "Dane samochodu" przez "wypasiony" interfejs poda komplet danych ze zdjęciem, zapytana przez "ubogi" dobierze minimum podstawowych danych. Tak wiec model faktyczny można przykryć takim adapterem. Pożytek jest taki, że po napisaniu interfejsu na Androida interfejs jest nadal prosty i lekki, a odwołania z Androida przechwytuje adapter Vidoku, chodzi o to, że "Model jest święty", modeluje w 100% logikę i nie naginam go z żadnego powodu, tylko dzięki temu model jest "wymiennny i przenoszalny".
W kwestii helpera nie wiem co to jest,
To jest kod proceduralny w klasie :) podobnie jest z klasami ModelView z resztą.
ale jaką ma odpowiedzialność, jaką wartość dodaną wnosi?
konto usunięte
Temat: model, helper czy klasa?
Jakub vs Jarek. Dotnet vs Java :D Obaj macie rację biorąc pod uwagę nawyki z Waszych środowisk ;) Tak słyszałem ;)
Wojciech
Soczyński
Programista
eksplorator -
blog.wsoczynski.pl
Temat: model, helper czy klasa?
Łukasz K.:Miałbyś 100% racji, gdyby Jarek był programistą :>
Jakub vs Jarek. Dotnet vs Java :D Obaj macie rację biorąc pod uwagę nawyki z Waszych środowisk ;) Tak słyszałem ;)
konto usunięte
Temat: model, helper czy klasa?
Wojciech Soczyński:
Łukasz K.:Miałbyś 100% racji, gdyby Jarek był programistą :>
Jakub vs Jarek. Dotnet vs Java :D Obaj macie rację biorąc pod uwagę nawyki z Waszych środowisk ;) Tak słyszałem ;)
Ufam, że nie projektuje w próżni ;)
Podobne tematy
-
GL - Ogólne » Czy zdobyłeś już pracę dzięki Goldenline? -
-
Lublin » Czy warto wrócić do pracy z Wawy do Lublina? -
-
GL - Ogólne » Czy związek powinien byc regulowany prawnie? - małżeństwo -
-
Kolczykomania » Kolczyki dla siebie i najbliższych czy również sprzedaż -
-
SINGLEM BYĆ » Z wyboru czy z przymusu? -
-
SINGLEM BYĆ » Razem czy osobno? -
-
GL - Ogólne » przepraszam, czy jest tu gdzieś jakaś grupa dla... -
-
***Film*** » czy ktoś zna film "23"? -
-
Viral marketing » Digg czy Profigg... oto jest pytanie... -
-
Rekrutacja i selekcja » Agencja rekrutacyjna czy dział HR w firmie? -
Następna dyskusja: