Условно функции, выполняемые веб-приложением, можно разделить следующим образом.
Представление в веб структурированной информации
-
Выбирается структура данных, оптимально соответствующая задаче заказчика.
-
Если информация общедоступна, организуется доступ к ней в «статической» форме для посетителей с любыми браузерами и поисковых систем.
-
Разрабатывается удобная структура навигации.
-
-
Если требуется разделить информацию, предназначенную различных групп пользователей, организуется система ограничения доступа с различными правами и привелегиями.
-
Для часто обновляемой информации организуется экспорт в формате RSS или рассылка оповещений подписчикам по e-mail.
-
Если необходимо организовать удобный доступ к большому массиву данных по набору сложных критериев, создаются одна или несколько форм для он-лайн поиска информации.
-
Для лучшей обратной связи и изучения поведения пользователей можно организовать сбор статистики поисковых запросов.
-
-
Если ожидается большое количество запросов к веб-приложению, разрабатывается система многоуровневого кэширования информации.
Сбор данных через веб
-
Примеры: заявки, в т.ч. с предварительным расчетом цен; анкетирования пользователей.
-
В этом классе задач важно обеспечить аутентичность собранных данных и организовать удобное представление результатов заказчику.
-
Сложность задачи определяется сложностью структуры собираемых данных, обширностью логики взаимодействия с пользователем и частотой, с которой будут вноситься изменения в формы или анкеты.
Автоматизация процесса бизнес-коммуникации
-
Пользователи взаимодействуют друг с другом посредством веб-приложения. Например, потенциальный клиент составляет заявку, которую получает менеджер; после его ответа (также формализованного) клиент получает оповещение об ответе и выбирает соответствующее действие, и т.д.
-
Сложность конкретной задачи очень сильно варьируется с количеством ролей, в которых выступают пользователи системы, разветвленностью логики их рабочего процесса и диапазоном состояний в которых могут находиться представляющие бизнес-информацию сущности.
Веб-службы
-
Приложения, которые расчитаны на взаимодействие не только с барузерном, но и с другими клиентами (прикладным ПО, другими веб-службами и приложениями).
Прочее
-
Специализированные приложения и утилиты, специфичные настолько, что не попадают под описанную выше классификацию.
Разработка веб-приложений «с нуля» и с использованием готового кода
Большинство разработок никогда не являются «абсолютно новыми». Они используют в той или иной степени уже существующие инструментальные средства и библиотеки. По соотношению объема и прикладных возможностей готового кода к эксклюзивно разрабатываемому программные решения можно классифицировать так.
-
Полностью эксклюзивная разработка: весь PHP-код пишется под конкретную задачу.
-
а) узконаправленные, специфические решения (например, скрипт синхронизации двух баз данных или учет статистики)
-
б) необходимость в специфической лицензии или авторских правах на весь разработанный код.
-
-
Разработка с использованием готовых инструментальных библиотек (абстракция доступа к базе данных и объектно-реляционный преобразователь, средства построения интерфейса пользователя, библиотеки связи с веб-службами) - выгодно для менее специфических разработок, экономит время и позволяет не изобретать лишний раз колесо.
-
Разработка с использованием инструментальных инфраструктур (framework), таких, как Cake, Zend Framework, Prado. В большинстве случаев мы используем свою собственную разработку - Avancore Framework. Выбор framework'а обусловлен характером задачи и требованиями к эксплуатации решения:
-
Avancore - оптимальный вариант, значительно сокращающий время и стоимость разработки, но не является свободно распространяемым ПО.
-
Cake - совместима с PHP4.
-
Prado - ориентирована на сложный интерактивный интерфейс пользователя.
-
Zend Framework - использует новейшие возможности PHP5 и активно поддерживается Zend, компанией, ведущей разработчику PHP.
-
-
Разработка с использованием готовой системы управления контентом (CMS).
-
Удобно, если параллельно с основной задачей Вам потребуются обычные функции CMS.
-
В случае с open-source CMS Вам потребуется регулярно ее обновлять для обеспечения безопасности сайта.
-
Выбор CMS обусловлен ее простотой в использовании, простотой разработки под нее, активностью сообщества, ее поддерживающего, и наличием компонентов сторонних разработчиков.
-
Joomla CMS - одна из самых популярных CMS. Эффективное решение простых задач и большой потенциал для расширения Вашего сайта в дальнейшем. Используется Avansite в большинстве случаев.
-
Typo 3 - CMS промышленного уровня. Сверхвысокая гибкость, но разработка стоит дороже, а администрирование готового сайта - сложнее.
-
Чем масштабнее решение, тем дороже обойдется Вам разработка с нуля, и тем целесообразнее использовать готовые решения в качестве базы.
Особенности решений, интегрирующихся в существующие веб-приложения и расширяющие их функциональность
Сложность таких задач определяется степенью модульности внешней системы (ее пригодностью к расширению) и масштабом необходимых изменений.
Чем больше планируется сделать модификаций, тем сложнее будет обслуживание получившегося в результате продукта, его обновление и, в ряде случаев, распространение разработанных дополнений.
В разработке решений, модифицирующих код существующего ПО, Avansite пользуется методикой, позволяющей максимально отделить код дополнения от кода внешнего ПО, что упрощает обслуживание конечного продукта и облегчает установку дополнения.
Если заказчик собирается осуществлять дальнейшее распространение дополнений, они могут быть запакованы в удобные для инсталляции пакеты дистрибутива.
Интеграция в Веб существующих систем заказчика
-
Создание веб-интерфейса для уже существующего ПО (ввод, вывод данных).
-
Создание единого веб-интерфейса для нескольких приложений.
Сложность зависит от доступности исходного кода, документированности и обширности программного интерфейса существующих приложений, их распределенности и их платформы (сложнее всего работать с готовыми приложениями, созданными на базе компилируемых языков; проще всего - со скриптами, в которые легко внести изменения).

