W połowie zgadzam się z Odedem - nauczenie się, jak przekonać swoich nietechnicznych kolegów i menedżerów, że to, co robisz, jest ważne i przydatne, bez wyjaśnienia drobiazgowych szczegółów, jest konieczną umiejętnością, którą mądrze byś rozwinął.
Uważam jednak, że umiejętność wyjaśnienia skomplikowanych pojęć w prostych słowach w rzeczywistości pomaga w tym - jednym z problemów często spotykanych przez menedżerów nietechnicznych jest to, że ponieważ mają problemy ze zrozumieniem, co robią technicy, mają tendencję do nie ufaj im. Jest to po prostu ludzka natura: łatwiej jest uwierzyć, że coś, czego nie rozumiesz, jest bezużyteczne lub złe, niż polegać na nim. Dlatego, jeśli możesz sprawić, by koncepcje były łatwe do zrozumienia do woli, możesz z nich korzystać, kiedy będziesz ich potrzebować, a wraz z upływem czasu, twoi nietechniczni kierownicy dowiedzą się, że mogą je zrozumieć, jeśli zechcą - nie przekonasz się na nich - po prostu oszczędzasz im szczegółów dla własnego zdrowia psychicznego. Będą ci bardziej ufać.
Poza tym odpowiedzmy na pytanie:
Uważam za użyteczne stosowanie analogii zrozumiałych dla ludzi biznesu. W przypadku MVC opisuję to jako biznes.
- Modele są odpowiedzialne za logikę biznesową i dane - są to rzeczy, które definiują to, co robi program i szczegóły, jak to robi. Gdyby program był biznesem, modelami byłyby magazyny, fabryki, pracownicy i sprzęt kapitałowy. Byliby to również menedżerowie niższego poziomu, którzy dbają o przestrzeganie zasad i egzekwowanie zasad.
- Widoki są warstwą prezentacji - pokazują użytkownikom, co dzieje się w systemie i zapewniają środki do interakcji z programem. Gdyby nasz program był firmą, widoki przypominałyby podłogę salonu, stoisko sprzedaży na zjeździe handlowym lub przedstawicieli handlowych. Wyświetlają opcje, zapewniają przyjazne dla użytkownika informacje i opinie oraz odbierają zapytania z powrotem do firmy.
- Kontrolery są warstwą koordynacyjną - zapewniają, że informacje przekazywane są z modeli do widoków i odwrotnie, a wszystko działa razem, aby wykonać swoją pracę. Gdyby program był firmą, wówczas kontrolerami byłoby kierownictwo średniego i wyższego szczebla. Nie angażują się zbytnio w szczegóły, ale dbają o to, aby właściwi ludzie mieli odpowiednie narzędzia do wykonywania swojej pracy, i zatwierdzali lub odrzucali decyzje na wysokim szczeblu. Zapewniają ogólny kierunek, dzięki czemu wszystko może działać razem.
Korzyścią z wyjaśnienia tego za pomocą tej analogii jest to, że dobry menedżer zobaczy mądrość w rozdzielaniu problemów w ten sposób i może zdecydować, że powinny one być bardziej podobne do kontrolerów i nie będą zbytnio angażować się w szczegóły w przyszłości!
Mam nadzieję, że odpowie na „co” - „dlaczego” jest również łatwe dzięki tej analogii:
Wyobraź sobie idealną firmę, w której każdy dział odpowiada za jeden zestaw zadań i wie, że zawsze będzie miał potrzebne zasoby, nie martwiąc się o to, co robią inni. Przedstawiciel handlowy znajduje klienta, otrzymuje zamówienie, przekazuje je kierownictwu, który je zatwierdza, a następnie przesyła je do magazynu / produkcji / inżynierii w celu realizacji. Informacje zwrotne są bezpośrednie - nikt inny nie musi się angażować, chyba że wystąpi problem. To dobry projekt MVC - każda część ma zadanie i nie musi się martwić o inne części. W ten sposób można to łatwo zmienić, jeśli zajdzie taka potrzeba. W przypadku projektów innych niż MVC obowiązki nie są jasne. Przedstawiciel handlowy może próbować zmodyfikować produkt, gdy klient poprosi o coś innego. Lub mogą podawać różne ceny w zależności od tego, jak się czują tego dnia. Dyrektor generalny może być zaniepokojony produkcją, gdy powinien martwić się, jak zapewnić bardziej niezawodny łańcuch dostaw. Pracownicy magazynu mogą być na hali sprzedaży i rozmawiać z klientami, kiedy powinni realizować zamówienia, które zostały już podjęte.
Innymi słowy, dobry projekt MVC pozwala każdej części skupić się na jednej rzeczy, dzięki czemu może to zrobić dobrze - tak jak dobrze zorganizowana firma.
** Oświadczenie - jeśli Twoja firma jest źle zorganizowana, mogą się tym obrazić. W takim przypadku będziesz potrzebować innej analogii. Możesz także potrzebować innej pracy.