Тема: РАЗРАБОТКА ИНСТРУМЕНТА ДЛЯ СОЗДАНИЯ СТАТИЧЕСКИХ САЙТОВ
Характеристики работы
Закажите новую по вашим требованиям
Представленный материал является образцом учебного исследования, примером структуры и содержания учебного исследования по заявленной теме. Размещён исключительно в информационных и ознакомительных целях.
Workspay.ru оказывает информационные услуги по сбору, обработке и структурированию материалов в соответствии с требованиями заказчика.
Размещение материала не означает публикацию произведения впервые и не предполагает передачу исключительных авторских прав третьим лицам.
Материал не предназначен для дословной сдачи в образовательные организации и требует самостоятельной переработки с соблюдением законодательства Российской Федерации об авторском праве и принципов академической добросовестности.
Авторские права на исходные материалы принадлежат их законным правообладателям. В случае возникновения вопросов, связанных с размещённым материалом, просим направить обращение через форму обратной связи.
📋 Содержание
Глава 1. Теория 6
1.1. Статические сайты 6
1.2. Генераторы статических сайтов 10
1.3. Функциональное программирование и язык Elixir 13
Глава 2. Практическая часть 18
2.1. Разработка приложения на Elixir 18
2.2. Тестирование 22
Заключение 25
Список литературы
📖 Введение
Примерно в тоже время, базы данных на SQL-основе широко распространились и многие компании начали использовать базу данных для хранения своего контента.
Уже скоро начали появляться разные способы разработки динамических веб-сайтов. Самыми популярным стал LAMP-стек (Linux, Apache, MySQL, PHP). Веб-сервера стали загружать код в PHP-интерпретатор на лету, а затем открывать соединение с базой данных, отправлять запросы туда и обратно, используя данные в шаблонах и сшивать строки текста в HTML-документ, специально для конкретного пользователя.
Но есть и обратная сторона динамических веб-сайтов. По некоторым подсчетам почти 70% веб-сайтов установленных на основе WordPress уязвимы перед хакерскими атаками. К тому же масштабирование динамического веб-сайта может быть очень дорогостоящим, и агентствам, которые запустили сайт компании, приходиться сильно завышать ресурсы, чтобы сайт не сломался если вдруг он заразился вирусом. Вторая проблема динамических веб-сайтов - это кэширование. По подсчетам даже очень хорошо оптимизированный динамический веб-сайт уступает в скорости загрузки статичной версии сайта почти в шесть раз. Кэширование крайне трудно связать с динамическим веб - сайтом. С веб-сайтом на WordPress, нет никакой гарантии, что тот же URL- адрес не будет возвращать различный HTML в зависимости от того, вошел ли пользователь в систему, или в зависимости от параметров запросов.
Статические веб-сайты принципиально отличаются в этом отношении. Они придерживаются очень простого договора кэширование, любой URL- адрес возвращает один и тот же HTML для любого посетителя.
Взрыв мобильных устройств изменило интернет во многих отношениях. Все больше посетителей приходят на веб-страницы с мобильных устройств. Никогда еще производительность не была так важна как сейчас. По статистике, почти 57% посетителей покидают страницу, если она загружается более 3 секунд. Раньше люди могли ждать больше 10 секунд, но сейчас все изменилось. Люди с мобильными устройствами, где нет многозадачности и нельзя ничего делать пока грузится веб-сайт, часто просто покидают его так и не дождавшись загрузки. И неважно, насколько хорошо вы оптимизировали ваш динамический веб-сайт для производительности, она никогда не даст вам такой же результат, как хорошо настроенный статический веб-сайт, размещенный прямо в CDN за несколько долларов в месяц.
Часто бывают случаи, когда нужно быстро собрать и опубликовать простой статичный сайт, типа блога или сайта визитки с парой страниц. Такие сайты имеют много преимуществ перед динамическими. Например, хорошая кешируемость страниц, быстрая скорость загрузки, минимальное требование к веб-серверу, простой перенос на сервер. Но при разработке возникает проблема дублируемости одинаково кода с одной html страницы на другую. К примеру, шапку, навигацию и подвал. Хочется иметь один шаблон, для всех страниц и постов. Эту проблему решают многие продвинутые веб-фреймворки на различных языках, используя шаблонизаторы, на уровне языка этого фреймворка. Но ради простого сайта нет желания устанавливать и настраивать очередной увесистый фреймворк на сервере. Что бы решить эту проблему, нужен инструмент который бы мог используя один шаблон заполнить все страницы и выдать готовый проект с html страницами, который можно переместить не сервер.
Так целью дипломной работы стала разработка такого инструмента, который мог бы решить все эти проблемы. В данной дипломной работе будет описана разработка инструмента для генерации статических сайтов на функциональном языке Elixir. Этот инструмент предназначен для создания сайтов без базы данных, имеющих статические страницы.
✅ Заключение
Сегодня, мы, наконец, уходим от старых браузеров. Современные браузеры представляют собой самостоятельную операционную систему, не просто отображающую документы, загруженные из интернета, но и способные запускать полноценные веб-приложения, делая внешние вызовы через API, сохранять данные локально, открывать WebSocket соединения с сервером и даже обрабатывать одноранговые соединения с другими браузерами через WebRTC.
С развитием браузеров, многие функции, которые раньше требовали динамического кода, работающего на сервере, могут быть полностью перенесены на клиента. Сегодня на рынке технологий есть очень много решений почти для любой проблема. Чтобы добавить комментарии на сайт, можно использовать Disqus, Isso или Facebook комментарии. Для социальной интеграции, можно добавить Twitter или Facebook JavaScript виджеты. Чтобы было обновление данных в реальном времени, есть инструмент Firebase. Для чата имеется Olark.
Список можно продолжать долго. Помимо этого, современные веб - приложения, построенные с Ember.js, AngularJS или React, часто полностью развернуты в статический веб-сайт, которые доставляются напрямую из CDN, с чистым API, который разделяется между мобильным клиентом и браузерным.
Можно было бы использовать CDN с динамическими веб-сайтами, но недействительность кэша является одним из тех крайне сложных проблем в области компьютерных наук. Статический сайт, наоборот, легко может быть развернута непосредственно на CDN и подается прямо из локальной кэш-памяти конечному пользователю. Настройка конфигураций по -прежнему занимает некоторое время, и проверка на действительности кэша может быть сложной, но это выполнимо и может быть полностью автоматизировано с помощью таких сервисом как Netlify.
В настоящее время статические сайты становятся актуальны как никогда, поэтому важно знать, как они работают. Перед автором была поставлена цель изучить и разобраться в процессе разработки генератора статических сайтов. На основании полученных знаний было создано библиотека для языка Elixir - генератор статических сайтов. Библиотека имеет самые важные функции для генератора статических сайтов. Все управления командами происходит через командную строку.



