Главная
страница 1
Использование готовых решений в web-разработке

Введение


Одним из залогов успешного выполнения проекта, является правильное его проектирование. Творческое и свободное мышление являются очень полезными качествами для любого проектировщика, но как показывает практика, такое мышления часто приводит к изобретению очередного велосипеда. В итоге тратится много времени и сил на разработку инструментов и интеграцию их между собой, а также на отладку их правильной работы. И чаще всего такие решения являются не самыми лучшими в своём роде, в ближайшем будущем они требуют переделок или, что ещё хуже, «забивания костылей» (то есть, исправления кода, противоречащего всяким законам хорошего стиля программирования).

Но есть другой подход к проектировке. Уже на данном этапе (и на всех проектировочных этапах реализации проекта) есть возможность выбрать наиболее подходящие готовые решения для разработки продукта. Здесь также есть свои тёмные стороны:



  • иногда готовые решения работают не совсем в той логике, к которой привык разработчик

  • иногда в готовых решениях встречаются неотловленные (и трудноотлавливаемые) ошибки

  • иногда разные готовые решения имеют плохую интеграцию между собой (или вообще таковой не имеют)

Но в любом случае применение готовых решений может существенно сократить время разработки и увеличить её эффективность, а также качество конечного продукта. В этой статье будут рассмотрены некоторые типы готовых решений, применяющихся в web-разработке, а также будут даны подробные их примеры (но они были подобраны исходя из личных предпочтений, серверный язык php, клиентский javascript, база дынных MySQL).

Готовые решения для разработки web-приложений

Framework


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

  • Интегрировать новые модули и затачивать их под свой движок становится всё сложнее и занимает это непростительно много времени (если мы их вообще интегрируем, не будем говорить о той ситуации, когда разработчик ВООБЩЕ не прибегает к помощи готовых модулей)

  • Мы понимаем, что делаем раз за разом те же самые операции, которые до нас делало множество человек

  • Моя проектировка приложения оказывается не достаточно актуальной и мощной

А чтобы избежать подобного, перед разработкой любого web-приложения стоит рассмотреть, нельзя ли применить для этого один из фреймворков. Серверный фреймворк – это каркас для нового web-приложения, который не только обладает набором встроенных библиотек и большим количеством уже разработанных модулей, но, что самое главное – он задаёт направление мысли программиста и ставит его в некие рамки. Вот некоторые из фреймворков на php:

  • Symphony

  • Zend Framework

  • CodeIgniter

  • Kohana

Возьмём, к примеру, замечательный фреймворк Kohana. Вот некоторые из его особенностей:

  1. Паттерн MVC (всё приложение разбивается на модели, виды и контроллеры)

  2. Система чистых ссылок (пути вида www.foo.ru/bar/foo)

  3. Набор библиотек и хелперов для выполнения наиболее распространённых для web-приложений операций. (redirect, ответ на ajax-запрос, xss-фильтрация, работа с сессиями и т.д.)

  4. Мощная модульная структура, а также каскадная файловая система (если в двух разных модулях есть два одинаковых файла в идентичных директориях, то подключен будет файл из модуля, подключённого позднее)

  5. Встроенный профайлер

  6. Локализация

  7. Встроенные ORM и query builder (библиотеки для объектно-ориентированной работы с базой данных)

  8. Система событий

  9. И ещё многое другое

CMS


Двигаемся дальше: мы выбрали framework и работаем теперь на нём (разрабатывая в данном случае достаточно стандартное web-приложение). Но у нас опять же возникают проблемы:

  • Framework не заточен под управление контентом. Не умеет работать с картой сайта. Не имеет таких понятий как «материал», «меню», «хлебная крошка» и тому подобных

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

  • Хорошую административную панель самому сделать очень сложно (тем более программисты редко понимают, что такое хороший user-frendly интерфейс)

  • Клиенты недовольны, что для любого малейшего изменения на сайте (которое мы не предусматривали) приходится либо лезть в код, либо звать разработчика

Выходом из такой ситуации является использование готового решения заточенного специально под наши нужды. Если нам приходится иметь дело со стандартным web-приложением, то сложно найти лучшее решение, чем CMS – систему управления контентом. Она реализует такие вещи, как: управление картой сайта, категоризация материалов, разграничение доступа пользователей к различной информации, быстрая смена вида (шаблона) сайта, локализация, более тесная интеграция модулей, функциональная и удобная административная панель и другие.

Вот некоторые из самых распространённых CMS на php:



  • Joomla

  • Typo3

  • MODx

  • Drupal

Одной из самых гибких и многофункциональных CMS на php является Drupal, вот некоторые из её достоинств:

  1. Практически любой контент на сайте можно представить универсальным типом «материал»

  2. Материалы не привязываются жёстко к какому-либо узлу на карте сайта

  3. Система таксаномии (очень гибкой категоризации материалов)

  4. Любой набор из материалов может быть выведен в любой узел карты сайта на основе таксаномии (а также на основе любых других полей при наличии модуля Views)

  5. К материалам можно добавлять дополнительные поля (расширение cck, к примеру, если у нас есть тип материала «товар», то мы можем добавить к нему поле «цена»)

  6. Гибкая и мощная система API

  7. Интеграция с jQuery (фреймворк под javascript)

  8. Автоматическая локализация модулей

  9. Удобная локализация контента

  10. Русскоязычное сообщество

  11. Огромное количество готовых модулей

  12. И МНОГОЕ другое

Другие готовые решения для разработки web-приложений


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


Смотрите также:
Использование готовых решений в web-разработке
41.2kb.
1 стр.
Центр образовательных ресурсов: комплексная реализация федеральных государственных образовательных стандартов
50.23kb.
1 стр.
Лабораторная работа №5 Использование Web сервисов xml в консольных приложениях и приложениях Windows Forms цель и задачи работы
284.97kb.
1 стр.
Сравнение возможностей решений Спамооборона и Dr. Web Mail Security Suite
133.64kb.
1 стр.
Лабораторная работа 9-01 Лабораторная Шонин В. А. работа 9-01 Использование табличной верстки для создания Web-страниц
446.97kb.
1 стр.
Тематический план курса дополнительного образования «web-дизайн» Наименование темы Всего часов Лекц часов Практ часов
32.96kb.
1 стр.
1. Принятые сокращения
153.94kb.
1 стр.
Лабораторная работа №3 Объектно-ориентированная реализация Web-страниц в asp. Net
535.81kb.
7 стр.
Интеллектуальные системы
46.21kb.
1 стр.
Должностная инструкция веб-мастера (web-мастера)
40.42kb.
1 стр.
Программа дисциплины финансовый анализ проектов для слушателей подготовительного отделения магистратуры для направления 080500. 68 «Менеджмент»
100.27kb.
1 стр.
Современные тенденции в разработке средств визуализации программного обеспечения параллельных вычислений
34.32kb.
1 стр.