Я наполовину согласен с Одедом - учиться убеждать своих нетехнических сверстников и менеджеров в том, что то, что вы делаете, важно и полезно, без объяснения мельчайших деталей, - это необходимый навык, который вы бы хотели развить.
Тем не менее, я считаю, что возможность объяснения сложных понятий простыми терминами действительно помогает в этом - одна из проблем, с которыми часто сталкиваются нетехнические менеджеры, заключается в том, что, поскольку им трудно понять, что именно делают технические специалисты, они имеют тенденцию к не доверяй им. Это просто человеческая природа: легче поверить, что что-то, чего ты не понимаешь, бесполезно или неправильно, чем верить в это. Поэтому, если вы можете сделать концепции легкими для понимания по желанию, вы можете использовать их, когда вам это нужно, и со временем ваши нетехнические менеджеры узнают, что они могут понять это, если захотят - вы не притягиваете их к себе. на них - вы просто щадите их детали для их собственного здравомыслия. Они будут доверять тебе больше.
Помимо этого, давайте ответим на вопрос:
Я считаю полезным использовать аналогии, понятные деловым людям. Для MVC я описываю это как бизнес.
- Модели несут ответственность за бизнес-логику и данные - они определяют, что делает программа, и детали того, как она это делает. Если бы программа была бизнесом, то моделями были бы склады, фабрики, рабочие и основное оборудование. Они также должны быть менеджерами более низкого уровня, которые следят за соблюдением правил и применением политики.
- Представления - это уровень представления - они показывают пользователям, что происходит в системе, и предоставляют средства для взаимодействия с программой. Если бы наша программа была компанией, представления были бы похожи на выставочный зал, стенд продаж на торговой конвенции или торговых представителей. Они отображают параметры, предоставляют удобную информацию и отзывы, а также принимают запросы обратно в компанию.
- Контроллеры являются координационным уровнем - они обеспечивают, чтобы информация передавалась из моделей в представления и наоборот, и чтобы все работало вместе для выполнения своей работы. Если бы программа была компанией, то контролерами были бы менеджеры среднего и высшего звена. Они не слишком вовлечены в детали, но они удостоверяются, что у правильных людей есть правильные инструменты, чтобы выполнять их работу, и они одобряют или отклоняют решения высокого уровня. Они обеспечивают общее направление, чтобы все могло работать вместе.
Преимущество объяснения этой аналогии заключается в том, что хороший менеджер увидит мудрость в разделении проблем таким образом и может решить, что они должны быть более похожими на контроллеры, а не слишком увлекаться деталями в будущем!
Это, надеюсь, ответит на вопрос «что» - «почему» также легко с этой аналогией:
Представьте себе идеальную компанию, в которой каждый отдел отвечает за один набор задач и знает, что у него всегда будут необходимые ресурсы, не беспокоясь о том, что делают другие. Торговый представитель находит покупателя, получает его заказ, передает его руководству, которое утверждает, а затем отправляется на склад / производство / инжиниринг для выполнения. Обратная связь прямая - никому больше не нужно вмешиваться, пока не возникнет проблема. Это хороший дизайн MVC - у каждой части есть работа, и не нужно беспокоиться о других частях. Таким образом, это легко изменить, если нам нужно. В не-MVC дизайне обязанности не ясны. Торговый представитель может попытаться изменить продукт, когда клиент просит что-то другое. Или они могут дать разные цены в зависимости от того, как они чувствовали себя в тот день. Генеральный директор может оказаться на производственной площадке, вмешиваясь в производственную линию, когда он должен быть обеспокоен тем, как создать более надежную цепочку поставок. Работники склада могут находиться в торговом зале и разговаривать с клиентами, когда они должны выполнять уже принятые заказы.
Другими словами, хороший дизайн MVC позволяет каждой части сосредоточиться на одной вещи, чтобы она могла делать это правильно - как хорошо организованная компания.
** Отказ от ответственности - если ваша компания плохо организована, они могут обидеться на это. В этом случае вам понадобится другая аналогия. Вам также может понадобиться другая работа.