Материал: Разработка web-приложения

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

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

Благодаря активному росту числа разнообразных партнерских программ стали появляться агрегаторы партнерских программ, объединяющие партнерские программы разных продавцов и компаний. Их также называют сетями CPA, а каждую отдельную партнерскую программу - оферром. Все офферы разделены по соответствующим категориям, и у каждого из них свои условия оплаты и свои материалы для пиара - ссылки и баннеры [11].

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

-    10% от заработка реферала 1-го уровня, то есть пользователя, зарегистрировавшегося не посредственно по реф-ссылке разработчика;

-       5% от заработка реферала 2-го уровня, то есть пользователя, зарегистрировавшегося по реф-ссылке вашего реферала 1-го уровня;

-       3% от заработка реферала 3-го уровня;

-       2% от заработка реферала 4-го уровня;

-       1% от заработка реферала 5-го уровня [11].

Рефералом принято называть участника партнерской программы, который зарегистрировался по рекомендации другого участника [11].

Различают несколько видов партнёрских программ в зависимости от того, за что рекламодатели платят веб-разработчикам деньги. Существует несколько схем, по которым могут производиться выплаты участникам:

-    плата за продажу - СPS (cost-per-sale). Человек, пришедший по ссылке, оплачивает товар, при этом веб-разработчик, привлекший его, получает вознаграждение в процентах от стоимости товара;

-       плата за действие - CPA (cost-per-action). Разработчик получает деньги за совершение определенного действия. Например, за заполнение привлеченным человеком регистрационных форм, подписку на рассылку и др.;

-       плата за клик по рекламной ссылке или баннеру - CPC (cost-per-click);

-       плата за показ - CPV (cost-per-view);

-       плата за загрузку - CPI (cost-per-install);

-       многоуровневый маркетинг - выплаты распределяются по иерархической сети рефералов и подписчиков [11];

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

На данный момент представлен огромный выбор агрегаторов партнерских программ. Наиболее популярные из них: "ActionPay", "7 offers", "Admitad", "CityAds", "Где Слон?".

"ActionPay" - популярная партнерская сеть, стартовавшая в 2010 году. На данный момент число офферов составляет 789. Сфера услуг охватывает: онлайн-игры, автомобили, банки и финансы, мобильные приложения, недвижимость, интернет-магазины, образование, путешествия. Минимальная выплата за действие, совершенное пользователем составляет 15 рублей. Выплаты производятся один раз в неделю, при этом комиссия составляет 5% [12].

"7 offers" - другая сеть CPA. Основным преимуществом данного агрегатора является частота выплат - выплаты совершаются ежедневно. Сфера услуг в разы меньше, чем у значительного числа других агрегаторов. Она охватывает: интернет-магазины, банки и финансы, игровые офферы, образование. Общее число офферов 223. Минимальная выплата составляет всего лишь 1 рубль, а комиссия может достигать до 15% [13].

"CityAds" - является международной CPA сетью, зародившейся в 2011 году. Число офферов примерно равно числу агрегатора "Admitad". Также охватывает практически все сферы услуг. Процент комиссии тоже равен 5%. Отличием же является частота выплат - 2 раза в месяц, из-за этого и минимальная выплата составляет большую сумму - 1000 рублей. Однако, на многих форумах можно найти жалобы веб-разработчиков о том, что выплаты часто задерживаются [15].

Еще один популярный агрегатор партнерских программ называется "Где Слон?". Его основное отличие заключается в том, что нет необходимости регистрировать источники трафика и получать подтверждение от рекламодателей. Сфера услуг сконцентрирована на крупнейших интерент-магазинах: продажа одежда, обувь, электроника, товары для дома, авто-товары и т.д. Выплаты производятся каждую неделю с комиссией 5% [16].

Таким образом, можно прийти к выводу, что наиболее подходящими являются агрегаторы "Admitad" и "CityAds". Большинство их показателей имеют примерно одинаковые показатели. Ключевым отличием является частота выплат, агрегатор "Admitad" производит выплаты примерно в 3-4 раза чаще. К тому же, имеет более надежную репутацию. Следовательно, целесообразно выбрать данный агрегатор партнерских программ для применения в поставленной задаче.

2.3 Обоснование выбора шаблона проектирования


Шаблон проектирования или паттерн в разработке программного обеспечения - повторяемая архитектурная конструкция, представляющая собой решение проблемы проектирования в рамках некоторого часто возникающего контекста [11]. Паттерны представляют собой не готовое решение, а общее описание решения проблемы, применимое в различных ситуациях.

Существует три основных вида паттернов. Каждый вид предназначен для решения определенного круга задач. Выделяют следующие виды шаблонов проектирования:

-    Порождающие паттерны. Такие паттерны используют, когда возникает необходимость в создании новых объектов в разрабатываемой системе;

-       Структурные паттерны. Основной задачей этого вида шаблонов проектирования является компоновка системы на основе классов и объектов;

-       Поведенческие паттерны. Этот вид паттернов предназначен для распределения обязанностей между объектами в системе.

Основным преимуществом применения того или иного паттерна является то, что с помощью готовых абстракций значительно снижается сложность разработки. Кроме того, применение известных шаблонов в проектировании значительно упрощает коммуникацию между разработчиками, работающими над общим проектом. Также стоит отметить, что за счёт паттернов производится унификация деталей решений, снижается количество ошибок. Использование в разработке шаблонов проектирования можно сравнить с использованием готовых библиотек кода. К тому же, шаблон проектирования позволяет, отыскав удачное решение, пользоваться им снова и снова [11].

Однако, существуют и недостатки в применении шаблонов проектирования. Например, в ситуации, когда разработчик слепо следует какому-либо шаблону, может возникнуть излишнее усложнение структуры программы. К тому же, у разработчика может появиться желание использовать шаблоны проектирования в тех местах, в которых они не нужны [11].

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

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

Один из самых популярных шаблонов - Фабричный метод. Данный шаблон определяет интерфейс для создания объекта, но оставляет подклассам решение о том, какой класс инстанцировать. Целесообразно применять данный шаблон когда:

-       классу заранее неизвестно, объекты каких подклассов ему нужно создавать;

-             класс спроектирован так, чтобы объекты, которые он создаёт, специфицировались подклассами;

-             класс делегирует свои обязанности одному из нескольких вспомогательных подклассов, и планируется локализовать знание о том, какой класс принимает эти обязанности на себя [11].

В качестве достоинств данного паттерна можно выделить то, что можно создавать универсальный код создания объектов и устанавливать связь между параллельными иерархиями классов. Следовательно, метод применим для больших проектов. В других ситуациях создает излишнюю перегруженность. Также недостатком метода является необходимость создавать наследника для каждого нового типа продукта [11].

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

В качестве недостатка можно выделить то, что при использовании паттерна Одиночка понижается тестируемость web-приложения. В большинстве случаев внедрение зависимостей применяется вместо паттерна Одиночка. Используя внедрение зависимости избавляет от ненужных соединений в дизайн приложения, а объект, используя общий или глобальный ресурс, не требует знания конкретного класса [23].

Фронт контроллер - еще один шаблон проектирования, который очень часто применяют для разработки web-приложений. Основная идея его заключается в том, что Один контроллер обрабатывает все запросы к web-сайту. Фронт контроллер объединяет всю обработку запросов, пропуская запросы через единственный объект-обработчик. После обработки запроса контроллер обращается к конкретному объекту для отработки конкретного поведения [11].

Модель-представление-контроллер (далее MVC) это самый распространенный паттерн, принадлежащий семейству шаблонов проектирования, целью которых является отделение бизнес-логики (модели) приложения от пользовательского интерфейса (представления). Отделение происходит так, чтобы модификация одного из компонентов оказывала минимальное воздействие на остальные. Наиболее полезно применение данной концепции в тех случаях, когда пользователь должен видеть те же самые данные одновременно в различных контекстах и/или с различных точек зрения. В частности, выполняются следующие задачи:

-    К одной модели можно присоединить несколько видов, при этом не затрагивая реализацию модели;

-       Не затрагивая реализацию видов, можно изменить реакции на действия пользователя (нажатие мышью на кнопке, ввод данных);

-       Ряд разработчиков специализируется только в одной из областей: либо разрабатывают графический интерфейс, либо разрабатывают бизнес-логику.

Концепция MVC разделяет структуру программы на:

-    Модель. Модель предоставляет знания: данные и методы работы с этими данными, реагирует на запросы, изменяя своё состояние. Не содержит информации, как эти знания можно визуализировать.

-       Представление, вид (англ. View). Отвечает за отображение информации (визуализацию). Часто в качестве представления выступает форма (окно) с графическими элементами.

-       Контроллер (англ. Controller). Обеспечивает связь между пользователем и системой: контролирует ввод данных пользователем и использует модель и представление для реализации необходимой реакции [11].

Важно отметить, что как представление, так и контроллер зависят от модели. Однако модель не зависит ни от представления, ни от контроллера. Тем самым достигается назначение такого разделения: оно позволяет строить модель независимо от визуального представления, а также создавать несколько различных представлений для одной модели [11].

Таким образом, можно прийти к выводу, что паттерн MCV делает структуру программы гибкой и делает её более удобной для изменений, что очень важно для развивающихся проектов. Помимо данных преимуществ, MVC имеет интеграцию в ASP.NET (технология создания web-приложений и web-сервисов), что значительно упрощает разработку web-приложения.

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

2.4 Обоснование выбора языка программирования


Как уже говорилось ранее, требуемое web-приложение будет реализовано с помощью ASP.NET (Active Server Pages для.NET) . ASP.NET является технологией создания web-приложений и web-сервисов. В настоящее время ASP.NET пользуется небывалой популярностью, но уже давно не является революционной технологией [24].

Множество языков поддерживаются в данной технологии. Однако, выбор конкретного языка для разработки собственного web-приложения не имеет большого значения, так как выбор языка никак не влияет на то, какие задачи с помощью приложения можно будет решать потому, что какой бы язык не использовался, код всегда будет компилироваться в IL [24].

Язык IL является своего рода "трамплином" для любого управляемого приложения. Под управляемым, приложением понимается любое приложение, которое пишется для.NET и выполняется внутри управляемой среды CLR [24].

Следовательно, для разработки требуемого приложения можно выбрать любой из языков программирования, поддерживаемый в ASP.NET. Этим языком будет C#.

2.5 Обоснование выбора метода реализации функции выбора наиболее выгодного потребительского кредита


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

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

Под принятием решения обычно понимают процесс человеческой деятельности, направленный на выбор наилучшей альтернативы, а человека, осуществляющего выбор, принято называть лицом, принимающим решения (далее ЛПР).