Выбор технологий реализации подсистемы
Данная связка была выбрана в связи с тем, что во-первых, разработка официального сайта ведется именно с помощью данных средств программирования, во-вторых, представляет собой наиболее удобный набор инструментов для разработки веб-приложений. СУБД MySQL отлично взаимодействует с PHP. Denwer со встроенным сервером Apache позволяет эффективно отладить приложение на локальном сервере, к тому же он довольно удобен ввиду большого количества гибких настроек. Кроме того, Denwer обладает широким спектром дополнительных библиотек, облегчающих разработку и обеспечивающих больший функционал приложения [14].
Фреймворков существует достаточно большое количество. Все они отличаются только поддерживаемыми языками программирования и возможностью подключения тех или иных библиотек. Так например, самая известная платформа - .NET Framework от фирмы Microsoft – поддерживает большое количество языков программирования, позволяет писать как обычные, так и веб-приложения, но из-за того, что создана для операционных систем Microsoft, не позволяет пользователям остальных ОС программировать на ней. Еще одним представителем фреймворков является Circumflex — общее название программных компонентов для языка программирования Scala, предназначенных для ускорения и повышения эффективности разработки Web-приложений и приложений, основанных на работе с реляционными базами данных. Минус этой платформы в невозможности использовать другие виды баз данных, как и небольшая популярность языка программирования. Весьма специфическим является фреймворк Django, используемый для создания веб-приложений на языке Python. Система должна быть реализована в соответствии с концепциями объектно-ориентированного программирования и паттерном Model-View-Controller. Для ее разработки выбран фреймворк Zend Framework .
Zend предоставляет простые интерфейсы и мощную функциональность для разработки приложений и расширения для построения современных, быстрых и безопасных сайтов. Помимо MVC-компонентов Zend Framework содержит множество библиотек, полезных для построения приложения. Framework — это свободный каркас на PHP для разработки веб-приложений и веб-сервисов. Zend Framework представляет собой набор слабосвязанных компонент. Это означает, что можно свободно использовать отдельные компоненты в своих проектах [13].
Zend Framework основан на программной архитектуре Модель-Представление-Контроллер (Model-View-Controller). Ее суть состоит в разделении приложения на три отдельных компонента таким образом, что модификация каждого из них оказывает минимальное воздействие на остальные. Это приводит к существенному облегчению процесса разработки и поддержки [17].
1. Модель. Моделью называют ту часть приложения, которая относится к работе с данными.
2. Представление. Под термином «представление» подразумевается пользовательский интерфейс приложения.
3. Контроллер. Контроллеры реализуют задачи, связанные с взаимодействием между моделью и представлением.
К основным достоинствам Zend Framework принято относить:
– наследование классов - Zend Framework является полностью объектно-ориентированной рабочей средой, позволяет создавать функционал, который будет уникальным для проекта;
– объектно-ориентированная сущность - в Zend Framework все является объектом, значит, есть возможность использовать код повторно;
– можно использовать только то, что нужно - Zend Framework является просто набором классов, вследствие чего можно использовать преимущества компонентов одной библиотеки, а не всей рабочей среды целиком;
– имеет готовое решение для множества задач;
– нет реализации модели - философия Zend Framework утверждает, что реализация модели уникальна для проекта, и невозможно создать абстрактную реализацию;
– главный плюс – можно интегрировать все, что угодно со всем, что пожелает разработчик;
– код жестко соответствует стандартам кодирования;
– разработка, управляемая тестированием - техника программирования, в которой требуется, чтобы разработчик перед тем, как написать функцию, написал тест для функции;
– большое сообщество и понятная документация;
– сертификация [13].
Что касается выбора СУБД, MySQL является наиболее приспособленной для применения в среде web системой управления базами данных, очень часто применяемой в сочетании с PHP. MySQL представляет собой клиент-серверную систему, которая содержит многопоточный SQL-сервер и различные клиентские программы и библиотеки, средства администрирования. Перечислим основные преимущества MySQL:
– простота использования;
– понятный и удобный графический интерфейс, реализованный в phpMyAdmin (при использовании Denwer);
– бесплатно распространяемая и с открытым исходным кодом;
– масштабируемость и большая производительность;
– API для большого количества языков программирования и поддержка большого числа платформ;
– гибкость за счет поддержки большого количества типов;
– очень быстрая, базирующаяся на потоках система распределения памяти;
– хеш-таблицы в памяти, используемые как временные таблицы [15].
Несмотря на то, что в MySQL не реализован весь SQL-функционал, эта СУБД предлагает много удобных и практичных инструментов для разработки приложений.