Nazewnictwo zasobów w MVC

0

Czy istnieją jakieś dobre praktyki odnośnie definiowania zasobów we wzorcu MVC? Może warto stosować te z RESTful API? Wtedy taką aplikację w przyszłości łatwo było by przerobić na REST API gdyby zaszła taka potrzeba.

Przejrzałem trochę dokumentacji frameworków dla różnych języków np. C#, Java, PHP i panuje tu chyba wolna amerykanka. O ile wykorzystanie metod HTTP jest wszędzie podobne to dodawanie czasowników jako sufiksów jest według mnie trochę zbyteczne np. w laravel: https://laravel.com/docs/5.1/controllers#restful-resource-controllers lub grails: https://docs.grails.org/5.2.4/guide/REST.html#restControllersStepByStep Z kolei w jednej książce z podstaw Springa została zaprezentowana aplikacja w której cała interakcja była realizowana za pomocą GET xD

Chciałbym uporządkować prostą apkę w Spring MVC żeby była zgodna z czymkolwiek.

3

Istniejące "konwencje" są karykaturą oryginalnego wzorca MVC stworzonego przez Trygve Reenskaug.

W orginalnym MVC po prostu chodziło o oddzielenie Input/Output od logiki. Orginalny wzorzec Model-View-Controller można po polsku rozumieć "Domena-output-input" (czy też input-domena-output - czyli to by było controller-model-view). Był to bardzo dobry model, który zachęcał do stosowania Separation of Concerns.

Teraz to wyewoluowało w karykaturę, która sugeruje tworzenie horizontal slicing, czyli warstwowego monolitu - gdzie jest warstwa kontrolerów, warstwa modeli (które są często ORM'ami) i warstwa widoku - czyli w zasadzie nie ma nic wspólnego z orginalnym pomysłem oprócz nazwy.

Także odpowiadając na Twoje pytanie - po prostu nazywaj metody w swojej aplikacji, tak żeby mówiły jasno co robią i tyle.

1

MVC na backendzie to jakaś pomyłka. Przynajmniej w taki sposób nazwane. Jakby to nazywać Domena-output-input, to jeszcze mogłoby mieć to sens, ale jeśli przenosimy pattern pierwotnie pomyślany dla apek desktopowych z GUI[1] do backendu, to potem nic dziwnego, że nic nie jest na swoim miejscu i ludzie to przez lata wykoślawiali. Do tego stopnia, że potem jak MVC trafiło do webowego frontendu (frameworki JavaScript), to już skażone backendem.

Frontendowcy później co prawda na nowo odkryli MVC (frameworki typu React), ale do tego stopnia są zaślepieni, że nawet ludzie, którzy pracują nad Reactem, uważają, że robią coś innego niż MVC (ostatnio Dan Abramov nawet skontrastował React z MVC), gdy tymczasem robią stare dobre MVC, ale nie są tego świadomi do końca.

[1] MVC powstało dla apek pisanych w Smalltalku, a ludzie myślą, że to backendowy wynalazek :D https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller

1 użytkowników online, w tym zalogowanych: 0, gości: 1