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

Ткачев, Михаил Отделение информационных технологий (ОИТ)
Бесплатно
В избранное
Работа доступна по лицензии 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 экспертов уже готовы начать работу над твоим проектом!

    Петр П. кандидат наук
    4.2 (25 отзывов)
    Выполняю различные работы на заказ с 2014 года. В основном, курсовые проекты, дипломные и выпускные квалификационные работы бакалавриата, специалитета. Имею опыт напис... Читать все
    Выполняю различные работы на заказ с 2014 года. В основном, курсовые проекты, дипломные и выпускные квалификационные работы бакалавриата, специалитета. Имею опыт написания магистерских диссертаций. Направление - связь, телекоммуникации, информационная безопасность, информационные технологии, экономика. Пишу научные статьи уровня ВАК и РИНЦ. Работаю техническим директором интернет-провайдера, имею опыт работы ведущим сотрудником отдела информационной безопасности филиала одного из крупнейших банков. Образование - высшее профессиональное (в 2006 году окончил военную Академию связи в г. Санкт-Петербурге), послевузовское профессиональное (в 2018 году окончил аспирантуру Уральского федерального университета). Защитил диссертацию на соискание степени "кандидат технических наук" в 2020 году. В качестве хобби преподаю. Дисциплины - сети ЭВМ и телекоммуникации, информационная безопасность объектов критической информационной инфраструктуры.
    #Кандидатские #Магистерские
    33 Выполненных работы
    Андрей С. Тверской государственный университет 2011, математический...
    4.7 (82 отзыва)
    Учился на мат.факе ТвГУ. Любовь к математике там привили на столько, что я, похоже, никогда не перестану этим заниматься! Сейчас работаю в IT и пытаюсь найти время на... Читать все
    Учился на мат.факе ТвГУ. Любовь к математике там привили на столько, что я, похоже, никогда не перестану этим заниматься! Сейчас работаю в IT и пытаюсь найти время на продолжение диссертационной работы... Всегда готов помочь! ;)
    #Кандидатские #Магистерские
    164 Выполненных работы
    Олег Н. Томский политехнический университет 2000, Инженерно-эконо...
    4.7 (96 отзывов)
    Здравствуйте! Опыт написания работ более 12 лет. За это время были успешно защищены более 2 500 написанных мною магистерских диссертаций, дипломов, курсовых работ. Явл... Читать все
    Здравствуйте! Опыт написания работ более 12 лет. За это время были успешно защищены более 2 500 написанных мною магистерских диссертаций, дипломов, курсовых работ. Являюсь действующим преподавателем одного из ВУЗов.
    #Кандидатские #Магистерские
    177 Выполненных работ
    Татьяна Б.
    4.6 (92 отзыва)
    Добрый день, работаю в сфере написания студенческих работ более 7 лет. Всегда довожу своих студентов до защиты с хорошими и отличными баллами (дипломы, магистерские ди... Читать все
    Добрый день, работаю в сфере написания студенческих работ более 7 лет. Всегда довожу своих студентов до защиты с хорошими и отличными баллами (дипломы, магистерские диссертации, курсовые работы средний балл - 4,5). Всегда на связи!
    #Кандидатские #Магистерские
    138 Выполненных работ
    Татьяна П. МГУ им. Ломоносова 1930, выпускник
    5 (9 отзывов)
    Журналист. Младший научный сотрудник в институте РАН. Репетитор по английскому языку (стаж 6 лет). Также знаю французский. Сейчас занимаюсь написанием диссертации по и... Читать все
    Журналист. Младший научный сотрудник в институте РАН. Репетитор по английскому языку (стаж 6 лет). Также знаю французский. Сейчас занимаюсь написанием диссертации по истории. Увлекаюсь литературой и темой космоса.
    #Кандидатские #Магистерские
    11 Выполненных работ
    Катерина В. преподаватель, кандидат наук
    4.6 (30 отзывов)
    Преподаватель одного из лучших ВУЗов страны, научный работник, редактор научного журнала, общественный деятель. Пишу все виды работ - от эссе до докторской диссертации... Читать все
    Преподаватель одного из лучших ВУЗов страны, научный работник, редактор научного журнала, общественный деятель. Пишу все виды работ - от эссе до докторской диссертации. Опыт работы 7 лет. Всегда на связи и готова прийти на помощь. Вместе удовлетворим самого требовательного научного руководителя. Возможно полное сопровождение: от статуса студента до получения научной степени.
    #Кандидатские #Магистерские
    47 Выполненных работ
    Александр О. Спб государственный университет 1972, мат - мех, преподав...
    4.9 (66 отзывов)
    Читаю лекции и веду занятия со студентами по матанализу, линейной алгебре и теории вероятностей. Защитил кандидатскую диссертацию по качественной теории дифференциальн... Читать все
    Читаю лекции и веду занятия со студентами по матанализу, линейной алгебре и теории вероятностей. Защитил кандидатскую диссертацию по качественной теории дифференциальных уравнений. Умею быстро и четко выполнять сложные вычислительные работ
    #Кандидатские #Магистерские
    117 Выполненных работ
    Дарья С. Томский государственный университет 2010, Юридический, в...
    4.8 (13 отзывов)
    Практикую гражданское, семейное право. Преподаю указанные дисциплины в ВУЗе. Выполняла работы на заказ в течение двух лет. Обучалась в аспирантуре, подготовила диссерт... Читать все
    Практикую гражданское, семейное право. Преподаю указанные дисциплины в ВУЗе. Выполняла работы на заказ в течение двух лет. Обучалась в аспирантуре, подготовила диссертационное исследование, которое сейчас находится на рассмотрении в совете.
    #Кандидатские #Магистерские
    18 Выполненных работ
    Виктор В. Смоленская государственная медицинская академия 1997, Леч...
    4.7 (46 отзывов)
    Имеют опыт грамотного написания диссертационных работ по медицине, а также отдельных ее частей (литературный обзор, цели и задачи исследования, материалы и методы, выв... Читать все
    Имеют опыт грамотного написания диссертационных работ по медицине, а также отдельных ее частей (литературный обзор, цели и задачи исследования, материалы и методы, выводы).Пишу статьи в РИНЦ, ВАК.Оформление патентов от идеи до регистрации.
    #Кандидатские #Магистерские
    100 Выполненных работ

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

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