Проектирование и создание информационной системы
![]()
|
КАЖДЫЙ ВЕБ - РАЗРАБОТЧИК СТАЛКИВАЕТСЯ С ОДНИМИ И ТЕМИ ЖЕ ПРОБЛЕМАМИ ![]() ![]() ![]() Эти проблемы решены Б ЭМ-методологией, подходом к веб-разработке, который позволяет получить гибкий, легко изменяемый код. Рис. 3. БЭМ-методология как решение частых проблем веб-разработки БЭМ-методология сопровождается большим количеством технической документации, готовыми к работе примерами, инструментариями, доступными в соответствующем разделе сайта «Технологии Яндекс» (https://tech.yandex.ru/bem/). БЭМ включает в себя: Методологические рекомендации - это простые советы, помогающие организовать проект, наиболее быстро его реализовать и удобно поддерживать длительное время. Технологии и библиотеки с открытым исходным кодом — готовая реализация рекомендаций БЭМ. Инструменты для автоматизации работы с методологией БЭМ. Преимущества БЭМ: Простая поддержка структуры кода при росте проекта. Повторное использование кода — позволяет сократить сроки и стоимости новых разработок за счёт использования одинаковых компонентов. Точечные изменения с минимальными затратами: обновление дизайна, добавление функциональных элементов и т. д. Масштабирование — код развивается по заранее известным правилам. Общая терминология — позволяет упростить взаимодействие разных разработчиков. • Автоматизация — общие единые правила способствуют автоматизации процессов. Часть кода может быть сгенерирована автоматически. БЭМ рекомендуют многие популярные разработчики, консультанты и технические директора. Его используют в таких IT-гигантах как Google, Яндекс, BBC, Alpha-Bank, BuzzFeed, EPAM. Также БЭМ можно использовать не только в веб-разработке, но и в любом другом языке программирования и фреймворке, т. к. методология предлагает только абстрактные практики по повышению надёжности и повторному использованию кода [23]. Кроме стандартизированной разработки веб-приложения в части интерфейса, необходимо также стандартизировать разработку серверной части, основой которого является PHP-код. Наиболее популярным и применяемым в мире является стандарт кодирования PSR. Proposing a Standards Recommendation — предлагаемые рекомендации стандартов, которые в свою очередь разделены на несколько независимых блоков. Данный стандарт создан группой взаимодействия фреймворков (PHP-FIG), является развивающимся и постоянно дополняющимся, охватывая всё больше аспектов PHP-программирования [28]. На сайте сообщества можно найти как утверждённые рекомендации, так и рекомендации, находящиеся в разработке (http: //www.php-fig. org). Описание существующих на данный момент PSR стандартов [28,34]: PSR-1 - основной стандарт кодирования. Данный стандарт описывает наиболее общие правила, такие как использование тегов PHP, кодировка файлов, разделение места объявления функции, класса и места их использования, а также именование классов и методов. PSR-2 - руководство по стилю кода. Расширяет первый стандарт, регулирует такие вопросы использования в коде как «табуляция или пробелы», переводы строк, максимальная длина строк, правила оформления управляющих конструкций (рис. 4.) и другое. PSR-3 - интерфейс протоколирования. Этот стандарт разработан для того, чтобы обеспечить логирование (журналирование) в приложениях, написанных на PHP. PSR-4 - стандарт автозагрузки. Это, наверное, самый важный и нужный стандарт PSR. Классы, которые реализуют PSR-4, могут быть загружены единым автозагрузчиком, что позволяет частям и компонентам из одного фреймворка или библиотеки быть использованными в других проектах. PSR-6 - интерфейс кеширования. Кэширование используется для повышения производительности системы. И PSR-6 позволяет стандартно сохранять и извлекать данные из кэша, используя унифицированный интерфейс. PSR-7 - интерфейс HTTP-сообщений. При написании сложных вебприложений на PHP, почти всегда приходиться работать с HTTP заголовками. Конечно, язык PHP предоставляет нам уже готовые возможности для работы с ними, такие как суперглобальный массив $_SERVER, функции header(), setcookie() и т.д., однако их ручной разбор чреват ошибками, да и не всегда можно учесть все нюансы работы с ними. И вот, чтобы облегчить работу разработчику, а также сделать единообразным интерфейс взаимодействия с HTTP протоколом был принят данный стандарт. PSR-11 - интерфейс контейнера. При написании PHP программы часто приходится использовать сторонние компоненты. И чтобы не заблудиться в обилии зависимостей были придуманы различные методы управления зависимостями кода, зачастую несовместимые между собой, которые данный стандарт и приводит к общему знаменателю. PSR-13 - гипермедиа ссылки. Данный интерфейс призван облегчить разработку и использование прикладных программных интерфейсов (API). PSR-16 - интерфейс простого кэширования. Является продолжением и улучшением стандарта PSR-6. ![]() Рис. 4. Оформление кода и файловая структура в соответствии с PSR Консорциум Всемирной паутины (World Wide Web Consortium, W3C) — это организация, разрабатывающая и внедряющая для Интернета единые принципы и технологические стандарты (называемые рекомендациями), которые затем внедряются производителями программ и оборудования. Консорциум возглавляет сэр Тимоти Джон Бернерс-Ли, автор множества разработок в области информационных технологий [40]. Стандарты, рекомендуемые W3C, являются открытыми и свободными для внедрения кем угодно, без финансовых отчислений консорциуму. Организация не проводит сертификацию на соответствие стандартам и не планирует этим заниматься. Благодаря этому рекомендации консорциума получили широкое распространение, однако это вызывает проблему с тем, что некоторые производители следуют рекомендациям лишь частично (такое внедрение не нарушает общих стандартов W3C). Также внедрение разделено на несколько степеней внедрения - каждый сам решает в какой степени необходимо внедрение W3C стандартов. Из практических примеров - это частичное внедрение новых стандартов W3C в работе веб-обозревателей, что обуславливает веб-разработчиков необходимостью проводить дополнительное тестирование на кроссбраузерность веб-приложения. Стандарты W3C имеют черту хорошо детализированных рекомендаций и доступны как начинающим веб-мастерам, так и экспертам-программистам. Технические спецификации консорциума сопровождаются обилием руководств и советов, которые облегчают понимание и внедрение стандартов. В последнее время W3C проводит много работы по популяризации своих стандартов, их совершенствованию и расширению. ![]() Рис. 5. Один из популярнейших стандартов W3C - это HTML версии 5 Принципы и концепции, утверждённые W3C: • Общедоступность - при реализации данного принципа, большое внимание уделяется доступности ресурсов глобальной сети для людей с ограниченными физическими возможностями. Аппаратная независимость - этот принцип утверждает, что ресурсы и протоколы не должны быть кроссплатформенными, т.е. рассчитаны работать на любом аппаратном обеспечении. Интернационализация - прежде всего подразумевает языковой барьер и призывает к доступности информации на всех языках мира, возможности и равноправию использования национальных шрифтов в документах и системах разработанных на основе стандартов. Патентная политика - здесь речь идёт о патентовании рекомендаций W3C таким образом, чтобы их можно было внедрять бесплатно, на основе лицензии W3C Royalty-Free License. Многоформенное взаимодействие -принцип, предполагающий наличие различных форм и режимов взаимодействия программы с человеком. Семантическая паутина - свежая и актуальная концепция, призывающая размещать информацию в более понятном для компьютеров виде. Семантическая паутина сейчас реализуется как надстройка над существующей Всемирной паутиной. Мобильная паутина - этот принцип определяет, что ресурсы Всемирной сети должны быть доступны для мобильных устройств. Одни из самых используемых стандартов, утверждённых W3C: CSS, DOM, HTML, HTTP, OWL, PNG, RDF, SOAP/XMLP, Style, SVG, URI/URL, XML. Применение данных стандартов и методологий позволит создать информационную систему, соответствующую современным технологическим требованиям и имеющую высокую конкурентоспособность. Глава 2. Проектирование и создание информационной системы для торговой организации 2.1. Разработка серверной части информационной системы Под серверной частью подразумевается back-end составляющая web- приложения. Back-end и front-end — это термины в программной инженерии, которые различают согласно принципу разделения ответственности между внешним представлением и внутренней реализацией соответственно. Front - end — интерфейс взаимодействия между пользователем и основной программно-аппаратной частью (back-end). Front-end и back-end могут быть распределены между одной или несколькими системами [19]. Серверная, back-end часть информационной системы принимает и обрабатывает клиентские запросы, обращается к СУБД при необходимости, формирует и отправляет ответ клиенту. Серверная часть состоит из аппаратного и программного обеспечения. В качестве аппаратного обеспечения у компании ISPSERVER (https://ispserver.ru) был арендован виртуальный выделенный сервер с рабочими характеристиками: 1GB RAM, 100GB HDD, 2 GHz CPU и предустановленной операционной системой FreeBSD. Виртуальный сервер (VPS) - это услуга, в рамках которой пользователю предоставляется часть ресурсов одного физического сервера. В плане управления, такой сервер практически не отличается от физического, на него можно установить полноценную операционную систему, и он имеет один или несколько статических IP-адресов для выхода в интернет. FreeBSD - это свободная операционная система семейства UNIX (https://www.freebsd.org/ru/). ОС распространяется под лицензией BSD и является популярной системой для сетевых серверов (управление сетью и различные сетевые службы). При помощи системы портов (технология установки программного обеспечения сторонних разработчиков в операционной системе FreeBSD) были установлены необходимые компоненты информационной системы, обеспечивающие работу сервера в роли веб-сервера и тем самым вебприложения: система управления базами данных, HTTP-сервер и PHP- интерпретатор. Активная деятельность по отысканию приемлемых способов обобществления непрерывно растущего объема информации привела к созданию в начале 60-х годов специальных программных комплексов, называемых "Системы управления базами данных" (СУБД). Основная особенность СУБД - это наличие процедур для ввода и хранения не только самих данных, но и описаний их структуры. Файлы, снабженные описанием хранимых в них данных и находящиеся под управлением СУБД, стали называть банками данных, а затем "Базами данных" (БД) [20]. Выбор СУБД — это выбор из числа многочисленных программнолингвистических средств общего и специального назначения, обеспечивающих управление созданием и использованию баз данных. В системе управления базой данных для торговой организации планируется хранить максимальное количество информации о текущей бизнес- деятельности, начиная от каталога товаров и заканчивая данными о заказах клиентов. При выборе были учтены функциональные возможности, документальная поддержка, наличие литературы, масштабируемость и интеграция с другими программными продуктами. Немаловажными стали и такие параметры как возможности системы для работы, как с малым количеством данных, так и возможность «расти» вместе с организацией. Малому бизнесу могут потребоваться только ограниченные возможности, т.е небольшое количество информации, но требования могут существенно расти в течение времени, и переход на другую систему управления базами данных может стать проблемой. Учтены и стоимость использования СУБД, наличие на рынке труда узких специалистов работающих с данной СУБД в случае потребности их найма, наличие достаточного количества технической документации и литературы. При выборе были рассмотрены наиболее популярные и развитые системы управления базой данных [16,18]. Oracle Database ![]() Рис. 6. Базы данных и таблицы в Oracle SQL Developer Одна из популярных и современных объектно-реляционных система управления базами данных от компании Oracle. Первая версия системы была создана в 70-х годах, существует несколько различных версия для удовлетворения узконаправленных потребностей в информатизации. Последняя из выпущенных версий предназначена для облачных сред, т.е. размещается на 1 и более серверах, позволяет хранить и работать с очень большими объёмами записей. Присутствует сильная безопасность, обусловленная изоляцией каждой транзакцией в запросах к базе данных. Данная база данных имеет инновационные особенности, широкий набор инструментов и задаёт планку качества и технологичности для многих других СУБД. Oracle Database является платным продуктом, цена для малых и развивающихся организаций весьма высока, также система требует значительно лучшее аппаратное обеспечение в плане ресурсов. На российском рынке труда не много специалистов работающих с данной БД. Техническая документация и ссылки для скачивания доступны на официальном сайте: https://www.oracle.com. |