Что такое mvp в стандофф 2

Обновлено: 07.07.2024

Ссылки
Введение

Во времена, когда солнце светило ярче, а трава была зеленее, на тот момент команда студентов, как автор этой статьи, разрабатывали программное обеспечение, писав сотни строк кода непосредственно в интерфейсе продукта. Иногда использовались сервисы и менеджеры для работы с данными и тогда решение получалось с использованием паттерна Document-View. Поддержка такого кода требовала колоссальных затрат, т. к. нового разработчика надо обучить (рассказать), какой код за что в продукте отвечает, и ни о каком модульном тестировании и речи не было. Команда разработки — это 4 человека, которые сидят в одной комнате.
Прошло время, менялась работа. Разрабатываемые приложения становились больше и сложнее, из одной сплоченной команды разработчиков стало много разных команд разработчиков, архитекторов, юзабилистов, дизайнеров и PMов. Теперь каждый ответственен за свою область: GUI, бизнес-логика, компоненты. Появился отдел анализа, тестирования, архитектуры. Стоимость разработки ПО возросла в сотни и даже тысячи раз. Такой подход к разработке требует наличие стойкой архитектуры, которая бы синхронизировала разные функциональные области продукта между собой.

Паттерны

Учитывая цель уменьшения трудозатрат на разработку сложного программного обеспечения, предположим, что необходимо использовать готовые унифицированные решения. Ведь шаблонность действий облегчает коммуникацию между разработчиками, позволяет ссылаться на известные конструкции, снижает количество ошибок.
По словам Википедии, паттерн (англ. design pattern) — повторимая архитектурная конструкция, представляющая собой решение проблемы проектирования в рамках некоторого часто возникающего контекста.

Начнем с первого главного – Model-View-Controller. MVC — это фундаментальный паттерн, который нашел применение во многих технологиях, дал развитие новым технологиям и каждый день облегчает жизнь разработчикам.

Впервые паттерн MVC появился в языке SmallTalk. Разработчики должны были придумать архитектурное решение, которое позволяло бы отделить графический интерфейс от бизнес логики, а бизнес логику от данных. Таким образом, в классическом варианте, MVC состоит из трех частей, которые и дали ему название. Рассмотрим их:

Модель

Под Моделью, обычно понимается часть содержащая в себе функциональную бизнес-логику приложения. Модель должна быть полностью независима от остальных частей продукта. Модельный слой ничего не должен знать об элементах дизайна, и каким образом он будет отображаться. Достигается результат, позволяющий менять представление данных, то как они отображаются, не трогая саму Модель.

  • Модель — это бизнес-логика приложения;
  • Модель обладает знаниями о себе самой и не знает о контроллерах и представлениях;
  • Для некоторых проектов модель — это просто слой данных (DAO, база данных, XML-файл);
  • Для других проектов модель — это менеджер базы данных, набор объектов или просто логика приложения;
Представление (View)

В обязанности Представления входит отображение данных полученных от Модели. Однако, представление не может напрямую влиять на модель. Можно говорить, что представление обладает доступом «только на чтение» к данным.

  • В представлении реализуется отображение данных, которые получаются от модели любым способом;
  • В некоторых случаях, представление может иметь код, который реализует некоторую бизнес-логику.
Различия MVC & MVVM & MVP
  • Model-View-Controller
  • Model-View-Presenter
  • Model-View-View Model

Рассмотрим и сравним каждый из них.

Model-View-Presenter



Данный подход позволяет создавать абстракцию представления. Для этого необходимо выделить интерфейс представления с определенным набором свойств и методов. Презентер, в свою очередь, получает ссылку на реализацию интерфейса, подписывается на события представления и по запросу изменяет модель.

  • Двухсторонняя коммуникация с представлением;
  • Представление взаимодействует напрямую с презентером, путем вызова соответствующих функций или событий экземпляра презентера;
  • Презентер взаимодействует с View путем использования специального интерфейса, реализованного представлением;
  • Один экземпляр презентера связан с одним отображением.

Реализация:
Каждое представление должно реализовывать соответствующий интерфейс. Интерфейс представления определяет набор функций и событий, необходимых для взаимодействия с пользователем (например, IView.ShowErrorMessage(string msg)). Презентер должен иметь ссылку на реализацию соответствующего интерфейса, которую обычно передают в конструкторе.
Логика представления должна иметь ссылку на экземпляр презентера. Все события представления передаются для обработки в презентер и практически никогда не обрабатываются логикой представления (в т.ч. создания других представлений).

Пример использования: Windows Forms.

Model-View-View Model



Данный подход позволяет связывать элементы представления со свойствами и событиями View-модели. Можно утверждать, что каждый слой этого паттерна не знает о существовании другого слоя.

  • Двухсторонняя коммуникация с представлением;
  • View-модель — это абстракция представления. Обычно означает, что свойства представления совпадают со свойствами View-модели / модели
  • View-модель не имеет ссылки на интерфейс представления (IView). Изменение состояния View-модели автоматически изменяет представление и наоборот, поскольку используется механизм связывания данных (Bindings)
  • Один экземпляр View-модели связан с одним отображением.

Реализация:
При использовании этого паттерна, представление не реализует соответствующий интерфейс (IView).
Представление должно иметь ссылку на источник данных (DataContex), которым в данном случае является View-модель. Элементы представления связаны (Bind) с соответствующими свойствами и событиями View-модели.
В свою очередь, View-модель реализует специальный интерфейс, который используется для автоматического обновления элементов представления. Примером такого интерфейса в WPF может быть INotifyPropertyChanged.

Пример использования: WPF

Model-View-Controller



Основная идея этого паттерна в том, что и контроллер и представление зависят от модели, но модель никак не зависит от этих двух компонент.

  • Контроллер определяет, какие представление должно быть отображено в данный момент;
  • События представления могут повлиять только на контроллер.контроллер может повлиять на модель и определить другое представление.
  • Возможно несколько представлений только для одного контроллера;

Реализация:
Контроллер перехватывает событие извне и в соответствии с заложенной в него логикой, реагирует на это событие изменяя Mодель, посредством вызова соответствующего метода. После изменения Модель использует событие о том что она изменилась, и все подписанные на это события Представления, получив его, обращаются к Модели за обновленными данными, после чего их и отображают.

Резюме

Реализация MVVM и MVP-паттернов, на первый взгляд, выглядит достаточно простой схожей. Однако, для MVVM связывание представления с View-моделью осуществляется автоматически, а для MVP — необходимо программировать
MVC, по-видимому, имеет больше возможностей по управлению представлением.

Общие правила выбора паттерна
  • Используется в ситуации, когда возможно связывание данных без необходимости ввода специальных интерфейсов представления (т.е. отсутствует необходимость реализовывать IView);
  • Частым примером является технология WPF.
  • Используется в ситуации, когда невозможно связывание данных (нельзя использовать Binding);
  • Частым примером может быть использование Windows Forms.
Заключение

В заключении, автор этой статьи хотел бы отметить, что строго придерживаться только одному паттерну — не всегда лучший выбор. Например, представьте, что Вы хотели бы использовать MVVM для разработки приложений с использованием Windows Forms через свойство контролов Bindings. Ваша цель — это отделить представление от бизнес логики и логики, которая их связывает. Приложение должно быть легко тестируемым и поддерживаемым, а для аналитиков — понятным (ведь на вопрос «в чем измеряется работа жесткого диска» существует единственный правильный ответ — в Джоулях (абстрактный пример Модели -> Представления)).

Расшифровка MVP

Эта аббревиатура применяется в различных сферах, к примеру, в проектировании и химиотерапии. Но в этой статье пойдет речь о том, какова расшифровка MVP в спорте. Сегодня MVP используется как в профессиональных спортивных соревнованиях, так и в любительских.

MVP (англ. Most Valuable Player) - это самый ценный/полезный игрок, это индивидуальная награда. Она присуждается лично спортсмену, а не всей команде. Суть приза в разных видах спорта практически одинакова, но критерии отбора отличаются.

MVP в играх, что это, как переводится

Что такое mvp в играх

Определение

Расшифровка mvp довольно проста: “most valuable player”. И не нужно гадать, как переводится это выражение, поскольку игрок даже с минимальными знаниями английского сообразит, что оно означает “самый ценный игрок”.

Таким званием награждается пользователь, оказавшийся самым полезным, и его статистика превосходит оппонентов по большинству показателей. Чтобы понять, что означает достижение более детально, достаточно прочитать FAQ конкретного проекта.

MVP – это не продукт, а процесс. Думаете, что это не так?

MVP это не просто продукт с половиной урезанных фич. По факту, MVP не является продуктом вообще. И это, конечно, не то что вы сделали один раз и считаете что работа уже окончена. Скорее всего, вы вообще не понимаете, что это такое.



MVP – это не продукт, а процесс. Думаете, что это не так?

MVP это процесс, где вы повторяете все раз за разом: определяете свои гипотезы, находите самые быстрые варианты их проверки и используете полученные результаты для изменения стратегии.


Когда вы делаете продукт, у вас изначально много предположений. Вы думаете что вы знаете что хотят пользователи, что они ищут, каким должен быть дизайн, какую маркетинговую стратегию использовать, какая архитектура будет наиболее эффективной, как монетизировать продукт.

Неважно насколько вы хороши, всё равно какие-то из ваших гипотез окажутся ошибочными. Только есть одна проблема – вы не знаете какие именно.

В последнем исследовании сотни стартапов, CB Insights определило, что самая главная причина провала (42% всех случаев) – это отсутствие рыночного спроса. Почти половина этих стартапов потратили месяцы, или даже годы, делая продукт до момента, пока не осознали, что их гипотеза была неправильной – что кто-то вообще заинтересован в их продукте.

Единственный путь проверить гипотезу – это дать продукт потенциальному клиенту как можно быстрее. И если вы будете делать это постоянно, то вы поймёте, что большинство гипотез проваливаются. И вам придётся каждый раз возвращаться к началу, тестируя разные гипотезы.


И это не новшество в разработке продуктов. Когда вы пишите книгу или эссе, то много времени тратите на редактирование, доработку. Когда пишите код, вы тоже несколько раз перерабатываете его. Каждое креативное стремление человека требует огромного количества проб и ошибок.


В этом мире, кто быстрее находит ошибки и исправляет их, тот и становится победителем. Некоторые люди называют эту философию «Fail fast» (проваливайся быстро). В TripAdviser мы называем это «Speed wins» (Скорость — это преимущество). Эрик Райз называет эту методику “Lean” (бережливый), Кент Бэк (один из создателей Agile Manifesto) и другие программисты называют это Agile.

По сути, не важно как вы будете называть это. Самое главное – это как можно быстрее определить, какие из ваших гипотез ошибочны, с помощью фидбека реальных пользователей.

Когда вы делаете продукт, пишете код или разрабатываете маркетинговый план, вы всегда должны задать себе несколько вопросов:

Какая гипотеза в проекте самая сомнительная?
Как быстрее всего её проверить?

MVP как процесс в действии.

Давайте разберём пример, шаг за шагом. После него вы точно поймёте, что такое MVP.

Например, вы решили сделать продукт, который позволит рестораторам создавать мобильные приложения для их заведений в несколько кликов. У приложения будет простой интерфейс – drag and drop, готовые шаблоны, календарь событий, новостная лента, чек-ины, фотогалерея, чат в реальном времени, интеграция с сайтами-обозревателями, социальными сетями и Google maps.

И самое главное – приложение будет предлагать бронирование места, заказы на вынос, и использование купонов, с которых вы будете снимать небольшой процент, чтобы монетизировать продукт. Вроде бы выглядит очень даже круто!

Вы найдете несколько друзей, которые станут вашими ко-фаундерами. В идеальной ситуации (которая не произойдёт в 99.9% случаев) “поднимите” немного денег у зажиточного бизнес-ангела, запрётесь в комнате на 12 месяцев и будете пилить все эти фичи.

Если вы более прокачаны, то урежете половину фич, которые вам кажутся не первостепенными. И сможете запустить свой MVP за 8 месяцев, а не за 12.

В обоих случаях вы скорее всего провалитесь.

Почему? Окей, учитывая сколько предположений вы сделали, все может оказаться катастрофически неправильным.

Вы потратили месяцы продумывая как запустить клевое приложение для клиентов, не учитывая то, чего хотят рестораторы на самом деле. Возможно, всё гораздо-гораздо проще: они хотят адаптивный сайт, который легко найти в гугле. И всё. Им больше ничего не нужно.

Или вы две недели пилили онлайн-чат, но только после реальных тестов поняли, что рестораторы предпочитают общаться по электронной почте и не хотят сидеть за компом целый день.

Или самое худшее — вы увидели, что рестораторы вообще не хотят сражаться с этими новейшими технологиями. И вообще — использовать мобильное приложение. У них нет особого интереса к такому навороченному продукту.

8 месяцев работы (или даже 12, а может 24), для того чтобы увидеть все слабые моменты – это слишком долго и дорого. В лучшем случае, такая потеря будет просто тратой времени, в худшем – это разрушит ваш бизнес (а может и жизнь).

По словам Питера Друкера «Нет ничего настолько бессмысленного, как создание бесполезного продукта, никому не нужного продукта».

Делаем приложение по MPV-процессу

Давайте опробуем MVP процесс и прикинем, как можно было бы избежать всех косяков. Мы будем делать продукт постепенно, задавая себе два одних и тех же вопроса на каждой стадии:
Какая гипотеза в проекте самая сомнительная?
Как быстрее всего её проверить?

В самом начале, самое смелое предположение: Рестораторам нужно такое мобильное приложение

Поэтому первое MVP должно быть наброском мобильного приложения – может быть даже таким, которое будет сделано на обороте ресторанной салфетки (как в тему, да?).

Походите по рестораторам в вашем районе, и спросите используют ли они новые технологии в своей сфере? И вообще есть ли у них мобильные приложения? А если нет, то почему? Хотели бы они его себе? Насколько они технически подкованы? Понимают ли они возможную выгоду?

Покажите им мок-ап (набросок), и подумайте будет ли это хорошим решением их проблем.

Вы сможете увидеть, что у рестораторов мало интереса для того, чтобы такой проект стал серьезным бизнесом. Да, это обидно. Но хорошо то, что вам это стоило пару часов беседы, вместо месяцев разработки.

С другой стороны, возможно вы узнаете, что рестораторы заинтересованы не в мобильном приложении, а в простом адаптивном сайте. И это прогресс!

Но вы еще не закончили. Сейчас вы должны повторить процесс, что бы выстроить следующий MVP.

Какая гипотеза в проекте самая сомнительная?

«Захотят ли рестораторы платить за адаптивный сайт?»

И как можно это проверить?

Одной из идей для следующего MVP может быть создание статических страниц для нескольких заинтересованных рестораторов, чтобы посмотреть, как они реагируют на него.

Им нравится? Они впечатлены, тем что сайт делается в пару кликов? Сколько они готовы заплатить, чтобы такой же ресурс был у них уже вчера?

Возможно, когда придёт время платить за сайт, вы поймёте, что рестораторы не сильно то и готовы это делать. Хорошо то, что вы поняли это за несколько дней, а не несколько месяцев тупой разработки.

Или допустим, вы поймёте, что они хотят платить. Вы возьмёте плату за несколько месяцев вперёд — наличными или чеком — запустите их сайты и попросите в случае необходимости обновлений писать прямо на e-mail (то есть все изменения на сайте будете делать вручную на этом этапе)

Да, это требует больших усилий с вашей стороны. Да, это нельзя масштабировать на сотни клиентов. Но если вы мелкий стартап, не бойтесь делать точно так же. Пускай первым клиентам вы будете делать всё вручную, имитируя автоматический сервис. А когда поймёте, что людям нужен ваш продукт и они будут платить за него, тогда и начинайте автоматизировать все процессы.

Продолжаем дальше наш MVP-процесс.

Какая гипотеза в проекте самая сомнительная?

В этот раз, возможно ваша маркетинговая стратегия по привлечению клиентов сработала. Но вы не сможете обойти все рестораны в мире.

Тогда возникает вопрос как проверить эту гипотезу на большем количестве людей с минимальными затратами?

Ваш MVP может быть лендингом, который объяснит суть продукта. Показывайте простые сайты ресторанов, которые вы сделали раньше, и стимулируйте посетителей оставлять свои контакты, если их это заинтересовало. Вы можете купить рекламу на несколько сотен бакосв, что бы пустить трафик на лэндинг. И понаблюдать, что будет дальше.

Если потенциальные клиенты даже не оставляют свою почту, значит они и не выложат ни одного бакса за ваш сервис. Намного легче понять это, с помощью размещения текста и нескольких картинок на лендинге, чем переписывать тысячи строк кода в целом продукте!

Чем раньше вы обнаружите ошибки, тем меньше времени вы потратите на бесполезные, ни кому не нужные вещи.

Чувак, это MVP


Когда вы разрабатываете дизайн продукта, создаёте маркетинговый план или пишите код, всегда спрашивайте себя:

Какая гипотеза в проекте самая сомнительная?
Как быстрее всего её проверить?

Всего два простых вопроса, которые могут сэкономить вам очень много времени и денег. Запишите и повесьте их прямо перед вашим рабочим местом.

В хоккее

MVP в НХЛ

Приз наиболее результативному игроку присуждается и в знакомой многим соотечественникам КХЛ - лиге, которая объединяет хоккейные клубы из России, Финляндии, Беларуси и других стран. Критерий победы очень интересен - используется способ "плюс/минус". То есть ценным хоккеистом признается тот спортсмен, который находился в игре, когда его команда забивала шайбу или пропускала. У кого этот статистический показатель в конце чемпионата больше, тот и получает трофей.

Итак, в статье мы дали расшифровку MVP. По сути, Most Valuable Player - это лучший/ценный/полезный игрок, которому выдают приз по итогам спортивных соревнований.

В музыке аналогичная премия называется "Грэмми", ею награждают за достижения в области музыки. В кино - "Оскар", который вручают лучшим деятелям в сфере киноискусства. В спорте же награждают званием MVP, и награда эта индивидуальна: она присуждается спортсмену, внесшему наибольший вклад в достижения команды.

Эмоции того, кто не стал обладателем MVP

Безусловно, получить личный приз очень приятно. Миллионы спортсменов мечтают об этой награде, но лишь немногие получают ее.

Аббревиатура - что это такое?

Под аббревиатурой подразумевается слово, образованное путем сокращения двух слов или более до заглавных букв. "Аббревиатура" с латинского языка переводится как "краткий" (brevis). Таким образом, аббревиатура полностью оправдывает свою цель: используя ее, многие сводят к минимуму потерю времени в разговоре или письме. Итак, что же подразумевается под выражением MVP?

MVP в баскетболе

MVP в Национальной баскетбольной ассоциации

В США этот приз выдают четыре раза в год. Первый MVP присуждается по итогу сезона, состоящего из 82 матчей. Игроки команд, победивших в 50 играх и попавших в плей-офф, выбирают наиболее ценного участника чемпионата. К примеру, в 2018 году трофей MVP достался игроку "Хьюстона" Джеймсу Хардену. В среднем за матч Джеймс набирал более 30 очков, сделав 8 передач и 5 подборов. Безусловно, он очень помог своей команде стать первой в том сезоне.

В разное время обладателями этой награды были такие известные спортсмены, как Коби Брайант, Шакил О'Нил, Майкл Джордан, Уилт Чемберлен, Леброн Джеймс и другие. Но более всего побед (шесть!) у Карима Абдул-Джаббара, игравшего в НБА практически 20 лет.

Также награда MVP вручается самому ценному игроку серии плей-офф в финале, проводящейся до четырех побед. Этот трофей чаще всего получал Майкл Джордан - его шесть раз называли лучшим спортсменом финальной серии НБА.

Третий MVP вручается после Матча всех звезд НБА. В этом случае в голосовании участвуют те журналисты и комментаторы, которые были на матче. Спортсмены команды "Лос-Анджелес Лейкерс" выигрывали этот приз наибольшее количество раз - 10. Чаще всего самыми полезными игроками становились Коби Брайант и Боб Петтит (у них по четыре статуэтки).

Поскольку в национальной баскетбольной ассоциации проводится чемпионат и среди женщин, приз MVP получает баскетболистка, набравшая максимальное количество баллов среди остальных.

Итак, нет ничего сложного в расшифровке MVP в баскетболе. Просто запомните: наиболее ценный игрок (по результатам голосования) получает приз в соревновании.

Расшифровка MVP. Что означает эта аббревиатура и в каких видах спорта она используется


Как часто мы используем в личных беседах аббревиатуры? Сегодня эти короткие слова прочно вошли в наш язык. ГАИ, ООН, СМИ, ГИБДД, ГМО и т. д. - эти слова, пожалуй, привык использовать каждый. У любителей спорта есть другие популярные сокращения, например, MVP. В этой статье речь пойдет о том, что понимать под этой аббревиатурой, для чего ее придумали и в каких спортивных состязаниях она используется.

В футболе

Давид Вилья получает приз в MLS

Чаще всего MVP употребляется в высшей лиге Соединенных Штатов Америки и Канады, MLS. Полностью приз называется так - Landon Donovan MVP Award, присуждается он раз в год.

В футболе расшифровка MVP следующая: это футболист, который благодаря голосованию других игроков, тренеров и представителей СМИ, признается наиболее ценным игроком в сезоне. Именно он и получает заветный трофей. Следует отметить, что за более чем двадцатилетнюю историю MVP в лиге США и Канады (трофей начали присуждать в 1996 году) лишь один игрок удостаивался приза дважды - Преки, или Предраг Радославлевич, игравший за футбольный клуб "Канзас-Сити Уизардс". Также самыми ценными игроками в MLS признавали Давида Вилью, ранее игравшего в испанской "Барселоне", а также Себастьяна Джовинко, выступавшего за итальянский "Ювентус".

Кроме того, следует отметить награду "Золотой мяч", учрежденную французским изданием France Football, а также приз "Игрок года ФИФА", вручаемый всемирной футбольной организацией. В последнее время эти трофеи доставались либо Криштиану Роналду, либо Лионелю Месси. А вот в 2018 году игроком года ФИФА стал хорват Лука Модрич, выступающий за испанский "Реал". Сборная Хорватии на чемпионате мира в России дошла до финала, но проиграла французам. Модрич внес весомый вклад - являясь опорником команды, он забил два гола в семи матчах.

Читайте также: