Биржа баннеров
Цена от до  у.е.
Главная Владельцам сайтов Дизайнерская Важные материалы О проекте Обратная связь
 
 
забыл пароль | регистрация
SiteHeart
>Справка
Штрихкоды
Стандарт штрихкода EAN-13
ASCII-код
Анонимный криптоаналитик - математик Чарльз Бэббидж
Идея Альберти
Полиалфавитный шифр
Шифр Цезаря
Перестановочное шифрование
Стеганография
Комната 40
Телеграмма Циммермана
Принцип Керкгоффса
Коды, шифры и ключи
Криптография - искусство написания и вскрытия шифров
Opera перходит на WebKit
Кредитный брокеридж
Франшиза для маленьких
Российский авторынок преодолел докризисный "пик"
Рынок льготной аренды в Москве
Поддельные пятитысячные рублевые банкноты
Онлайновые супермаркеты
Растущая популярность краудфандинга
Уроки Facebook
Франчайзинговые предприятия в США
Сетевой маркетинг
Консалтинговая компания McKinsey
Устойчивый к рецессии нишевой бизнес
География стартапа
Проблемы американского компьютерного гиганта Dell
О противостоянии основателей и инвесторов Dream Industries
В России началось внедрение Универсальной электронной карты
Группа "Нэфис"
Газпромбанк
Nokian Tyres - непродовольственные товары
"Яндекс" - Информационные и развлекательные ресурсы
Ozon.ru
Владелец "Глории Джинс"
Самая затратная статья в бюджете фарм - компаний
Будущий интерфейс
Офлайк
Идеи краудсорсинга
Дейв Голдберг - интернет-предприниматель
Кабинетные игры
Офисные каратели
Фитнес для ленивых - оксюморон
В онлайне стали появляться свои "Ашаны" и "Пятерочки"
Арендные ставки в столице могут снизиться
Американская обувная компания Crocs
Присоединение к ВТО
Китайский летчик Taobao
Компания I Like - одноименный брэнд электронных сигарет
Особенности сертификации СЗИ
Защитите свой компьютер
Вредоносные программы будут эволюционировать
Windows 8 индивидуальная улучшенная защита
Электронная подпись для Web-порталов и облачных сервисов
Телефонные закладки
Безопасное использование технологии QR-кодов
Защита АСУ ТП: от теории к практике
Защита виртуальных ЦОД
Data-центр - вопросы надежности
Сфера информационных разработок
IDM-система важная мера борьбы с компьютерными преступлениями
Защита информации о сложном простыми словами
Центр администрирования Active Directory
Написать свой фреймворк
Банковская автоматическая денежная машина
Мобильная операционная система
Безопасная ОС от Kaspersky Lab
Компания JetBrains
Google представил новую версию Android 4.2
Компания ASUS представила новую модель PadFone2.0
Новая стабильная версия Firefox 16
Стремительное развитие коммуникаций в Интернете
Идеальная рекламная кампания
Преимущества открытых инноваций
Лидерство в технологической гонке
Соглашения о торговых аспектах прав интеллектуальной собственности
Частные инвесторы работающие с инновационными проектами
Прогноз - дело неблагодарное
Бесплатная Академия дистанционного обучения
Запрете на ввоз живого скота из ЕС
Sky Express и "Авианова" покинули российский рынок авиаперевозок
Разработка интерфейса для игры UFO: The legacy
Happy Meal McDonalds
Julia Klikc
Фирменный стиль ELITEO Financial Group
Новая идеология потребления видео в Интернете
Создания систем мониторинга событий
Перспективы юридического электронного документооборота
Безопасна ли IТ-безопасность
Авторская социальная сеть "Цифровой автограф"
SafePhone - решение для защиты корпоративной сотовой связи
Современные компьютерные угрозы
Терминальный доступ
Онлайн банкинг
Киберпреступность в банковской сфере
Создание и настройка целей Google Analitics
Система рекламы в социальных сетях
Обзор статейных бирж
Эффективные инструменты E-mail маркетинга
Купонные сервисы
Нововведения в Google
Фильтры Яндекса
Эффективность web-аналитики
Обзор SEO-форумов
Потенциальное будущее SEO-сферы
SEO-статья и ее составляющие
Что такое SE0 сегодня
Развитие SEO-оптимизации
История возникновения SEO-продвижения
Глобальная сеть Интернет
Обзор надежных и проверенных хостингов
Облачный хостинг
Как правильно выбрать хостинг
Самые популярные разновидности хостинга
Ценность франшизы
На сколько важны социальных медиа
Китайский стиль ведения бизнеса
CEO привлеченные в компанию со стороны
Поиск наемного менеджера
Медицинский туризм
Внедрение корпоративных соцсетей
Каждый десятый предприниматель в Черногории - россиянин
Скромный ресурс aviasales.ru
История Sony
3D-принтера становится всё ближе к массам
Квадратный спаситель
Прощай YouTube
Финансовые падения на периферии Европы
Крупнейшая в Монголии золотодобывающая компания "Золотой Восток Монголия"
"Мать и дитя" - входит в пятерку лидеров российского рынка медицинских услуг
Почему большие состояния демотивируют
Насколько в России можно наследовать богатство
Бизнес семьи Ротенбергов
Наследники состояний участников списка Forbes
Венчурный капиталист Дэвид Картер
На системе WORDPRESS 60 млн сайтов
Корпоративная культура в современном бизнесе
Калифорнийская компания Intuit
Биржа вырождается в казино
Бум социальных сетей начался всего шесть лет
Рост прямых иностранных инвестиций в мире продолжается
Запрет на доступ в "виртуальные курилки"
Как корпорациям выстраивать свои стратегии в социальных сетях
Трио создателей Easy Meal
Оперативная реакция основа эффективного маркетинга
Рынок натурального зернового кофе
На биржевых площадках воцаряются торговые роботы
У сетевого ритейла обычно три подхода к СТМ
Первая волна открытия коворкингов
Американские посевные инвесторы
Набирающий популярность на Западе краудфандинг
Как работает поисковое продвижение сайта?
Разработка сайта для оказания услуг
Туры в Пиерию, Греция
Как повысить продажи
Об эффективности баннеров
Форматы баннеров
Показать весь список


Написать свой фреймворк



Многие ошибочно полагают, что паттерн проектирования MVC появился не так давно и изначально стал применяться в области веб-разработки. На самом деле концепция MVC была выдвинута и детально описанаещев 1979 году  о том, что такое веб, тогда никто и не знал, потому что слова веб просто не было.Своим рождением MVC обязан Трюгве Реенскаугу. В то время он работал в компании Xerox PARC над языком программирования Small Talk. Нетрудно догадаться, что свою первую практическую реализацию шаблон MVC увидел именно для этого языка.


Несмотря на работу, проделанную Трюгве, его концепция была по большому счету лишь идеей, хорошей теорией. Какой-то конкретики, практических примеров в ней описано не было. Даже первая библиотека для Small Talk была создана другими разработчиками. Впоследствии было выделено два вида реализации шаблона MVC:
•    Активная модель. Главным выделяющимся элементом этой реализации стала идея полного разделения ролей модели, контроллера и представления. Все эти сущности не должны быть связаны между собой. Изменение модели никак не должно отразиться на контроллере или представлении, и наоборот.

•    Пассивная модель. В пассивной модели сущность «модель» не должна иметь способов взаимодействия с контроллером и представлением. По факту, под моделью здесь подразумевается структура данных. За всеми ее изменениями должен следить контроллер, который впоследствии должен принимать решение о перерисовке представления.

Для начала рассмотрим компоненты MVC и определимся с их назначением. Модель  сущность, отвечающая за предоставление доступа к данным, алгоритмы обработки и так далее. Если сказать проще, то именно в модель нужно помещать всю бизнес-логику приложения. Исходя из этого, сразу делаем вывод, что модель не должна ничего знать о других звеньях архитектуры MVC  контроллере и представлении. Среди веб-разработчиков бытует заблуждение, что модель предназначена сугубо для операций получения и записи данных в базу. Алгоритмы обработки они выносят в контроллер. Такой подход сводит на нет всю идею MVC. Чуть позже мы вернемся к этому.
Представление  элемент концепции MVC, отвечающий за представление данных. Под представлением подразумевается внешний вид  будь то шаблон дизайна в веб-приложении или GUI десктопной проги. В представлениях, или, как принято говорить на сленге, «вьюшках», не должно содержаться никаких алгоритмов обработки данных или их получения. Только отображение и ничего более. Контроллер  последний элемент, входящий в триаду MVC.

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

С понятиями разобрались, теперь переходим к причинам, побуждающим нас обращаться к MVC в своих проектах. Пожалуй, главной причиной использования модели стала необходимость разделения кода и представления, или, как еще принято говорить, «отделение бизнес-логики приложения от представления». Действительно, проблема разделения кода и отображения встает перед каждым разработчиком. Если изначально об этом не задуматься, то через некоторое время поддерживать такой код станет просто нереально.
Не будем далеко ходить и сразу посмотрим на веб-приложения. Что в них чаще всего меняется? Конечно же, функционал и дизайн. Новые тренды в области дизайна, юзабилити появляются часто, и, чтобы приложение оставалось популярным, необходимо поддерживать его внешний вид в актуальном для своего времени состоянии. Сам понимаешь, что добиться этого, если код приложения перемешан с кодом отображения (HTML/CSS), крайне проблематично.

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


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






вернуться
 
 
Главная            Владельцам сайтов            Дизайнерская            Важные материалы            О проекте           Обратная связь
© 2010, Баннерный агент. Все права защищены.
Продажа и покупка баннеров с качественных сайтов.