Библиотека фронтендера | Frontend, JS, JavaScript, React.js, Angular.js, Vue.js
22.8K subscribers
2.32K photos
137 videos
38 files
4.73K links
Все самое полезное для фронтенда в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/77178ed4

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a5b6884689c2151c820bb4
加入频道
📢 Навигация по каналу

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

#буст — база знаний: справочники, схемы, сравнение инструментов, полезные команды, обзоры докладов и подкастов, AI-промпты, гайды по настройке, исправлению ошибок и автоматизации

#свежак — релизы, конференции, новости, дайджест за неделю

#междусобойчик — истории подписчиков, собес-задачи, факапы, опросы, IT-игры, кроссворды, ребусы

#развлекалово — мемы

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

🐸 Библиотека фронтендера
Please open Telegram to view this post
VIEW IN TELEGRAM
⭐️ Организация стилей с переменными и миксинами

Sass — это препроцессор CSS, который помогает сделать стили более организованными, масштабируемыми и поддерживаемыми.

Как применить его в проекте:

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

➡️ Миксины для создания переиспользуемых блоков стилей, например, для оформления кнопок или отступов, что позволяет не повторять одинаковые правила.

➡️ Вложенность для логической организации стилей, отражающих структуру HTML, что улучшает читаемость и уменьшает количество кода.

➡️ Функции и математические операции для динамического изменения значений, например, при расчёте размеров элементов или создании адаптивных стилей.

💡 Зачем это нужно:

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

🐸 Библиотека фронтендера

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🌧️ Облачная терапия: время выговориться!

Знакомая ситуация? Покупаете облако как BMW, а получаете телегу с квадратными колесами. Обещают 99.9% uptime, а сервер падает на релизе. Техподдержка отвечает через сутки фразой «попробуйте перезагрузить».

Пора узнать, как обстоят дела с облаками на самом деле. Поэтому мы собираем ваши реальные истории про облачные сервисы.

🤫 О чем спросим:
— Зачем вам вообще это облако нужно
— Какие косяки достали до печенок
— Сколько денег утекает в никуда ежемесячно
— Что должно случиться, чтобы вы сменили провайдера
— И еще пару каверзных вопросов

⏱️ 2 минуты честности = большое исследование без воды → https://clc.to/nboYDA
😄 Оптимизация загрузки сайта: что мешает скорости и как это устранить

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

В карточках рассказываем:

➡️ Как сократить количество сетевых запросов и избавиться от лишних файлов

➡️ Почему важно правильно расставить стили и скрипты

➡️ Какие форматы изображений дают меньший вес

➡️ Как собрать проект так, чтобы браузер начал работу раньше

В следующей части расскажем про отзывчивость, плавность и поведение интерфейса после загрузки.

🔗 Полный текст — по ссылке

🐸 Библиотека фронтендера

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
😱 Завтра цена на курс «AI-агенты для DS» вырастет

Пока вы думаете — другие уже покупают. Что вы теряете, откладывая решение? Как минимум — 10 000 рублей, именно столько вы переплатите завтра. Как максимум — шанс войти в топ-1% дата-сайентистов, которые умеют строить AI-агенты.

🎓 Чему вы научитесь на курсе:
— адаптировать LLM под разные предметные области и данные
— собирать свою RAG-систему: от ретривера и реранкера до генератора и оценки качества
— строить AI-агентов с нуля — на основе сценариев, функций и взаимодействия с внешней средой

Решение за вами.

👉 Купить курс по старой цене
😐 Что мы загадали в ребусе

Пишите ваш вариант в комментариях — и не забудьте скрыть под спойлером ✏️

🐸 Библиотека фронтендера

#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
🟣 Подборка материалов по интеграции фронтенда с бэкендом через GraphQL

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

➡️ Введение в GraphQL: ключевые аспекты и преимущества

➡️ Как работать с подписками GraphQL для реального времени: руководство по настройке подписок в GraphQL с Apollo Client

➡️ Apollo Client + React: видеообзор, показывающий, как настроить Apollo Client в React-приложении для работы с GraphQL

➡️ GraphQL для фронтенд-разработчика: введение в основы

➡️ Внедрение GraphQL на фронтенде без переломов

🐸 Библиотека фронтендера

#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
🚨 Вопрос на внимательность

У вас форма, куда пользователь может ввести текст. Вы вставляете этот текст так, как на картинке.

➡️ Пользователь ввёл:

<img src=x onerror=alert(1)>


Что произойдет

🐸 Библиотека фронтендера

#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰 Топ-вакансий для фронтендеров за неделю

Senior JavaScript developer — от 300 000 ₽, удаленно (Москва)

JS-разработчик — удаленно (Москва)

Разработчик 3D-продукта (JS/WebGL) — от 130 000 до 145 000 ₽ , гибрид (Екатеринбург)

Vue Frontend-разработчик (Senior) — от 270 000 ₽, удаленно

Angular Developer — от 230 000 ₽, удаленно (Москва)

➡️ Еще больше топовых вакансий — в нашем канале Javascript jobs

🐸 Библиотека фронтендера

#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
🌟 Как реализовать безопасный ввод с помощью валидации на стороне клиента

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

Почему важно:

📍 Защищает от XSS и SQL-инъекций

📍 Предотвращает отправку некорректных данных

📍 Повышает UX за счет быстрой обратной связи

Как внедрить:

1. Делаем проверку на пустое поле:


const form = document.querySelector('form');
const input = document.querySelector('input[name="username"]');

form.addEventListener('submit', (event) => {
if (!input.value.trim()) {
event.preventDefault();
alert('Поле не может быть пустым!');
}
});


2. Проверяем корректность email:


const emailInput = document.querySelector('input[name="email"]');

form.addEventListener('submit', (event) => {
const email = emailInput.value;
const regex = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}$/;

if (!regex.test(email)) {
event.preventDefault();
alert('Введите корректный email!');
}
});


3. Ограничиваем длину пароля:


const passwordInput = document.querySelector('input[name="password"]');

form.addEventListener('submit', (event) => {
if (passwordInput.value.length < 6) {
event.preventDefault();
alert('Пароль должен быть не менее 6 символов!');
}
});


4. Используем атрибуты HTML5 для валидации:


<form>
<input type="email" name="email" required>
<input type="password" name="password" minlength="6" required>
<button type="submit">Отправить</button>
</form>


5. Экранируем пользовательский ввод для защиты от XSS:


function escapeHtml(text) {
const element = document.createElement('div');
if (text) {
element.innerText = text;
element.textContent = text;
}
return element.innerHTML;
}

const userInput = '<script>alert("XSS")</script>';
const safeInput = escapeHtml(userInput);
console.log(safeInput);


💡 Применение этих методов поможет обезопасить вводимые данные и защитить приложение от популярных угроз.

🐸 Библиотека фронтендера

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM