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

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

    AleksandrAvdiev Южный федеральный университет, 2010, преподаватель, канд...
    4.1 (20 отзывов)
    Пишу качественные выпускные квалификационные работы и магистерские диссертации. Опыт написания работ - более восьми лет. Всегда на связи.
    Пишу качественные выпускные квалификационные работы и магистерские диссертации. Опыт написания работ - более восьми лет. Всегда на связи.
    #Кандидатские #Магистерские
    28 Выполненных работ
    Анна Н. Государственный университет управления 2021, Экономика и ...
    0 (13 отзывов)
    Закончила ГУУ с отличием "Бухгалтерский учет, анализ и аудит". Выполнить разные работы: от рефератов до диссертаций. Также пишу доклады, делаю презентации, повышаю уни... Читать все
    Закончила ГУУ с отличием "Бухгалтерский учет, анализ и аудит". Выполнить разные работы: от рефератов до диссертаций. Также пишу доклады, делаю презентации, повышаю уникальности с нуля. Все работы оформляю в соответствии с ГОСТ.
    #Кандидатские #Магистерские
    0 Выполненных работ
    Мария Б. преподаватель, кандидат наук
    5 (22 отзыва)
    Окончила специалитет по направлению "Прикладная информатика в экономике", магистратуру по направлению "Торговое дело". Защитила кандидатскую диссертацию по специальнос... Читать все
    Окончила специалитет по направлению "Прикладная информатика в экономике", магистратуру по направлению "Торговое дело". Защитила кандидатскую диссертацию по специальности "Экономика и управление народным хозяйством". Автор научных статей.
    #Кандидатские #Магистерские
    37 Выполненных работ
    Дарья П. кандидат наук, доцент
    4.9 (20 отзывов)
    Профессиональный журналист, филолог со стажем более 10 лет. Имею профильную диссертацию по специализации "Радиовещание". Подробно и серьезно разрабатываю темы научных... Читать все
    Профессиональный журналист, филолог со стажем более 10 лет. Имею профильную диссертацию по специализации "Радиовещание". Подробно и серьезно разрабатываю темы научных исследований, связанных с журналистикой, филологией и литературой
    #Кандидатские #Магистерские
    33 Выполненных работы
    Евгений А. доктор, профессор
    5 (154 отзыва)
    Более 40 лет занимаюсь преподавательской деятельностью. Специалист в области философии, логики и социальной работы. Кандидатская диссертация - по логике, докторская - ... Читать все
    Более 40 лет занимаюсь преподавательской деятельностью. Специалист в области философии, логики и социальной работы. Кандидатская диссертация - по логике, докторская - по социальной работе.
    #Кандидатские #Магистерские
    260 Выполненных работ
    Александр О. Спб государственный университет 1972, мат - мех, преподав...
    4.9 (66 отзывов)
    Читаю лекции и веду занятия со студентами по матанализу, линейной алгебре и теории вероятностей. Защитил кандидатскую диссертацию по качественной теории дифференциальн... Читать все
    Читаю лекции и веду занятия со студентами по матанализу, линейной алгебре и теории вероятностей. Защитил кандидатскую диссертацию по качественной теории дифференциальных уравнений. Умею быстро и четко выполнять сложные вычислительные работ
    #Кандидатские #Магистерские
    117 Выполненных работ
    Елена С. Таганрогский институт управления и экономики Таганрогский...
    4.4 (93 отзыва)
    Высшее юридическое образование, красный диплом. Более 5 лет стажа работы в суде общей юрисдикции, большой стаж в написании студенческих работ. Специализируюсь на напис... Читать все
    Высшее юридическое образование, красный диплом. Более 5 лет стажа работы в суде общей юрисдикции, большой стаж в написании студенческих работ. Специализируюсь на написании курсовых и дипломных работ, а также диссертационных исследований.
    #Кандидатские #Магистерские
    158 Выполненных работ
    Александра С.
    5 (91 отзыв)
    Красный диплом референта-аналитика информационных ресурсов, 8 лет преподавания. Опыт написания работ вплоть до докторских диссертаций. Отдельно специализируюсь на повы... Читать все
    Красный диплом референта-аналитика информационных ресурсов, 8 лет преподавания. Опыт написания работ вплоть до докторских диссертаций. Отдельно специализируюсь на повышении уникальности текста и оформлении библиографических ссылок по ГОСТу.
    #Кандидатские #Магистерские
    132 Выполненных работы
    Яна К. ТюмГУ 2004, ГМУ, выпускник
    5 (8 отзывов)
    Помощь в написании магистерских диссертаций, курсовых, контрольных работ, рефератов, статей, повышение уникальности текста(ручной рерайт), качественно и в срок, в соот... Читать все
    Помощь в написании магистерских диссертаций, курсовых, контрольных работ, рефератов, статей, повышение уникальности текста(ручной рерайт), качественно и в срок, в соответствии с Вашими требованиями.
    #Кандидатские #Магистерские
    12 Выполненных работ

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

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