#WebDevelopment
#️⃣ В чем разница между SSR и SPA?
SSR (Server-Side Rendering) и SPA (Single Page Application) — это два подхода к созданию веб-приложений. У каждого есть свои особенности, преимущества и недостатки.
1️⃣ Server-Side Rendering (SSR)
При SSR весь HTML генерируется на сервере и отправляется в браузер.
Как это работает:
1. Клиент отправляет запрос.
2. Сервер собирает данные, рендерит HTML и возвращает его браузеру.
Преимущества:
- Полностью отрендеренный HTML помогает поисковым системам лучше индексировать сайт.
- Быстрый первый рендер — пользователь сразу видит содержимое страницы.
- Минимальная зависимость от JavaScript на стороне клиента.
Недостатки:
- Высокая нагрузка на сервер, особенно при большом количестве запросов.
- Перезагрузка страницы для каждого нового запроса замедляет взаимодействие.
2️⃣ Single Page Application (SPA)
SPA работает иначе: весь JavaScript и основные компоненты загружаются один раз. В дальнейшем приложение использует AJAX-запросы для динамического обновления данных.
Как это работает:
1. Приложение загружается в браузере.
2. Контент обновляется без перезагрузки страницы.
Преимущества:
- Быстрое и плавное взаимодействие после начальной загрузки.
- Динамические обновления данных без перезагрузки страницы.
- Возможность создавать сложные и интерактивные интерфейсы.
Недостатки:
- Долгая первоначальная загрузка, так как требуется загрузить весь JavaScript.
- Проблемы с SEO из-за динамической загрузки контента.
- Требует современного браузера и больше ресурсов на стороне клиента.
3️⃣ Гибридный подход
Современные фреймворки, такие как Next.js, объединяют плюсы SSR и SPA. Например, страница может рендериться на сервере для быстрого первого отображения и SEO, а затем переключаться в SPA для динамических взаимодействий.
🌐 Новости
🖥 Платформа
SSR (Server-Side Rendering) и SPA (Single Page Application) — это два подхода к созданию веб-приложений. У каждого есть свои особенности, преимущества и недостатки.
При SSR весь HTML генерируется на сервере и отправляется в браузер.
Как это работает:
1. Клиент отправляет запрос.
2. Сервер собирает данные, рендерит HTML и возвращает его браузеру.
Преимущества:
- Полностью отрендеренный HTML помогает поисковым системам лучше индексировать сайт.
- Быстрый первый рендер — пользователь сразу видит содержимое страницы.
- Минимальная зависимость от JavaScript на стороне клиента.
Недостатки:
- Высокая нагрузка на сервер, особенно при большом количестве запросов.
- Перезагрузка страницы для каждого нового запроса замедляет взаимодействие.
SPA работает иначе: весь JavaScript и основные компоненты загружаются один раз. В дальнейшем приложение использует AJAX-запросы для динамического обновления данных.
Как это работает:
1. Приложение загружается в браузере.
2. Контент обновляется без перезагрузки страницы.
Преимущества:
- Быстрое и плавное взаимодействие после начальной загрузки.
- Динамические обновления данных без перезагрузки страницы.
- Возможность создавать сложные и интерактивные интерфейсы.
Недостатки:
- Долгая первоначальная загрузка, так как требуется загрузить весь JavaScript.
- Проблемы с SEO из-за динамической загрузки контента.
- Требует современного браузера и больше ресурсов на стороне клиента.
Современные фреймворки, такие как Next.js, объединяют плюсы SSR и SPA. Например, страница может рендериться на сервере для быстрого первого отображения и SEO, а затем переключаться в SPA для динамических взаимодействий.
Please open Telegram to view this post
VIEW IN TELEGRAM
#Frontend #Backend #WebDevelopment #DevOps
#️⃣ Тесты - это не просто дополнительная работа, а важный инструмент разработки, который:
• Делает код более надёжным
• Служит актуальной документацией
• Помогает находить ошибки на ранних этапах
➖ Основные виды тестов:
• Unit-тесты (модульные) - проверяют отдельные функции/модули
• Интеграционные - тестируют взаимодействие компонентов
• E2E (End-to-End) - проверяют работу всего приложения
• Приёмочные - финальная проверка перед релизом
➖ Ключевые преимущества:
• Помогают обнаружить крайние случаи
• Уменьшают количество регрессий
• Дают уверенность при рефакторинге
• Облегчают обновление зависимостей
➖ Когда можно не писать тесты:
• При разработке прототипа
• В краткосрочных проектах, где тесты не успеют окупиться
❗️ Издержки:
• Требуют больше времени на старте
• Нужна продуманная структура для тестовых данных
• Необходима настройка CI
🔗 Ссылка
🌐 Новости
🖥 Платформа
• Делает код более надёжным
• Служит актуальной документацией
• Помогает находить ошибки на ранних этапах
• Unit-тесты (модульные) - проверяют отдельные функции/модули
• Интеграционные - тестируют взаимодействие компонентов
• E2E (End-to-End) - проверяют работу всего приложения
• Приёмочные - финальная проверка перед релизом
• Помогают обнаружить крайние случаи
• Уменьшают количество регрессий
• Дают уверенность при рефакторинге
• Облегчают обновление зависимостей
• При разработке прототипа
• В краткосрочных проектах, где тесты не успеют окупиться
• Требуют больше времени на старте
• Нужна продуманная структура для тестовых данных
• Необходима настройка CI
Вывод: несмотря на начальные затраты времени, тестирование окупается в долгосрочной перспективе повышением надёжности и облегчением поддержки кода.
Please open Telegram to view this post
VIEW IN TELEGRAM
NOP::Nuances of programming
Как я создал 2D-игру с помощью Ebiten за 40 минут
Хотите создать видеоигру менее чем за час? Следуйте руководству по максимально упрощенной разработке 2D-игры с использованием языка Go и библиотеки Ebiten и возможностью развертывания на Windows, macOS и Linux.
#WebDevelopment
🎮 Хочешь создать свою первую 2D-игру на Go?
В этом руководстве ты научишься разрабатывать простую кроссплатформенную игру с помощью библиотеки Ebiten для Windows, macOS и Linux.
🌐 Новости
🖥 Платформа
В этом руководстве ты научишься разрабатывать простую кроссплатформенную игру с помощью библиотеки Ebiten для Windows, macOS и Linux.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍2
#WebDevelopment
🔤 🔤 🔤 🔤 Как правильно писать адрес сайта: с www или без?
Как нравится — так и пишите.
Вы наверняка встречали два варианта написания сайтов: с www и без. Разбираемся, как исторически сложилось и что лучше использовать сегодня.
➖ Зачем вообще нужен www?
Когда интернет только развивался, сервера выполняли разные задачи: один отвечал за почту, другой — за файлы, третий — за сайт. Чтобы их различать, использовали поддомены:
-
-
-
То есть www просто обозначало, что это веб-сайт, а не что-то ещё.
➖ А что теперь?
С развитием технологий необходимость в отдельном поддомене www отпала.
Сегодня сайты работают и без него, а при необходимости просто настраивают редирект.
Например:
Поэтому современные сайты чаще используют короткий адрес без www.
Как правильно?
Как вам удобнее.
Если хотите современный и лаконичный адрес — используйте
Если хочется винтажного стиля из 2000-х — добавьте
➖ Что ещё можно делать с поддоменами?
Поддомены — это мощный инструмент:
А ещё можно настроить так, чтобы сайт на поддомене открывался только через VPN компании.
Вывод: www — это просто традиция. Использовать его или нет — ваш выбор.
🔗 Статья
🌐 Новости
🖥 Платформа
Как нравится — так и пишите.
Вы наверняка встречали два варианта написания сайтов: с www и без. Разбираемся, как исторически сложилось и что лучше использовать сегодня.
Когда интернет только развивался, сервера выполняли разные задачи: один отвечал за почту, другой — за файлы, третий — за сайт. Чтобы их различать, использовали поддомены:
-
mail.example.com
— для почты, -
ftp.example.com
— для файлов, -
www.example.com
— для сайта. То есть www просто обозначало, что это веб-сайт, а не что-то ещё.
С развитием технологий необходимость в отдельном поддомене www отпала.
Сегодня сайты работают и без него, а при необходимости просто настраивают редирект.
Например:
example.com
и www.example.com
ведут на одну страницу. Поэтому современные сайты чаще используют короткий адрес без www.
Как правильно?
Как вам удобнее.
Если хотите современный и лаконичный адрес — используйте
example.com
. Если хочется винтажного стиля из 2000-х — добавьте
www.
. Поддомены — это мощный инструмент:
- для облачного хранилища
- для корпоративных сервисов
- для архивных версий сайта
- для тестовой среды
А ещё можно настроить так, чтобы сайт на поддомене открывался только через VPN компании.
Вывод: www — это просто традиция. Использовать его или нет — ваш выбор.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤1
#WebDevelopment
📡 Какие методы HTTP-запросов существуют?
HTTP — это основа для передачи данных в интернете. Разберём основные HTTP-методы:
➕ GET — Получение данных
• Запрашивает данные без изменений
• Параметры в URL
• Кэшируется
• Можно добавить в закладки
• Идемпотентный
➕ POST — Создание ресурса
• Отправляет данные на сервер
• Для создания новых ресурсов
• Данные в теле запроса
• Не кэшируется
• Не идемпотентный
➕ PUT — Полное обновление
• Заменяет ресурс полностью
• Может создать новый ресурс
• Идемпотентный
➕ DELETE — Удаление
• Удаляет ресурс
• Идемпотентный
➕ PATCH — Частичное обновление
• Частично изменяет ресурс
• Передаёт только изменяемые поля
• Обычно не идемпотентный
➕ HEAD — Только заголовки
• Возвращает только HTTP-заголовки
• Для проверки доступности ресурса
• Идемпотентный
➕ OPTIONS — Информация о ресурсе
• Запрашивает информацию о методах и заголовках
• Используется для CORS
• Идемпотентный
➕ CONNECT — Туннелирование
• Создаёт туннель через прокси
• Для HTTPS через HTTP-прокси
➕ TRACE — Диагностика
• Возвращает запрос обратно
• Для отладки
• Обычно отключен
💡 Что такое идемпотентность?
🌐 Новости
🖥 Платформа
📡 Какие методы HTTP-запросов существуют?
HTTP — это основа для передачи данных в интернете. Разберём основные HTTP-методы:
GET /api/users?id=123 HTTP/1.1
Host: example.com
• Запрашивает данные без изменений
• Параметры в URL
• Кэшируется
• Можно добавить в закладки
• Идемпотентный
POST /api/users HTTP/1.1
Host: example.com
Content-Type: application/json
{
"name": "Алексей",
"email": "alex@example.com"
}
• Отправляет данные на сервер
• Для создания новых ресурсов
• Данные в теле запроса
• Не кэшируется
• Не идемпотентный
PUT /api/users/123 HTTP/1.1
Host: example.com
Content-Type: application/json
{
"name": "Алексей",
"email": "new.alex@example.com"
}
• Заменяет ресурс полностью
• Может создать новый ресурс
• Идемпотентный
DELETE /api/users/123 HTTP/1.1
Host: example.com
• Удаляет ресурс
• Идемпотентный
PATCH /api/users/123 HTTP/1.1
Host: example.com
Content-Type: application/json
{
"email": "newest.alex@example.com"
}
• Частично изменяет ресурс
• Передаёт только изменяемые поля
• Обычно не идемпотентный
• Возвращает только HTTP-заголовки
• Для проверки доступности ресурса
• Идемпотентный
• Запрашивает информацию о методах и заголовках
• Используется для CORS
• Идемпотентный
• Создаёт туннель через прокси
• Для HTTPS через HTTP-прокси
• Возвращает запрос обратно
• Для отладки
• Обычно отключен
💡 Что такое идемпотентность?
Идемпотентность — многократное выполнение одной операции даёт один результат.
Идемпотентные методы:
• GET
• PUT
• DELETE
• HEAD
• OPTIONS
Не идемпотентные:
• POST
• PATCH (обычно)
Please open Telegram to view this post
VIEW IN TELEGRAM
#WebDevelopment
💯 Прогрессивные веб-приложения (PWA)
Что такое PWA?
Простыми словами: Это сайты, которые вы можете добавить на главный экран своего устройства как обычное приложение. Они работают как нативные приложения — без адресной строки браузера, могут работать офлайн и отправлять уведомления.
По сути: PWA — это веб-приложения, использующие стратегию прогрессивного улучшения. Они проверяют возможности браузера и подстраиваются под них, чтобы обеспечить максимально качественный пользовательский опыт.
Технически: Сайты, удовлетворяющие определенным критериям:
- Работа через HTTPS
- Наличие манифеста (JSON-файл с описанием приложения)
- Обычно используют Service Worker (фоновый JavaScript-код)
✅ Главные преимущества
Универсальность
- Работают на любых устройствах с браузером
- Единая кодовая база для всех платформ
- Не нужно разрабатывать отдельные версии для iOS, Android или Windows
Поведение как у нативных приложений
- Запуск через иконку на главном экране
- Интеграция с операционной системой
- Доступ к аппаратным возможностям (камера, микрофон, Bluetooth)
- Push-уведомления
Удобство использования
- Работают без интернета
- Не требуют установки через магазины приложений
- Автоматически обновляются
- Занимают меньше места в памяти устройства
Свобода и открытость
- Независимость от правил магазинов приложений
- Индексация контента поисковыми системами
- Возможность делиться прямыми ссылками на конкретные разделы
- Стандартные возможности веба (копирование, перевод, печать)
Безопасность и доступность
- Выполнение в песочнице браузера
- Защищенное соединение HTTPS
- Понятная модель разрешений
- Низкий порог входа для разработчиков (HTML, CSS, JS)
❌ Ограничения
Разрозненность
- Нет единого крупного каталога PWA
- Пользователям сложнее находить такие приложения
Неравномерная поддержка
- Разные браузеры поддерживают разные функции
- Особенно заметно на iOS, где все браузеры используют движок WebKit
- Некоторые современные функции могут быть недоступны на старых устройствах
🔗 Ссылка
🌐 Новости
🖥 База вопросов
Что такое PWA?
Простыми словами: Это сайты, которые вы можете добавить на главный экран своего устройства как обычное приложение. Они работают как нативные приложения — без адресной строки браузера, могут работать офлайн и отправлять уведомления.
По сути: PWA — это веб-приложения, использующие стратегию прогрессивного улучшения. Они проверяют возможности браузера и подстраиваются под них, чтобы обеспечить максимально качественный пользовательский опыт.
Технически: Сайты, удовлетворяющие определенным критериям:
- Работа через HTTPS
- Наличие манифеста (JSON-файл с описанием приложения)
- Обычно используют Service Worker (фоновый JavaScript-код)
Термин создан в 2015 году инженерами Google, хотя сама концепция зародилась раньше. Интересно, что Стив Джобс еще в 2007 году, до выпуска первого iPhone, предлагал создавать приложения на веб-технологиях. Apple называет такие приложения "Home Screen Web Apps".
Универсальность
- Работают на любых устройствах с браузером
- Единая кодовая база для всех платформ
- Не нужно разрабатывать отдельные версии для iOS, Android или Windows
Поведение как у нативных приложений
- Запуск через иконку на главном экране
- Интеграция с операционной системой
- Доступ к аппаратным возможностям (камера, микрофон, Bluetooth)
- Push-уведомления
Удобство использования
- Работают без интернета
- Не требуют установки через магазины приложений
- Автоматически обновляются
- Занимают меньше места в памяти устройства
Свобода и открытость
- Независимость от правил магазинов приложений
- Индексация контента поисковыми системами
- Возможность делиться прямыми ссылками на конкретные разделы
- Стандартные возможности веба (копирование, перевод, печать)
Безопасность и доступность
- Выполнение в песочнице браузера
- Защищенное соединение HTTPS
- Понятная модель разрешений
- Низкий порог входа для разработчиков (HTML, CSS, JS)
Разрозненность
- Нет единого крупного каталога PWA
- Пользователям сложнее находить такие приложения
Неравномерная поддержка
- Разные браузеры поддерживают разные функции
- Особенно заметно на iOS, где все браузеры используют движок WebKit
- Некоторые современные функции могут быть недоступны на старых устройствах
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1