Blog IT, Blog Marketing

Model View Controller

Model View Controller

Marcin Sarna , 01.07.2021 r.

Architektura, która zdominowała aplikacje webowe.

Na czym polega MVC?

Pisanie strony internetowej z rozbudowaną komunikacją z użytkownikiem to już dawno nie jest praca dla jednej osoby. Między innymi dlatego wzorzec architektury MVC stał się tak popularny. Pozwala on tworzyć nawet złożone aplikacje w ramach zarządzanego procesu, w którym kilku programistów może jednocześnie pracować nad różnymi częściami oprogramowania.

Skrót MVC oznacza tyle co model-view-controller. Oto, co oznacza każdy z tych składników:

  1. Model: backend (zaplecze witryny) zawierające całą logikę postępowania z danymi
  2. Widok: frontend czyli generalnie graficzny interfejs użytkownika (GUI)
  3. Kontroler: mózg aplikacji kontrolujący sposób wyświetlania danych

Koncepcję MVC po raz pierwszy przedstawił Trygve Reenskaug, który zaproponował ją jako sposób tworzenia graficznych interfejsów użytkownika dla aplikacji desktopowych.

Obecnie wzorzec MVC jest używany w nowoczesnych aplikacjach internetowych, ponieważ zapewnia skalowalność i pozwala obniżyć koszty stworzenia, utrzymania i rozbudowy aplikacji. Popularność MVC jest widoczna m.in. w Javascript, coraz częściej wykorzystywanym w backendzie. Pierwsze z frameworków, które stosowały koncepcję model-view-controller to KnockoutJS, Django czy Ruby on Rails.

Dlaczego warto używać MVC?

Wzorzec MVC pomaga rozbić kod frontendu i backendu na osobne komponenty. W ten sposób znacznie łatwiej jest zarządzać i wprowadzać zmiany po obu stronach aplikacji bez wzajemnego zakłócania się czy czekania aż inny zespół programistów zrobi swoją robotę. Ale oczywiście łatwiej to powiedzieć niż zrobić, zwłaszcza gdy kilku programistów musi jednocześnie aktualizować, modyfikować lub debugować pełnowymiarową aplikację. Ich praca zawsze w jakimś stopniu będzie się jednak przenikać.

Jak korzystać z MVC?

Aby lepiej zilustrować wzorzec MVC załóżmy, że chcemy zrobić prostą aplikację „Ulubiony język programowania”. Program wyświetla listę najpopularniejszych języków programowania a użytkownik może klikać nazwy języków nabijając w ten sposób licznik umieszczony przy każdym z nich. Po kliknięciu na dany język pojawia się dodatkowo jego graficzny symbol (logo). Jak to napisać w architekturze MVC?

Model

Zadaniem modelu jest po prostu zarządzanie danymi. Niezależnie od tego, czy dane pochodzą z bazy danych, interfejsu API czy obiektu JSON, za zarządzanie nimi odpowiada model. W naszej aplikacji obiekt modelu zawiera tablicę obiektów (języków oprogramowania) ze wszystkimi informacjami (danymi) potrzebnymi do aplikacji. Zarządza również wyświetlaniem bieżącego języka za pomocą zmiennej, która początkowo ma wartość null.

Widoki (UI)

Zadaniem widoku jest decydowanie o tym co użytkownik zobaczy na ekranie i w jaki sposób. Aplikacja, którą piszemy może mieć na przykład dwa takie widoki: languagesView i currentLanguageView. Oba widoki generują to co zostanie wyświetlone użytkownikowi.

Kontroler

Odpowiedzialnością kontrolera jest pobieranie, modyfikowanie i udostępnianie danych użytkownikowi. Zasadniczo kontroler jest czymś w rodzaju łącznika między widokiem a modelem. Kontroler pobiera dane z modelu i inicjalizuje widoki. Jeśli użytkownik domaga się jakiejś zmiany w danych wykorzystując do tego któryś z widoków, kontroler modyfikuje dane zgodnie z żądaniem.

Najnowsze oferty pracy:

Polecane wpisy na blogu IT:

Szukasz pracownika IT?

Dostarczymy Ci najlepszych specjalistów z branży IT. Wyślij zapytanie

Wyrażam zgodę TeamQuest Sp. z o.o. na przetwarzanie moich danych osobowych w celu marketingu produktów i usług własnych TeamQuest, w tym na kontaktowanie się ze mną w formie połączenia telefonicznego lub środkami elektronicznymi.
Administratorem podanych przez Ciebie danych osobowych jest TeamQuest Sp. z o.o., z siedzibą w Warszawie (00-814), ul. Miedziana 3a/21, zwana dalej „Administratorem".
Jeśli masz jakiekolwiek pytania odnośnie przetwarzania przez nas Twoich danych, skontaktuj się z naszym Inspektorem Ochrony Danych (IOD). Do Twojej dyspozycji jest pod adresem e-mail: office@teamquest.pl.
W jakim celu i na jakiej podstawie będziemy wykorzystywać Twoje dane? Dowiedz się więcej