Диплом: Разработка WEB-представительства студии корпусной мебели "ВК МЕБЕЛЬ"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
66
проектов на Ruby on Rails уменьшается на 30-40 процентов по отношению к
любому другому языку программирования или фреймворку. В первую
очередь прирост скорости разработки определяется большим количеством
готовых к работе штатных инструментов Ruby on Rails, колоссальным
набором готовых решений в сообществе, языку Ruby и простоте
программирования на нем.
Одной из важнейших частей культуры Ruby on Rails является социальность.
Решил проблему – помоги решить другим. Реализовал свой модуль –
поделись с сообществом. Таким образом, на данный момент в открытом
доступе хранятся тысячи готовых решений тех или иных задач. Системы
аутентификации, авторизации, комментирования, системы платежей,
почтовые рассылки и многое другое. Это позволяет внедрить разработки,
реализованные кем-то другим, протестированные и рекомендованные
многочисленным сообществом.
Преимущества Ruby on Rails:
Тестирование. В отличие от других фреймворков, в составе Ruby on Rails
есть отличные средства автоматизированного тестирования. В других языках
программирования и фреймворках штатных средств тестирования нет.
Конечно, есть сторонние разработки, позволяющие организовать
автоматическое тестирование проекта на PHP, но они не ставятся "из
коробки" и об их использовании программисты чаще не задумываются.
Кеширование проектов – один из важнейших этапов разработки крупного
интернет–проекта. В PHP имеются различные варианты кеширования
данных. Эти варианты и инструменты прикручиваются, пристраиваются,
приделываются, прикрепляются сбоку. До сих пор в сообществе PHP нет
единого мнения: что лучше использовать, как лучше кешировать данные,
какими инструментами пользоваться.
Ruby on Rails в его базовой комплектации имеет штатные средства
кеширования данных. На старте предоставляются инструменты,
позволяющие реализовать кеширование данных на проекте. Можно
67
кешировать целые страницы или же блоки кода. Можно кешировать
результаты запросов и ActiveRecord–модели. Кешировать можно как при
помощи memcached или redis, так и другими средствами. Для реализации
кеширования на Ruby on Rails проекте в 95 процентах случаев не потребуется
ничего кроме уже готовых и штатных решений.
Локализация. Часто встречается ситуация, когда кто-то сделал проект, а
потом неожиданно понимает, что для продолжения развития проекта
необходима английская версия. Разработчики на PHP при этом начинают
заводить разговоры о том, что это не было предусмотрено заранее, что это
долго и крайне трудоемко. Давайте, дескать, откроем параллельный проект,
который будет полной копией этого, и переведем его.
Ruby on Rails в базовой комплектации имеет средства локализации проекта.
Существует возможность предусмотреть необходимость поддержки
различных языков на сайте как изначально, так и в дальнейшем. RoR умеет
раздавать разные шаблоны для разных языков, содержит в себе
конфигурационные файлы с переводами терминов и многие другие штатные
инструменты для реализации локализации проекта.
Роутинг. Зачастую во многих PHP проектах можно видеть картину, когда
адрес определенной страницы огромен и непонятен. В Ruby on Rails есть
штатная возможность гибко настроить роутинг, вид адресов, названия
основных разделов. Есть возможность быстро изменить адреса в одном месте
без необходимости изменения этого адреса во всем проекте. В сообществе
RoR-разработчиков активно используются идеология REST. Адреса страниц
в проектах на Ruby on Rails всегда понятны, красивы, прекрасно понимаются
поисковиками, просты.
Валидации. В ruby on rails прекрасно реализованы инструменты,
позволяющие валидировать входящие данные. Пользователи заполняют
формы, где нужно проверить правильность ввода адреса электронной почты,
наличие пароля или необходимую минимальную длину логина, штатные
средства Rails в этом помогут.
68
Миграции и работа с базой данных. Основная проблема многих проектов
на PHP – невозможность понятными средствами и инструментами
контролировать структуру базы данных. Изменения в структуру зачастую
вносятся вручную и прямо в базу. Из–за этого в проекте появляются
многочисленные непонятные поля и таблицы, про которые уже никто ничего
не помнит. В Ruby on Rails существуют штатные инструменты работы с
базами данных – «миграции». Структура базы данных хранится в коде
приложения и конфигурируется из проекта. Ваша структура будет всегда в
репозитории, любое изменение структуры будет задокументировано и
привязано к определенному коммиту в репозиторий.
1.4.3 Обоснование проектных решений по техническому обеспечению
Обычно под понятием услуги хостинга подразумевают как минимум услугу
размещения файлов сайта на сервере, на котором запущено ПО (в данном
случае обязательными являются ruby, PostgreSQL), необходимое для
обработки запросов к этим файлам (веб-сервер). Как правило, в услугу
хостинга уже входит предоставление места для почтовой корреспонденции,
баз данных, DNS, файлового хранилища и многое другое, а также поддержка
функционирования соответствующих сервисов.
Виды предоставляемых серверов бывают:
виртуальный сервер — предоставляется место на диске для
размещения веб-сайтов, среда исполнения веб-сервисов единая для
многих пользователей, ресурсы распределены между всеми
пользователями на одном сервере, где может размещаться от 50 до
1000 пользователей. Небольшие дешевые хостинг-провайдеры часто
пренебрегают безопасностью и вообще не разграничивают привилегий
пользователей, что позволяет одному пользователю на сервере иметь
доступ к сайтам сотен других пользователей. У более крупных и
дорогих провайдеров эта проблема как правило решена.
виртуальный выделенный сервер (VPS или VDS) — предоставляется
место на диске, часть общей памяти, процессорное время сервера.
69
Выглядит для пользователя так же, как и выделенный сервер, но
физически на одном реальном сервере располагается несколько
виртуальных серверов. Услуга предназначена для проектов средней
тяжести.
выделенный сервер — предоставляется сервер целиком. Используется
для реализации нестандартных задач (сервисов), а также размещения
«тяжёлых» веб-проектов, которые не могут сосуществовать на одном
сервере с другими проектами и требуют под себя все ресурсы сервера.
В качестве хостинга выбран Heroku – это облачная PaaS-платформа,
поддерживающая ряд языков программирования.
С 2010 года является дочерней компанией Salesforce.com. Heroku, одна из
первых облачных платформ, появилась в июне 2007 года и изначально
поддерживала только язык программирования Ruby, но на данный момент
список поддерживаемых языков также включает в себя Java, Node.js, Scala,
Clojure, Python, Go и PHP. На серверах Heroku используются операционные
системы Debian или Ubuntu.
Heroku – это крупный поставщик платформы для разработок Ruby-
приложений, в частности, он предоставляет разработчикам онлайновый
Rack-интерфейс и Ruby on Rails. На начало 2011 года сервис успешно
преодолел отметку в 120 000 приложений, предоставляемых на его
платформе. Heroku называет себя принципиальным последователем NoSQL-
решений, поэтому в качестве addon-решений, которые кстати можно
установить буквально одним кликом, компания предлагает Cloudant,
Membase, MongoDB, Redis и многие другие популярные NoSQL-продукты.
В ноябре 2010 года Heroku заключила партнерский договор с Facebook,
который продвигает новый продукт – Heroku Facebook App Package, –
который позволяет компаниям любого масштаба создавать свои приложения
для Facebook, при этом по утверждению Heroku, это самый простой и
быстрый инструмент для создания подобных приложений из всех
70
имеющихся на
рынке.
Тарифный план на Heroku включает:
Неограниченное количество доменов и поддоменов;
Неограниченное количество почтовых ящиков;
Собственную панель управления;
71
Собственную панель управления;
PHP 4/5/7, Perl 5, Python, Zend, phpMyAdmin, Ruby, а также другие
языки программирования и средства;
SSH, sFTP/FTP доступ;
Неограниченный трафик;
Автоматическую установку CMS;
Управление CronTab (задания по расписанию);
Управление DNS-записями;
POP3, IMAP, SMTP для работы с почтой;
Автоматическое резервное копирование;
Управление журналами веб-сервера;
Круглосуточную техническую поддержку;
Разрешённую нагрузку 65 CP в день;
Разрешённую нагрузку 2500 CP для MySQL в день.
Описание сервера: процессор с частотой до 4000 Mhz и SSD диски.
Включает: CPU 4 ядра, RAM 32Гб, SSD — 2 * 480Гб, LAN —
40Мбит/с.
Набор ПО предустановленного на Heroku:
Серверная система: Supermicro SYS−5039MS−H12TRF;
Процессор: CPU Intel Xeon E3-1275 V5. 4 ядра (8 потоков) на частоте
до 4000 MHz.
Жесткие диски: 2 * SSD SATA2.5" 480GB SAMSUNG SM863, + 2 *
HDD 1TB HGST (для хранения локальных бэкапов);
Оперативная память: 2 * DDR4 16GB Kingston, 32Гб оперативной
памяти. (возможность увеличения до 64Гб);
RAID контроллер: RAID реализуется средствами операционной
системы;
72
Сеть: Гарантированная полоса пропускания 40 Мбит/c, без
ограничений. Сеть IP адресов класса /29 (6 IP адресов);
Администрирование: администрирование включено в стоимость. Для
сервера с собственным администрированием предоставляется IPMI
доступ. Установочная плата отсутствует, никаких дополнительных
оплат не требуется.
73
2. ПРОЕКТНАЯ ЧАСТЬ
2.1 Разработка проекта автоматизации
2.1.1 Этапы жизненного цикла проекта автоматизации
Единая система программной документации. Техническое задание.
Требования к содержанию и оформлению [ГОСТ 19.201-78]
Настоящий ГОСТ установлен постановлением Государственного комитета
СССР по стандартам от 18 декабря 1978 года № 3351 и вступил в силу с 1
января 1980 года.
ГОСТ 34.602-89. Техническое задание на создание автоматизированной
системы.
Настоящий стандарт распространяется на автоматизированные системы (АС)
для автоматизации различных видов деятельности (управление,
проектирование, исследование и т. п.), включая их сочетания, и
устанавливает состав, содержание, правила оформления документа
«Техническое задание на создание (развитие или модернизацию) системы»
ГОСТ 34.601-90. Комплекс стандартов на автоматизированные системы.
Автоматизированные системы. Стадии создания;
Настоящий стандарт распространяется на автоматизированные системы
(АС), используемые в различных видах деятельности (исследование,
проектирование, управление и т.п.), включая их сочетания, создаваемые в
организациях, объединениях и на предприятиях.
ГОСТ 34.201-89. Информационная технология. Комплекс стандартов на
автоматизированные системы. Виды, комплексность и обозначение
документов при создании автоматизированных систем;
Настоящий стандарт распространяется на автоматизированные системы
(АС), используемые в различных сферах деятельности (управление,
исследование, проектирование и т. п.), включая их сочетание, и
74
устанавливает виды, наименование, комплектность и обозначение
документов, разрабатываемых на стадиях создания АС, установленных ГОСТ
24.601.
РД 50-34.698-90. Методические указания. Информационная технология.
Комплекс стандартов на автоматизированные системы. Автоматизированные
системы. Требования к содержанию документов.
Настоящие методические указания распространяются на
автоматизированные системы (АС), используемые в различных сферах
деятельности (управление, исследование, проектирование и т. п.), включая их
сочетание, и устанавливают требования к содержанию документов,
разрабатываемых при создании АС.
Жизненный цикл разработки информационной системы. Каскадная модель
(Waterfall).
Стадии жизненного цикла и их особенности.
Для разработки качественного информационной модели необходимо хорошо
понимать основные принципы жизненного цикла, требования заказчика к
создаваемому продукту, а также учитывать его финансовые возможности.
Существует несколько моделей жизненного цикла (каскадная модель,
спиральная модель, быстрое прототипирование и т.д.). Выбор определенной
модели жизненного цикла зависит, в основном, от содержания и целей
проекта, а также от размера его финансирования.
75
Как правило, для разработки информационной системы отдается
предпочтение спиральной модели, которая включает в себя гибкие
методологии разработки Agile. Тем не менее, довольно часто используется
каскадная модель (которая также носит название «Водопад») и ее
производные для выполнения небольших или несложных проектов. Далее
будет представлено описание каскадной модели, которая является
классическим типом жизненного цикла программного обеспечения.
Согласно этой модели, информационная система реализуется пошагово, в
соответствии с точной последовательностью действий: сбор и изучение
требований, проектирование программного обеспечения и его разработка,
тестирование и техническая поддержка. Каскадная модель достаточно
гибкая, и некоторые этапы могут частично совпадать.
1. Анализ требований
На этом этапе важно задокументировать все требования к будущей
информационной системе. Необходимо посвятить достаточно времени
обсуждению деталей проекта со всеми заинтересованными сторонами. Все
поступающие данные нужно проанализировать и систематизировать. Важно
также учесть все технические ограничения, которые могут возникнуть на
стороне заказчика. Итогом данного этапа должно стать создание подробной

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)
Value-based education: ценности в системе образования и способы их реализации на уроке английского языка. Опыт Европейских стран