Jestem studentem, ale mam nadzieję, że wkrótce przeniosę się do branży oprogramowania. Wydaje się, że jest dużo szumu na temat wzoru oprogramowania MVC. Zauważyłem, że frameworki PHP są często MVC, a co z językami innymi niż internetowe… czy z nimi jest tak samo? W mojej pracy magisterskiej (C ++) wybrałem wzorzec MVC, ponieważ ładnie oddziela logikę i interfejs użytkownika.
Czy w przemyśle jest często używany? Jeśli tak, jakie są główne powody i jakie są inne konkurencyjne, popularne projekty?
Odpowiedzi:
MVC zyskuje dużo szumu i używania, ponieważ jest to bardzo przydatny wzorzec dla swojej domeny.
MVC zachęca do rozdzielenia obaw. Może to uprościć programowanie, jeśli zostanie wykonane poprawnie. Każda aplikacja, która wyświetla i / lub modyfikuje dane zawarte w magazynie danych, będzie miała funkcję MVC, ale nie można jej rozdzielić. Brak podziału komponentów może spowodować niepożądane połączenie między problemami.
W przypadku MVC zmiana interfejsu użytkownika (widok) aplikacji powinna być stosunkowo łatwa bez modyfikowania kontrolera lub modelu. Może to być pożądane, jeśli chcesz zezwolić na dostęp ze smartfona, Internetu i jednej lub więcej aplikacji.
W przypadku dużych zespołów MVC może pozwolić na lepsze wykorzystanie zasobów, ponieważ programiści mogą wykonywać zadania w jednej z warstw, a w innych warstwach mogą nie potrzebować dużych umiejętności. W zależności od obciążenia zasobów koordynacyjnych może to być bardziej wydajne.
źródło
Tak, jest często używany. Aplikacje iPhone / iPad są skonfigurowane jako MVC. Ostatnio widziałem wiele aplikacji asp.net MVC.
MVC pozwala na większą elastyczność i zachęca programistów do pisania osobnego kodu dla każdej funkcji. Ułatwia utrzymanie.
źródło
Obecnie jest w modzie.
Nigdy nie lekceważ potęgi szumu. Wkrótce ktoś wymyśli coś innego, nowszego, bardziej błyszczącego i łatwiejszego do zrozumienia, a wszyscy będą potępiać MVC jako źródło wszelkiego zła (stało się z formularzami internetowymi), albo będzie tak wielu ludzi, którzy będą go używać, że więcej wiedźmich weteranów potępić to jako „byka zarządzania * * ” (stało się z XML). Albo nastąpi zmiana na inny wzorzec, ponieważ MVC „nie jest wystarczająco elastyczny, aby rozwiązać bardzo trudny problem, który muszę rozwiązać” (języki o typie statycznym vs. języki dynamiczne).
Pod koniec dnia MVC jest podejściem ramowym, które jest odpowiednie dla wielu problemów, które wywołuje programowanie sieciowe. Będzie jeszcze przez jakiś czas, ale wyobrażam sobie, że powodem, dla którego większość ludzi go używa, jest zgodność z modnymi słowami.
EDYTOWAĆ
Uwaga: jestem w pełni świadomy, że wzorzec MVC istnieje od lat i był używany w frameworkach przed asp.net MVC. Mówię tylko, że w tej chwili jest dość popularny, więc zyskuje więcej prasy niż inne podejścia. Używam MVC do wszystkich moich osobistych projektów i korzystam z niego także w projektach komercyjnych (jestem programistą .net).
To nie był rant.
źródło
Z mojego doświadczenia wynika, że nie jest on używany tak często, jak powinien. Jest to znacznie lepszy model niż niektóre alternatywy, ale w ciągu ostatnich kilku lat zyskuje dużo szumu; z tego powodu istnieje wiele starszych wątków, które ludzie boją się przekonwertować na MVC lub boją się używać MVC do przyszłej pracy, ponieważ jest to poza ich strefą komfortu.
źródło
Myślę, że przekonasz się, że cała rodzina Stack Exchange działa na MVC
źródło
ASP.NET MVC zyskał duże znaczenie dla aplikacji internetowych, ponieważ .NET jest często używany w branży.
Aplikacje internetowe Microsoft ewoluowały z klasycznej ASP do ASP.NET, która opiera się na formularzach internetowych (aby umożliwić programistom VB6 Win Forms łatwe tłumaczenie na nową granicę sieci).
Niestety formularze sieciowe są oparte na stanie, a HTTP (na którym oparta jest sieć) jest bezstanowe, więc potrzebne było wiele nieprzyjemnych obejść związanych z takimi rzeczami, jak stan wyświetlania.
ASP.NET MVC pozwala na przetłumaczenie umiejętności programistów WebForm na platformę internetową, która ma dobre SoC i która włożyła wiele wysiłku w testowanie (ponieważ WebForms nie jest bardzo testowalny, zespół MVC włożył wiele wysiłek w ramach).
To powiedziawszy, to nie jest panaceum / srebrna kula, i jak każdy framework, są czasy, aby go użyć i razy, aby go nie używać. Mamy nadzieję, że ludzie nie wykorzystają go do rozwiązania wszystkiego: gdy jedynym narzędziem jest młotek, każdy problem wygląda jak gwóźdź.
źródło
To tylko moment w historii, ponieważ MVC to kilka bardzo prostych koncepcji, które spotkały się z hype z kilku konkretnych ram, które wyróżniają go w swoich materiałach marketingowych. Zdarza się również, że ominęło wiele dobrych praktyk, które pojawiły się w rozwoju oprogramowania. Dotyczy to podwójnie rozwoju pseudo-stanowego, takiego jak HTTP; do tego stopnia, że znam tylko jeden naprawdę inny „wzorzec”, który jest używany w świecie sieci Web - bardzo zły model oparty na zdarzeniach WebForms ASP.Net.
Jestem szczerze zaskoczony, że jest wystarczająco dużo na całą rozprawę.
Ale żeby odpowiedzieć na twoje pytanie. WebForms to wąski kawałek webcarta, który głównie znajduje zastosowanie w intranetowych aplikacjach biznesowych. Strony kodowane spaghetti bez prawdziwego wzoru prawdopodobnie stanowią przyzwoitą ilość diagramu Venna, ale prawie wszystko, co jest ramą, jest przynajmniej pod silnym wpływem MVC, więc twoja krótka odpowiedź będzie brzmiała TAK .
źródło