YeaHub Tech
475 subscribers
168 photos
15 videos
2 files
200 links
Новые технологии, советы и обучающие материалы

YeaHub — это платформа для IT-специалистов, объединяющая обучение, карьерный рост, развитие и сообщество единомышленников.

Платформа: https://yeahub.ru

Для связи: @ruslan_kuyanets
Download Telegram
#Tech

🐱 Приложение для общения с питомцем

Представьте, что вы наконец можете понять, что хочет сказать ваша кошка! Компания Akvelon разработала необычное приложение MeowTalk, которое переводит кошачьи звуки в понятные человеку фразы.


Как это работает?

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

Ps: Учёные пока не доказали существование единого "кошачьего языка". Поэтому разработчики предусмотрели возможность настройки приложения под конкретного питомца – ведь каждая кошка общается по-своему.


Скачать: MeowTalk в Google Play, App Store

🔗 Ссылка

🌐 Новости

🖥 Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#CyberSecurity

🛡 Арсенал белого хакера

Мир кибербезопасности постоянно развивается, и специалисты по информационной безопасности должны быть во всеоружии. В этой статье рассматриваются основные инструменты, которые используют белые хакеры для защиты информационных систем.


В статье вы узнаете:

• Какие инструменты используются для анализа уязвимостей
• Как работают системы управления информационной безопасностью
• Что применяется для защиты сетевого периметра
• Какие ОС предпочитают специалисты по безопасности


🔖 Важно: Все описанные инструменты предназначены исключительно для легального использования профессионалами в области кибербезопасности. Их несанкционированное применение является уголовным преступлением.



🔗 Статья

🌐 Новости

🖥 Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
2
#Frontend

Что такое JSON и как с ним работать?

JSON (JavaScript Object Notation) — это текстовый формат для хранения и передачи данных. Он широко используется в API, базах данных, веб-приложениях и мобильных играх.


Структура JSON

- Данные представляются в виде структуры «ключ-значение».
- Объекты записываются в {} и состоят из ключей (в двойных кавычках) и значений.
- Массивы хранятся в [] и содержат однотипные данные.

Пример:
{
"user": {
"name": "Алекс",
"age": 30,
"skills": ["JavaScript", "Python", "SQL"]
}
}



Типы данных в JSON

- Объекты — сложные сущности, например, профиль пользователя.
- Массивы — списки однотипных данных, например, товары в каталоге.
- Строки — текстовая информация.
- Числа — целые и дробные, поддерживают отрицательные значения.
- Булевы значения — true или false, полезны для условий.
- Null — обозначает отсутствие данных.


Преимущества JSON

- Компактный, экономит трафик.
- Читаемый человеком и понятный машинам.
- Поддерживается большинством языков программирования.


JSON vs другие форматы

- XML — громоздкий, но позволяет задавать атрибуты.
- YAML — проще читается, но чувствителен к отступам.


Работа с JSON в JavaScript

- JSON.stringify(obj) — превращает объект в строку JSON.
- JSON.parse(jsonString) — преобразует JSON-строку в объект.


Дополненные версии JSON

- JSON5 — поддерживает комментарии, одинарные кавычки и Infinity.
- JSON Schema — позволяет задавать правила для структуры JSON.


Безопасность при работе с JSON

- Возможные угрозы: JSON Injection, XSS, SQL-инъекции.
- Решения: валидация данных, санитизация, использование безопасных запросов.


Как открыть JSON?

- Любой текстовый редактор (VS Code, Sublime Text).
- Онлайн-инструменты для проверки и форматирования JSON.


🔗 Статья

🌐 Новости

🖥 Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
#Frontend

Мощь FFmpeg в браузере


FFmpeg.wasm - это порт популярного фреймворка FFmpeg в WebAssembly, который позволяет обрабатывать видео и аудио прямо в браузере. Это решает проблему обработки медиафайлов без необходимости отправки их на сервер.


1⃣Какие задачи решает FFmpeg.wasm?

- Обрезка видео и аудио
- Конвертация форматов
- Изменение размера видео
- Применение фильтров и эффектов
- Извлечение аудиодорожки
- Создание превью и миниатюр


2⃣Какие есть ограничения?

Размер библиотеки:
- Базовый модуль около 25MB
- Дополнительные кодеки увеличивают размер

Требования к браузеру:
- Поддержка WebAssembly
- Поддержка SharedArrayBuffer
- Специальные заголовки COOP/COEP

Ограничения производительности:
- Работа с большими файлами может быть медленной
- Ограничения памяти браузера


3⃣Когда стоит использовать FFmpeg.wasm?

Подходит для:
- Простой обработки видео
- Приложений с приватностью данных
- Небольших проектов

Не подходит для:
- Сложной видеообработки
- Работы с большими файлами
- Приложений с высокими требованиями к производительности

Пример реализации приложения для обрезки видео можете посмотреть здесь


🌐 Новости

🖥 Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
2
#Tech

🟡 Flux 1модель машинного обучения для генерации изображений

Она была разработана для создания реалистичных и детализированных изображений, используя методы глубинного обучения.


Как работает Flux 1?

Flux 1 использует диффузионные модели (diffusion models), которые обучаются превращать шум в осмысленные изображения. Процесс включает два этапа:

1. Прямой процесс (Forward Process) – модель добавляет шум к изображениям, постепенно разрушая их.
2. Обратный процесс (Reverse Process) – обученная модель учится удалять шум, восстанавливая реалистичные изображения.


Ключевые особенности Flux 1

- Генерация изображений с высоким разрешением.
- Обучение на больших датасетах, что позволяет создавать реалистичные и стилизованные изображения.
- Поддержка текстовых промптов, что делает её похожей на DALL·E и Stable Diffusion.

Сгенерируйте изображение *⃣здесь*⃣


🌐 Новости

🖥 Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
2🔥1
1️⃣8️⃣ понятий программирования, о которых вы никогда не слышали (но должны были!)

Раскройте секреты, которые выведут ваши навыки на новый уровень! Эти малоизвестные концепции — настоящий «арсенал ниндзя» для разработчика. Освойте их, чтобы:

Легко справляться со сложными задачами
Ускорить код в разы
Защитить проекты от уязвимостей
Писать кристально чистый код, который поймут даже новички ⬇️


🔗 Статья

🌐 Новости

🖥 Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
#Tech

📖 Что почитать начинающему тестировщику ?

Если вы хотите стать тестировщиком, важно не только освоить практические навыки, но и понимать принципы тестирования. Вот список полезных книг, которые помогут разобраться в профессии.


⭐️ Тестирование dot com

Автор: Роман Савин
- Классика тестирования, актуальная даже спустя годы.
- Описывает профессию тестировщика и его задачи.
- Простым языком объясняет, как искать ошибки в ПО.


⭐️ Тестирование программного обеспечения

Автор: Святослав Куликов
- Отличный базовый курс тестирования.
- Разбирает разные виды тестирования, чек-листы и автоматизацию.
- Включает примеры команд и сценариев для автотестов.


⭐️ Ключевые процессы тестирования

Автор: Рэкс Блэк
- Глубокое погружение в процессы тестирования.
- Разбор тестирования на примере проекта «Суматра».
- Помогает понять, как правильно строить процессы в команде.


⭐️ Софт отстой и что с этим делать

Автор: Дэвид Платт
- Книга с юмором, но с полезными выводами.
- Рассматривает тестирование с точки зрения пользователя.
- Показывает, как выявлять проблемы в юзабилити.


⭐️ A Practitioner’s Guide to Software Test Design

Автор: Lee Copeland
- Единственная книга в подборке на английском.
- Описывает 7 подходов к тестированию.
- Подходит для новичков благодаря простому языку.

Эти книги помогут вам лучше понять тестирование и начать карьеру в этой сфере.


🔗 Статья

🌐 Новости

🖥 Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
2🔥1
#Frontend

Эй! Давай создадим свою слот-машину, как в онлайн-казино! Это будет классный проект, где мы сделаем три вертикальных слота с эмодзи фруктов и овощей.

Сначала мы подготовим HTML-страничку с контейнерами для слотов и кнопкой. Потом добавим стиль, чтобы всё выглядело круто. А после этого напишем скрипт, который будет случайным образом менять эмодзи, когда мы будем нажимать на кнопку.

Также можем добавить какие-нибудь улучшения, например, проверку совпадений или звуки, когда слоты крутятся. В общем, будет весело и полезно! Попробуем?


🔗 Статья

🌐 Новости

🖥 Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
Программирование на гранях техники: Компьютеры, Редакторы и цифровые DSL

В программировании есть интересные концепции, делающие код более гибким и выразительным. Одной из таких концепций является метапрограммирование. Давайте разберемся, что это такое.


📝 Введение в метапрограммирование

Метапрограммирование позволяет изменять или генерировать код во время выполнения, адаптируя его к изменяющимся условиям.


📝 Метаклассы: магия за кулисами классов

Метаклассы — мощный инструмент для изменения процесса создания классов. Они позволяют автоматически регистрировать классы или динамически изменять их поведение, создавая более адаптивные структуры.


📝 Декораторы: магические обёртки для функций и классов

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


📝 Динамические DSL: создание доменно-специфичных языков

DSL (доменно-специфические языки) решают специфические задачи в определенных областях. Метаклассы и декораторы позволяют создавать динамические DSL, адаптированные под нужды конкретного проекта.

Понимание этих концепций повысит вашу эффективность как разработчика и поможет создавать более гибкие и расширяемые системы!


🔗 Статья

🌐 Новости

🖥 Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
2
#Tech

🎭 Советы для избежания частых ошибок в разработке


1. Недостаточная обработка исключений

Реальный мир непредсказуем: некорректные данные, недоступные сервисы, повреждённые файлы. Грамотная обработка исключений — это забота о пользователе и бизнесе.


2. Забывая о DRY, пишем дважды

Копирование кода кажется быстрым решением, но становится кошмаром при внесении изменений. Выделение повторяющихся частей в функции — инвестиция в будущую продуктивность.


3. Глобальные переменные

Удобные на первый взгляд, они становятся источником неожиданных проблем. Лучше передавать данные через параметры и возвращаемые значения.


4. Тесты

Код без тестов подобен сложному трюку без страховки. Тесты выявляют ошибки на ранних этапах и документируют ожидаемое поведение программы.


5. Искусство работы с данными

Оптимизируйте алгоритмы и структуры данных. Используйте современные инструменты — генераторы, встроенные функции, специализированные коллекции.


6. SOLID

Эти принципы помогают создавать гибкие, расширяемые системы, устойчивые к изменениям требований.


7. Многопоточность

Без правильных механизмов блокировки и синхронизации параллельное выполнение задач приводит к непредсказуемым результатам.


8. Структура проекта

Логическое разделение на модули и пакеты помогает быстро ориентироваться в проекте и понимать взаимосвязи компонентов.


9. Магические числа:

Замена числовых значений на константы с говорящими именами делает код понятнее.


10. Логирование

Грамотное логирование — ваш проводник при выявлении причин сбоев на продакшене.


11. Планирование

Анализ требований и проектирование архитектуры помогают избежать ненужных переделок.


12. Единообразие

Единый стиль кодирования делает код читаемым и упрощает командную работу.


Ошибки — не повод для разочарования, а возможность для роста. Применяя лучшие практики, middle-разработчики могут подняться на новую ступень мастерства.

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



🔗 Статья

🌐 Новости

🖥 Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
3
This media is not supported in your browser
VIEW IN TELEGRAM
#Backend

SQL Practice

Это интерактивная платформа для освоения и совершенствования навыков SQL. Здесь вы решаете реальные задачи по работе с базами данных в удобной онлайн-среде.


Ключевые особенности:

- Обучение через практику — решайте задачи разной сложности
- Мгновенная обратная связь — система сразу проверяет ваши решения
- Реалистичные базы данных — работа с данными, имитирующими реальные сценарии
- Последовательное развитие — от простых запросов к сложным техникам


Как использовать

1. Перейдите на www.sql-practice.com
2. Выберите раздел и сложность
3. Напишите SQL-запрос для решения задачи
4. Получите результат и переходите к следующей задаче


🌐 Новости

🖥 Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21
#Frontend

🎓 Crunchzilla - это образовательная платформа, которая предлагает несколько интерактивных обучающих инструментов для изучения JavaScript.


На сайте представлены следующие программы:

1. Code Monster - интерактивный учебник по JavaScript для детей. Учит базовым концепциям программирования через создание анимации и графики.

2. Code Maven - более продвинутая версия для подростков и взрослых. Покрывает более сложные концепции JavaScript и создание интерактивных визуализаций.

3. Game Maven - учит создавать игры с использованием JavaScript, включая управление физикой, детектирование столкновений и другие игровые механики.


Все эти инструменты построены по принципу "учись, делая" - они предлагают пошаговые инструкции, которые пользователь выполняет прямо в браузере, сразу видя результаты своего кода.


Это отличный способ для начинающих узнать основы программирования в интерактивной форме.


🔗 Ссылка

🌐 Новости

🖥 Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
1
⛔️ Топ-10 ошибок при использовании микросервисов

Микросервисы зарекомендовали себя как эффективный подход в разработке, но бывают ли ситуации, когда они не оправдывают ожиданий?

В этой статье рассмотрены 10 распространенных антипаттернов в работе с микросервисами и решения для их предотвращения.


🔗 Ссылка

🌐 Новости

🖥 Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1🔥1
🟡 Расширение для браузера за 10 минут

Всегда хотели создать собственное расширение для браузера, но думали, что это сложно? На самом деле, вы можете сделать простое, но полезное расширение всего за 10 минут!


История проблемы

В конце 2020 года я разработал скрипт с падающим снегом для сайтов. Но возникла проблема: скрипт нужно было запускать через консоль браузера, что становилось невозможным на сайтах с жёсткой политикой безопасности. Решение? Создать собственное расширение!


Создаём манифест

Манифест — это главный документ расширения, который определяет его параметры:
- Название
- Права доступа
- Фоновые скрипты
- Иконку
- Действия при клике

Создадим файл manifest.json:


{
"name": "Snow Fall",
"version": "1.0",
"manifest_version": 3,
"action": {
"default_popup": "popup.html"
},
"permissions": ["activeTab", "scripting"],
"icons": {
"16": "icons/icon16.png",
"48": "icons/icon48.png",
"128": "icons/icon128.png"
}
}



Добавление расширения в браузер

1. Откройте Chrome и перейдите в раздел chrome://extensions/
2. Включите "Режим разработчика"
3. Нажмите "Загрузить распакованное расширение" и выберите папку с вашими файлами

Настройка иконок и разрешений

Для работы расширения нам нужны разрешения:
- activeTab — доступ к активной вкладке
- scripting — возможность запускать скрипты

А для всплывающего меню создадим файл popup.html:


<!DOCTYPE html>
<html>
<head>
<style>
button { width: 100px; height: 30px; }
</style>
</head>
<body>
<button id="start">Запустить снег</button>
<script src="popup.js"></script>
</body>
</html>



Запуск снежинок

Теперь создадим файл popup.js с кодом для запуска:


document.getElementById('start').addEventListener('click', async () => {
let [tab] = await chrome.tabs.query({ active: true, currentWindow: true });

chrome.scripting.executeScript({
target: { tabId: tab.id },
function: snowFall
});
});

function snowFall() {
// Здесь должен быть код со снежинками
// Пример:
const snow = document.createElement('div');
snow.innerHTML = '❄️';
snow.style.position = 'fixed';
snow.style.top = '0';
snow.style.left = Math.random() * 100 + '%';
snow.style.animation = 'fall 10s linear';
document.body.appendChild(snow);

// Добавьте здесь полный код для снежинок
}



Проверка работы

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

Вуаля! Снежинки появляются даже на сайтах с жёсткой политикой безопасности.


Оригинальная статья 👇

🔗 Ссылка

🌐 Новости

🖥 Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
2
#WebDevelopment

📡 Какие методы HTTP-запросов существуют?

HTTP — это основа для передачи данных в интернете. Разберём основные HTTP-методы:


GET — Получение данных

GET /api/users?id=123 HTTP/1.1
Host: example.com


• Запрашивает данные без изменений
• Параметры в URL
• Кэшируется
• Можно добавить в закладки
• Идемпотентный


POST — Создание ресурса

POST /api/users HTTP/1.1
Host: example.com
Content-Type: application/json

{
"name": "Алексей",
"email": "alex@example.com"
}


• Отправляет данные на сервер
• Для создания новых ресурсов
• Данные в теле запроса
• Не кэшируется
• Не идемпотентный


PUT — Полное обновление

PUT /api/users/123 HTTP/1.1
Host: example.com
Content-Type: application/json

{
"name": "Алексей",
"email": "new.alex@example.com"
}


• Заменяет ресурс полностью
• Может создать новый ресурс
• Идемпотентный


DELETE — Удаление

DELETE /api/users/123 HTTP/1.1
Host: example.com


• Удаляет ресурс
• Идемпотентный


PATCH — Частичное обновление

PATCH /api/users/123 HTTP/1.1
Host: example.com
Content-Type: application/json

{
"email": "newest.alex@example.com"
}


• Частично изменяет ресурс
• Передаёт только изменяемые поля
• Обычно не идемпотентный


HEAD — Только заголовки

• Возвращает только HTTP-заголовки
• Для проверки доступности ресурса
• Идемпотентный


OPTIONS — Информация о ресурсе

• Запрашивает информацию о методах и заголовках
• Используется для CORS
• Идемпотентный


CONNECT — Туннелирование

• Создаёт туннель через прокси
• Для HTTPS через HTTP-прокси


TRACE — Диагностика

• Возвращает запрос обратно
• Для отладки
• Обычно отключен


💡 Что такое идемпотентность?
Идемпотентность — многократное выполнение одной операции даёт один результат.

Идемпотентные методы:
• GET
• PUT
• DELETE
• HEAD
• OPTIONS

Не идемпотентные:
• POST
• PATCH (обычно)



🌐 Новости

🖥 Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#Tech

🔐 Хеширование: защита данных в цифровом мире

В эпоху, когда каждый клик оставляет цифровой след, безопасность наших данных становится не роскошью, а необходимостью. Ежесекундно по всему миру пересылаются терабайты конфиденциальной информации — пароли, платежные данные, личная переписка.

Но как убедиться, что эти данные в безопасности? На помощь приходит хеширование — мощный инструмент в арсенале кибербезопасности.

В отличие от шифрования, которое позволяет вернуть данные к исходному виду с помощью ключа, хеширование создает уникальный "отпечаток" информации, который невозможно обратить.

В этой статье мы погрузимся в мир хеш-функций, разберем их типы и применение в реальной жизни — от защиты ваших паролей до блокчейн-технологий.


🔗 Статья

🌐 Новости

🖥 База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1
#Tech

Вспоминая школьные годы, когда мы часами разбирали старые гаджеты в попытке понять, как они работают, я недавно наткнулась на нечто особенное. Это Retro Gadgets – игра, которая переносит магию создания электроники в цифровой мир.

Представьте себе: вы берёте виртуальные микросхемы, кнопки, дисплеи и соединяете их в устройство своей мечты. Может быть портативную игровую консоль? Или музыкальный синтезатор?


Что действительно зацепило меня — это возможность не просто собирать, но и программировать свои создания на Lua.

Если вы когда-нибудь мечтали стать изобретателем или просто любите возиться с ретро-электроникой, стоит заглянуть на их сайт. Я давно не испытывала такого творческого азарта.


🔗 Ссылка

🌐 Новости

🖥 База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
#Tech

Рейтинги языков программирования: не верь одному источнику!

Думаешь, какой язык учить или куда двигаться дальше? Разные рейтинги дают совершенно разные картины популярности!


Что показывают основные рейтинги в 2025:

TIOBE:
- Python
- C++
- Java
- Delphi внезапно на 9 месте (серьезно?!)

PYPL (Google Trends):
- Python по-прежнему король
- Java обгоняет C++
- Delphi скромно сидит на 30-м месте

RedMonk (GitHub + StackOverflow):
- JavaScript впереди Python
- CSS попал в топ-7 (хотя это не язык программирования)

Вакансии в России:
- Python (10 526)
- JavaScript (6198)
- Java (4354)


Почему языки становятся популярными:

- Python = машинное обучение и AI
- Go & Rust = облачные технологии и микросервисы
- TypeScript = надежный фронтенд
- C++ = сырая производительность


Не верь одному рейтингу! Сравнивай разные источники. Смотри на тренды в своей сфере. Некоторые всплески популярности (как с Delphi) — просто статистические аномалии или результат маркетинга.


🔗 Ссылка

🌐 Новости

🖥 База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
#Frontend

🏗️ Шаблоны проектирования

Что такое шаблоны проектирования:
- Руководства по решению конкретных проблем
- Не являются законченными архитектурными решениями
- Описывают подход к решению проблемы, а не её поиск


1️⃣ Порождающие шаблоны

Описывают механизмы создания объектов:

Простая фабрика
- Генерирует экземпляр объекта без предоставления логики экземпляра
- Пример: создание дверей на фабрике

Фабричный метод
- Использует генерирующие методы для создания объектов
- Пример: создание интервьюеров на фабрике

Абстрактная фабрика
- Группирует индивидуальные фабрики без указания конкретных классов
- Пример: создание дверей и специалистов для их установки

Строитель
- Помогает при создании объектов с несколькими свойствами или большим количеством этапов
- Пример: создание бургеров с различными ингредиентами
- Позволяет добавлять новые опции без изменения структуры

Прототип
- Создаёт объекты путём клонирования существующего объекта
- Пример: клонирование объекта «Овца» для создания новых объектов
- Используется, когда создание объекта с нуля дороже клонирования

Одиночка
- Ограничивает создание класса единственным объектом
- Пример: создание единственного экземпляра класса «Президент»
- Антипаттерн, так как вносит глобальное состояние в приложение


2️⃣ Структурные шаблоны

Определяют способ взаимоотношений между сущностями:


Адаптер
- Помещает несовместимый объект в обёртку для совместимости с другим классом
- Пример: адаптер для совместимости дикой собаки с охотником

Мост
- Предпочитает компоновку наследованию
- Пример: реализация тем оформления веб-страниц

Компоновщик
- Позволяет клиентам обрабатывать объекты в едином порядке
- Пример: обработка сотрудников компании как единой группы, с расчетом зарплаты

Декоратор
- Позволяет динамически изменять поведение объекта
- Пример: добавление ингредиентов к кофе (молоко, взбитые сливки, ваниль)

Фасад
- Предоставляет упрощённый интерфейс для сложной подсистемы
- Пример: компьютерный фасад с функциями включения и выключения

Приспособленец
- Минимизирует использование памяти за счёт общего использования объектов
- Пример: кэширование типов чая в чайном магазине

Заместитель
- Представляет функциональность другого класса
- Пример: класс безопасности проверяет пароль и выполняет функции двери


3️⃣ Поведенческие шаблоны

Определяют алгоритмы и способы взаимодействия объектов:

Цепочка ответственности
- Создание цепочек объектов для обработки запросов
- Пример: банковский счёт и цепочка оплаты

Команда
- Инкапсуляция действий в объекты
- Пример: система заказов в ресторане и пульт управления

Итератор
- Доступ к элементам объекта без раскрытия базового представления
- Пример: перебор радиостанций

Посредник
- Добавление стороннего объекта для управления взаимодействием
- Пример: чат-комната как посредник между пользователями

Хранитель
- Фиксирует текущее состояние объекта для лёгкого восстановления
- Пример: сохранение состояния текстового редактора

Наблюдатель
- Определяет зависимость между объектами для уведомления об изменениях
- Пример: уведомления о новых вакансиях для соискателей

Посетитель
- Позволяет добавлять будущие операции без изменения объектов
- Пример: зоопарк с различными видами животных и типами посетителей

Стратегия
- Переключается между алгоритмами в зависимости от ситуации
- Пример: выбор между пузырьковой и быстрой сортировкой

Состояние
- Меняет поведение класса при изменении состояния
- Пример: инструмент «Кисть» в графическом редакторе
- Реализует машину состояний объектно-ориентированным способом
- Каждое состояние представлено производным классом
- Пример: текстовый редактор с различными начертаниями текста

Шаблонный метод
- Определяет каркас выполнения алгоритма
- Реализация этапов делегируется дочерним классам
- Пример: инструмент для сборки и тестирования с реализациями для Android и iOS


🔗 Ссылка

🌐 Новости

🖥 База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1
#Frontend

🍪 Работа с куки: эволюция подходов

Работа с куки в JavaScript никогда не была удобной. Метод появился в 1996 году и почти не изменился. Разберем разницу между старым и новым подходом.


1️⃣ Классический способ (document.cookie)

Недостатки:

- Синхронные операции блокируют поток
- Нельзя узнать срок действия или домен куки
- Неудобно работать с несколькими куки
- Нельзя использовать в сервис-воркерах


2️⃣ Современный Cookie Store API

Преимущества:

- Асинхронный API не блокирует поток
- Доступ ко всей информации о куки
- Работает в сервис-воркерах
- Подписка на изменения куки


🔗 Ссылка

🌐 Новости

🖥 База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1