ресурс для начинающих веб-разработчиков
комплексные веб-услуги по созданию сайтов

Справочный материал по основным языкам программирования и верстки сайтов.

Готовая методика создания простых и сложных динамичных сайтов, с использованием PHP и MySQL.

Использование веб-редактора Adobe Dreamweaver в разработке сайтов.

Использование графических редакторов Adobe Flash, Adobe Photoshop, Adobe Fireworks в подготовке веб-графики.

Разработка веб-сайтов под "ключ".

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

Оптимизация кода. Тестирование

Тестирование

Оптимизация кода

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

Использование простой оптимизации

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

  • Уменьшение подключений к базам данных. Подключение к базе данных часто является самой медленно выполняемой частью любого сценария. Выйти из положения можно с помощью постоянных соединений.
  • Ускорение запросов в базы данных. Необходимо уменьшать количество запросов и обеспечить их оптимизацию. Для сложных (а, следовательно, медленных) запросов обычно существует несколько методов оптимизации. Выполняйте запросы через интерфейс командной строки базы данных и пробуйте различные варианты их ускорения. В MySQL для выявления ошибочных запросов можно применять оператор EXPLAIN. (Использование этого оператора рассматривалось раньше). Обычно идея заключается в сведении к минимуму количества соединений и максимальному использованию индексации.
  • Сведение к минимуму генерации статического содержимого из PHP-кода. Если каждый фрагмент HTML-кода генерируется операторами echo или print(), приложение работает намного медленнее. (Это один из аргументов в пользу разграничения логики и содержимого.) То же относится к динамическому генерированию графических кнопок. Лучше сгенерировать все кнопки средствами РНР один раз, а затем повторно использовать их по мере необходимости. Если выполняется генерация статического содержимого из функций или шаблонов при каждой загрузке страницы, имеет смысл реализовать однократный вызов функций либо использование шаблонов и сохранение результатов.
  • Использование функций обработки строк вместо регулярных выражений при любой возможности. Эти функции обладают более высоким быстродействием.
  • Использование строк с одинарными кавычками вместо строк с двойными кавычками, где только это возможно. РНР выполняет анализ строк с двойными кавычками, выискивая переменные, имена которых необходимо заменить значениями. Строки с одинарными кавычками не анализируются. С другой стороны, одинарные кавычки чаще применяют для статического содержимого. Попытайтесь отыскать способ избавиться от строк вообще, заменив их статическим HTML-содержимым.

Использование продуктов Zend

Компания Zend Technologies разработала механизм сценариев (с открытым исходным кодом) РНР, начиная с версии 4. В дополнение к базовому механизму можно загрузить улиту оптимизации Zend Optimizer/ Этот многопроходный оптимизатор выполняет оптимизацию кода и может повысить быстродействие сценариев от 40% до 100%. Для выполнения улиты оптимизации необходима версия PHP 4.0.2 или выше. Исходный код программы можно бесплатно загрузить из веб-сайта Zend по адресу:

http://www.zend.com/

Этот подключаемый модуль выполняет оптимизацию кода, получаемого в результате компиляции времени выполнения сценария. Ожидается выпуск нового продукта Zend Cache, который выполняет компиляцию PHP-сценариев и буферизирует их. Таким образом, повторная компиляция сценариев потребуется только в случае их изменения. Это позволит еще больше повысить быстродействие.

Тестирование

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

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

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

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

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

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

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

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

Источники дополнительной информации

Информацию по управлению версиями можно найти на веб-сайте CVS по адресу:

http : //www.cvshome.org/

PHP-компоненты, IDE и системы документирования можно найти на сайте SourceForge:

http://sourceforge.net

Если материал вас заинтересовал, рекомендуем ознакомиться с методологией разработки программного обеспечения, посвященной областям, где требования часто меняются, к которым относятся и веб-приложения. Адрес веб-сайта Extreme Programming:

http : / /www. extremeprogramming.org