Разработка фреймворка для создания оптимизированной клиентской части веб-сайтов компаний

Ткачев, Михаил Отделение информационных технологий (ОИТ)
Бесплатно
В избранное
Работа доступна по лицензии Creative Commons:«Attribution» 4.0

В результате исследовательской работы спроектирован и разработан фреймворк для создания клиентской части веб-приложения. Фреймворк предоставляет функционал для компонентной реализации веб-приложения с применением парадигмы объектно-ориентированного программирования и представлении пользовательского интерфейса в виде JavaScript объекта.

Введение …………………………………………………………………………………………16
1. Анализ предметной области……………………………………………………………19

1.1 Базовые инструменты разработки клиентской части веб-приложений …..19
1.1.1 Развитие современного JavaScript ……………………………………………….21

1.1.2 Основы работы браузера …………………………………………………………..23
1.2 Обзор актуальных фреймворков для разработки клиентской части веб
приложений……………………………………………………………………………………..27

1.2.1 Обзор фреймворка Angular ………………………………………………………..28
1.2.2 Обзор фреймворка React …………………………………………………………..33

1.2.3 Обзор фреймворка Vue……………………………………………………………..36
1.3 Современные подходы фронтенд разработки …………………………………..38

1.3.1 Одностраничные приложения…………………………………………………….38

1.3.2 Прогрессивные веб приложения …………………………………………………40
1.3.3 Теневая и виртуальная объектная модель документа ………………………42

1.4 Формирование требований к разрабатываемому фреймворку по
результатам аналитического обзора ………………………………………………………45

2. Проектирование и разработка фреймворка ………………………………………..47
2.1 Проектирование и разработка класса компонента……………………………..47
2.2 Проектирование класса UserEventEmitter………………………………………..52

2.3 Проектирование и разработка класса страницы………………………………..52
2.4 Проектирование класса Router………………………………………………………53

2.5 Настройка прогрессивного веб-приложения и стратегии кеширования….54
2.6 Разбиение проекта на бандлы и оптимизация загрузки ………………………55

2.7 Вспомогательные утилиты …………………………………………………………..55
3. Разработка демонстрационного приложения ……………………………………..58
4. Исследование производительности демонстрационного веб приложения…61

5. Финансовый менеджмент, ресурсоэффективность и ресурсосбережение …64
5.1 Потенциальные потребители результатов исследования …………………….64

5.2 SWOT-анализ ……………………………………………………………………………64
5.3 Планирование управления научно-техническим проектом………………….65
5.4 Бюджет научно-технического исследования ……………………………………67

5.4.1 Материальные затраты……………………………………………………………..67
5.4.2 Основная заработная плата исполнителей темы …………………………….67

5.4.3 Дополнительная заработная плата исполнителей темы ……………………69
5.4.4 Отчисления во внебюджетные фонды ………………………………………….69

5.4.5 Накладные расходы …………………………………………………………………70
5.4.6 Формирование бюджета затрат научно-исследовательского проекта ….70

5.5 Определение ресурсной, финансовой, бюджетной, социальной и
экономической эффективности исследования …………………………………………71
6. Социальная ответственность…………………………………………………………..75

6.1 Правовые и организационные вопросы обеспечения безопасности …………75
6.2 Производственная безопасность ……………………………………………………78
6.2.1 Микроклимат рабочего места …………………………………………………….79

6.2.2 Шум ……………………………………………………………………………………..79
6.2.3 Освещенность рабочей зоны………………………………………………………81

6.2.4 Электромагнитное излучение …………………………………………………….83
6.2.5 Электробезопасность ……………………………………………………………….84

6.3 Экологическая безопасность ………………………………………………………..85
6.4 Безопасность в чрезвычайных ситуациях ………………………………………..86
6.5 Вывод по разделу ………………………………………………………………………88
Заключение ……………………………………………………………………………………..89

Список публикаций студента……………………………………………………………….90
Литература ………………………………………………………………………………………91

Приложение А. Раздел на иностранном языке …………………………………………95
Приложение Б. Алгоритм обновления пользовательского интерфейса……….. 105
Приложение В. Диаграмма классов демонстрационного приложения………… 106

Приложение Г. SWOT-анализ……………………………………………………………. 107

Основной причиной существования клиентских фреймворков в сфере
веб-разработки является проблема синхронизации внутреннего состояния
приложения с пользовательским интерфейсом [1]. Это происходит по причине
того, что веб-приложения становятся на один уровень с нативными
приложениями по степени интерактивности [2].
Регулярным алгоритмом обновления пользовательского интерфейса
является цепочка действий, которая состоит из того, чтобы отреагировать на
пользовательские действия, затем получить доступ к элементу объектной модели
документа (DOM), который следует обновить и изменить его значение.
Аналогичные действия требуются на любой пользовательский ввод [2]. Однако
частое обращение к программному интерфейсу (API) DOM делают код менее
читабельным и понятным, а также требует особой внимательности к
оптимизации работы с данным API, так как обращение к DOM-дереву
ресурсоемкий процесс. Поэтому в последнее время набрали популярность
клиентские веб-фреймворки которые позволяют облегчить, оптимизировать и
ускорить разработку веб-приложений [2].
Однако актуальные клиентские веб-фреймворки в лице Angular, React и
Vue, которые занимают основную часть сферы, не лишены своих недостатков
[1]. Наиболее важный из недостатков следует выделить то, что наиболее
популярные решения, то есть фреймворки Angular и React, изначально созданы
для собственных нужд компаний Google и Facebook, а не для сообщества веб-
разработчиков, и их развитие направлено на покрытие необходимости компаний
и полностью ими контролируется [3]. Открытость и доступность данных
решений помогают данным компаниям за счет привлечения свободных
разработчиков, создающих вспомогательные инструменты и развивать
экосистему своего продукта. Однако у данных продуктов не стоит цель решения
проблем сторонних разработчиков. Из чего вытекают риски изменения условий
использования, несоответствия задач у компаний и сообщества, монополизация
рынка ведущая, к извлечению выгоды и т.п [4]. Также следует отметить риски,
несущие в себе большой размер кодовой базы самих фреймворков в случае
использовании их сторонними компаниями. В данном случае особо важным
является вопрос надежности, безопасности и конфиденциальности. Риски в
сфере безопасности связаны c большим числом зависимостей от сторонних
проектов, как прямых, так и косвенных. Так согласно информации, изложенной
в исследовании «State of Open Source Security— 2020», занимающейся
сканированием исходного кода на уязвимости компании Snyk, более 75%
уязвимостей безопасности для клиентских веб-приложений находятся в
огромном числе непрямых зависимостей проекта [5]. Помимо этого, данный
факт создает проблемы и в сфере надежности, так как надежность проекта
начинает зависеть от огромного числа сторонних библиотек и действий
большого числа разработчиков. Также, большую кодовую базу актуальных
клиентских веб-фреймворков невозможно исследовать на уязвимости, несмотря
на открытость исходного кода. Вместе с этим большие проекты невозможно
тонко настроить под специфические нужды и невозможно самостоятельно
поддерживать актуальность фреймворка. Большая кодовая база фреймворков не
позволяет самому фреймворку быстро реагировать на изменение технологий и
стандартов. Особо отметить следует сложность, а иногда невозможность
обновления кодовой базы приложения при выходе новых версий фреймворков
[6].
В следствии вышеуказанных проблем, а также отсутствия в данной сфере
разработки отечественных аналогов целью данной работы является создание
клиентского веб-фреймворка, который обеспечит базовый необходимый
функционал для синхронизации пользовательского интерфейса и состояния веб-
приложения. Разрабатываемый фреймворк создается без большого числа
сторонних зависимостей, а также с применением объектно-ориентированного
подхода (ООП) к разработке с использованием языка TypeScript. Данное
решение позволит абстрагироваться от задач обновления пользовательского
интерфейса и особенностей клиентской разработки, что сделает клиентскую
разработку доступнее для разработчиков со знаниями ООП языков, позволит
оптимизировать бюджет компаний, не привлекая специалистов со
специфичными знаниями. Для выполнения цели были поставлены задачи:
• Изучение архитектуры существующих фреймворков.
• Изучение проблем современных клиентских веб-фреймворков.
• Выбор методологий и паттернов проектирования для отдельных
модулей.
• Создание фреймворка для веб-приложений.
• Создание демонстрационного приложения
• Исследование производительности созданного фреймворка
1. Анализ предметной области.

Заказать новую

Лучшие эксперты сервиса ждут твоего задания

от 5 000 ₽

Не подошла эта работа?
Закажи новую работу, сделанную по твоим требованиям

    Нажимая на кнопку, я соглашаюсь на обработку персональных данных и с правилами пользования Платформой

    Хочешь уникальную работу?

    Больше 3 000 экспертов уже готовы начать работу над твоим проектом!

    Анна В. Инжэкон, студент, кандидат наук
    5 (21 отзыв)
    Выполняю работы по экономическим дисциплинам. Маркетинг, менеджмент, управление персоналом. управление проектами. Есть опыт написания магистерских и кандидатских диссе... Читать все
    Выполняю работы по экономическим дисциплинам. Маркетинг, менеджмент, управление персоналом. управление проектами. Есть опыт написания магистерских и кандидатских диссертаций. Работала в маркетинге. Практикующий бизнес-консультант.
    #Кандидатские #Магистерские
    31 Выполненная работа
    Катерина М. кандидат наук, доцент
    4.9 (522 отзыва)
    Кандидат технических наук. Специализируюсь на выполнении работ по метрологии и стандартизации
    Кандидат технических наук. Специализируюсь на выполнении работ по метрологии и стандартизации
    #Кандидатские #Магистерские
    836 Выполненных работ
    Анна С. СФ ПГУ им. М.В. Ломоносова 2004, филологический, преподав...
    4.8 (9 отзывов)
    Преподаю англ язык более 10 лет, есть опыт работы в университете, школе и студии англ языка. Защитила кандидатскую диссертацию в 2009 году. Имею большой опыт написания... Читать все
    Преподаю англ язык более 10 лет, есть опыт работы в университете, школе и студии англ языка. Защитила кандидатскую диссертацию в 2009 году. Имею большой опыт написания и проверки (в качестве преподавателя) контрольных и курсовых работ.
    #Кандидатские #Магистерские
    16 Выполненных работ
    Виктор В. Смоленская государственная медицинская академия 1997, Леч...
    4.7 (46 отзывов)
    Имеют опыт грамотного написания диссертационных работ по медицине, а также отдельных ее частей (литературный обзор, цели и задачи исследования, материалы и методы, выв... Читать все
    Имеют опыт грамотного написания диссертационных работ по медицине, а также отдельных ее частей (литературный обзор, цели и задачи исследования, материалы и методы, выводы).Пишу статьи в РИНЦ, ВАК.Оформление патентов от идеи до регистрации.
    #Кандидатские #Магистерские
    100 Выполненных работ
    Евгения Р.
    5 (188 отзывов)
    Мой опыт в написании работ - 9 лет. Я специализируюсь на написании курсовых работ, ВКР и магистерских диссертаций, также пишу научные статьи, провожу исследования и со... Читать все
    Мой опыт в написании работ - 9 лет. Я специализируюсь на написании курсовых работ, ВКР и магистерских диссертаций, также пишу научные статьи, провожу исследования и создаю красивые презентации. Сопровождаю работы до сдачи, на связи 24/7 ?
    #Кандидатские #Магистерские
    359 Выполненных работ
    Александр Р. ВоГТУ 2003, Экономический, преподаватель, кандидат наук
    4.5 (80 отзывов)
    Специальность "Государственное и муниципальное управление" Кандидатскую диссертацию защитил в 2006 г. Дополнительное образование: Оценка стоимости (бизнеса) и госфин... Читать все
    Специальность "Государственное и муниципальное управление" Кандидатскую диссертацию защитил в 2006 г. Дополнительное образование: Оценка стоимости (бизнеса) и госфинансы (Казначейство). Работаю в финансовой сфере более 10 лет. Банки,риски
    #Кандидатские #Магистерские
    123 Выполненных работы
    Татьяна Б.
    4.6 (92 отзыва)
    Добрый день, работаю в сфере написания студенческих работ более 7 лет. Всегда довожу своих студентов до защиты с хорошими и отличными баллами (дипломы, магистерские ди... Читать все
    Добрый день, работаю в сфере написания студенческих работ более 7 лет. Всегда довожу своих студентов до защиты с хорошими и отличными баллами (дипломы, магистерские диссертации, курсовые работы средний балл - 4,5). Всегда на связи!
    #Кандидатские #Магистерские
    138 Выполненных работ
    Егор В. кандидат наук, доцент
    5 (428 отзывов)
    Здравствуйте. Занимаюсь выполнением работ более 14 лет. Очень большой опыт. Более 400 успешно защищенных дипломов и диссертаций. Берусь только со 100% уверенностью. Ск... Читать все
    Здравствуйте. Занимаюсь выполнением работ более 14 лет. Очень большой опыт. Более 400 успешно защищенных дипломов и диссертаций. Берусь только со 100% уверенностью. Скорее всего Ваш заказ будет выполнен раньше срока.
    #Кандидатские #Магистерские
    694 Выполненных работы
    Ольга Б. кандидат наук, доцент
    4.8 (373 отзыва)
    Работаю на сайте четвертый год. Действующий преподаватель вуза. Основные направления: микробиология, биология и медицина. Написано несколько кандидатских, магистерских... Читать все
    Работаю на сайте четвертый год. Действующий преподаватель вуза. Основные направления: микробиология, биология и медицина. Написано несколько кандидатских, магистерских диссертаций, дипломных и курсовых работ. Слежу за новинками в медицине.
    #Кандидатские #Магистерские
    566 Выполненных работ

    Другие учебные работы по предмету

    Модернизация системы автоматизации АСУ ТП АО «Farg’onaazot»
    📅 2020год
    🏢 Национальный исследовательский Томский политехнический университет (ТПУ)
    Интеграционный сервис передачи данных между АСУ ТП и MES
    📅 2018год
    🏢 Национальный исследовательский Томский политехнический университет (ТПУ)
    Методы сегментации новообразований головного мозга
    📅 2020год
    🏢 Национальный исследовательский Томский политехнический университет (ТПУ)