Сначала ведущий (программный подход)
Presenter first — это подход к разработке программного обеспечения, который сочетает в себе идеи шаблона проектирования «модель-представление-презентатор » (MVP), разработки через тестирование и разработки через функции .
Подход
[ редактировать ]Presenter сначала концентрируется на преобразовании каждого требования клиента в хорошо протестированную, работающую функцию как быстрее и с максимальной корреляцией с языком истории (требованиями) клиента можно . Язык истории или требований используется для непосредственного руководства разработкой функции — даже для именования модулей и вызовов функций. Как следствие, реализация функции имеет тенденцию точно отражать желание клиента с небольшим количеством посторонних или ненужных функций. Язык исходного кода также близко соответствует рассказам клиентов.
Presenter first часто применяется в приложениях с графическим пользовательским интерфейсом . Его одинаково хорошо применять и для разработки интерфейсов командной строки. Кроме того, небольшая вариация этого подхода эффективно использовалась во встроенном программном обеспечении ; здесь интегральный шаблон проектирования известен как модель-проводник-аппаратное обеспечение, а подход называется сначала проводником .
При использовании в приложениях с графическим пользовательским интерфейсом этот подход позволяет разрабатывать логику представления и бизнес-логику приложения сначала в тестовом режиме, отдельно от экранных виджетов. Таким образом, подавляющее большинство программных приложений можно протестировать с помощью модульных тестов в наборе автоматизированных тестов. При этом использование инструментов тестирования графического пользовательского интерфейса для выполнения обширного тестирования системы может быть сведено к проверке основных операций графического пользовательского интерфейса или полностью исключено.
Выполнение
[ редактировать ]Шаблон проектирования MVP отделяет экранные виджеты, логику представления и бизнес-логику. Presenter сначала начинает процесс разработки с компонента Presenter оси MVP. Разработка через тестирование осуществляется путем моделирования представления и модели и написания модульных тестов для презентатора. Затем пишется и пересматривается производственный код презентатора до тех пор, пока не пройдут модульные тесты презентатора. Цикл повторяется для модели. Модульное тестирование представления обычно непрактично или невозможно; таким образом, код представления остается максимально «тонким» и лишенным логики (т. е. представление является оберткой вокруг вызовов библиотеки виджетов, а логика представления содержится в презентаторе). Первый подход Presenter, примененный к шаблону MVP, позволяет автоматизировать тестирование подавляющего большинства логики приложения, оставляя только простое экранное проверочное тестирование представления и его виджетов.
Тестовые случаи для ведущего определяются на основании требований или историй заказчика. Клиент обычно объясняет функции с помощью утверждений «когда» — например: «Когда я нажимаю кнопку «Сохранить», файл должен быть сохранен, а предупреждение о несохраненном файле должно исчезнуть». Модульные тесты и код презентатора следуют за потоком операторов «когда». Ведущий ожидает, что будут запущены события представления (например, нажатие кнопки сохранения), и, в свою очередь, он в ответ вызовет представление (например, скроет предупреждающее сообщение) и модель (например, инициирует операцию сохранения файла).
Множество функций приложения могут сделать единую монолитную ось MVP громоздкой. Ведущий сначала предлагает разбить приложение на несколько осей MVP. В приложении с графическим пользовательским интерфейсом каждый экран, диалоговое окно и сложный виджет представлены осью MVP (его функциональный дизайн продиктован историей клиента). Связь между агрегированными осями осуществляется посредством программных связей между моделями.
Ссылки
[ редактировать ]- Аллес, Мика; Кросби, Дэвид; Эриксон, Карл; Харлтон, Брайан; Марсилья, Майкл; Паттисон, Грег; Стиенстра, Курт (2006). «Презентер прежде всего: организация сложных приложений с графическим интерфейсом для разработки через тестирование» (PDF) . Agile : 276–288. Архивировано из оригинала (PDF) 1 июля 2011 г.
- Кросби, Дэвид; Эриксон, Карл. «Большой, сложный и проверенный? Просто скажите «когда» » (PDF) . Журнал Better Software (февраль 2007 г.). Архивировано из оригинала (PDF) 1 июля 2011 г.
Внешние ссылки
[ редактировать ]- Первые статьи и примеры Сборник ресурсов одной группы авторов Presenter First.
- Часть 1. Часть 2 и Часть 3 – стенограммы серии видеоподкастов с Роном Джейкобсом из ARCast.TV.
- «Несколько тематических исследований по Presenter First: TDD как для автономного приложения с графическим интерфейсом, так и для разработки подключаемых модулей Eclipse»