Курсовые - Разработка сайта по подбору питания и тренировок.

ОБОСНОВАНИЕ ВЫБОРА ТЕХНОЛОГИЙ

 

Для реализации проекта использовался бесплатный веб-фреймворк с открытым кодом, предназначенный для разработки с использованием архитектурной модели MVC – Laravel.

Причинами этого являются следующие ключевые особенности. Пакеты (англ. packages) — позволяют создавать и подключать модули в формате Composer к приложению на Laravel. Многие дополнительные возможности уже доступны в виде таких модулей. Eloquent ORM — реализация шаблона проектирования ActiveRecord на PHP. Позволяет строго определить отношения между объектами базы данных. Стандартный для Laravel построитель запросов Fluent поддерживается ядром Eloquent. Логика приложения — часть разрабатываемого приложения, объявленная либо при помощи контроллеров, либо маршрутов (функций-замыканий). Синтаксис объявлений похож на синтаксис, используемый в каркасе Sinatra. Обратная маршрутизация связывает между собой генерируемые приложением ссылки и маршруты, позволяя изменять последние с автоматическим обновлением связанных ссылок. При создании ссылок с помощью именованных маршрутов Laravel автоматически генерирует конечные URL. REST-контроллеры — дополнительный слой для разделения логики обработки GET- и POST-запросов HTTP. Автозагрузка классов — механизм автоматической загрузки классов PHP без необходимости подключать файлы их определений в include. Загрузка по требованию предотвращает загрузку ненужных компонентов; загружаются только те из них, которые действительно используются. Составители представлений (англ. view composers) — блоки кода, которые выполняются при генерации представления (шаблона). Инверсия управления (англ. Inversion of Control) — позволяет получать экземпляры объектов по принципу обратного управления. Также может использоваться для создания и получения объектов-одиночек (англ. singleton). Миграции — система управления версиями для баз данных. Позволяет связывать изменения в коде приложения с изменениями, которые требуется внести в структуру БД, что упрощает развёртывание и обновление приложения. Модульное тестирование (юнит-тесты) — играет очень большую роль в Laravel, который сам по себе содержит большое число тестов для предотвращения регрессий (ошибок вследствие обновления кода или исправления других ошибок). Страничный вывод (англ. pagination) — упрощает генерацию страниц, заменяя различные способы решения этой задачи единым механизмом, встроенным в Laravel. Поддержка noSQL СУБД Redis. Множество готовых админ-панелей, шаблонов и CRUD. Шаблонизатор Blade (по умолчанию). Возможность подключать CSS шаблоны.

В качестве языка программирования был использован php. Вот перечень преимуществ, которые делают широко применимым его в веб-разработке: разработка с помощью PHP дает много возможностей. При должном уровне владения, с помощью шаблонизатора можно создавать не только сценарии для веб-приложений, но и полноценные программы. Существуют решения, позволяющие создавать мобильные приложения на PHP; изучение PHP не требует много времени. Это одновременно и плюс, и минус. Ведь основательное знание требует практики, но об этом позже; кроссплатформенность. PHP может быть запущен в любой операционной системе, включая юниксоиды; поддержка веб-серверов. Сложно найти тот, который бы не работал с PHP;  бесплатное распространение. Возможно, PHP не был так популярен для создания web-приложений, если бы не был бесплатным, как и большинство инструментов для работы с ним. Аналоги, которые, в основном, могут выполнить ту же работу, обычно стоят дороже; имеет достаточную произвольность для web-разработки. Конечно, такие базовые языки, как C-семейство, работают быстрее, но для веба это не критично; наличие учебных материалов. Все знают о «косяках» PHP лишь потому, что разработку, в основном, ведут с его помощью. Попробуйте найти в Google недостатки «Virtual Reality Modeling Language». Будет сложно, ведь его мало кто знает. Зато основу недостатков «препроцессорa» уже все выучили наизусть из-за широкой используемости языка. Именно потому, если у вас что-то не получается, всегда можно заглянуть в поисковик: с вашей проблемой, вероятнее всего, кто-то уже сталкивался; непрерывное развитие. То, что сегодня о шаблонизаторе знают так много, означает лишь одно: с недостатками, рано или поздно, справятся.

Около 80% всех существующих web-приложений было создано на шаблонизаторе, и естественно, что в них были найдены ошибки. К тому же, низкий порог входа позволяет новичкам создавать масштабные продукты. Их «поделки» редко отличаются качеством, но все-же работают.

Также использовалась база данных MySQL, чьими преимуществами являются: простота в использовании. MySQL достаточно легко инсталлируется, а наличие множества плагинов и вспомогательных приложений упрощает работу с базами данных, обширный функционал. Система MySQL обладает практически всем необходимым инструментарием, который может понадобиться в реализации практически любого проекта, безопасность. Система изначально создана таким образом, что множество встроенных функций безопасности в ней работают по умолчанию, масштабируемость. Являясь весьма универсальной СУБД, MySQL в равной степени легко может быть использована для работы и с малыми, и с большими объемами данных, скорость. Высокая производительность системы обеспечивается за счет упрощения некоторых используемых в ней стандартов.

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

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

 

Количество комментариев: 0

Для того, чтобы оставить коментарий необходимо зарегистрироваться
Дата Выполнено, %
2020-05-21 20:25:22 10
2020-02-26 13:14:58 100
2020-02-26 13:15:26 10
2020-02-26 13:18:40 10
2020-05-15 08:27:26 100
Открытая Для скрытия необходимо уменьшить величину статуса выполнения.