Sass — это препроцессор CSS, который помогает сделать стили более организованными, масштабируемыми и поддерживаемыми.
Как применить его в проекте:
С помощью Sass стили становятся более гибкими, повторно используемыми и проще для изменений, что ускоряет процесс разработки и улучшает поддерживаемость кода в долгосрочной перспективе.
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🌧️ Облачная терапия: время выговориться!
Знакомая ситуация? Покупаете облако как BMW, а получаете телегу с квадратными колесами. Обещают 99.9% uptime, а сервер падает на релизе. Техподдержка отвечает через сутки фразой «попробуйте перезагрузить».
Пора узнать, как обстоят дела с облаками на самом деле. Поэтому мы собираем ваши реальные истории про облачные сервисы.
🤫 О чем спросим:
— Зачем вам вообще это облако нужно
— Какие косяки достали до печенок
— Сколько денег утекает в никуда ежемесячно
— Что должно случиться, чтобы вы сменили провайдера
— И еще пару каверзных вопросов
⏱️ 2 минуты честности = большое исследование без воды → https://clc.to/nboYDA
Знакомая ситуация? Покупаете облако как 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-агентов с нуля — на основе сценариев, функций и взаимодействия с внешней средой
Решение за вами.
👉 Купить курс по старой цене
Пока вы думаете — другие уже покупают. Что вы теряете, откладывая решение? Как минимум — 10 000 рублей, именно столько вы переплатите завтра. Как максимум — шанс войти в топ-1% дата-сайентистов, которые умеют строить AI-агенты.
🎓 Чему вы научитесь на курсе:
— адаптировать LLM под разные предметные области и данные
— собирать свою RAG-систему: от ретривера и реранкера до генератора и оценки качества
— строить AI-агентов с нуля — на основе сценариев, функций и взаимодействия с внешней средой
Решение за вами.
👉 Купить курс по старой цене
proglib.academy
Курс|AI-агенты для DS-специалистов
На курсе ты разберёшься, как работают AI-агенты и как их применять в работе — от текстовых помощников до систем, помогающих принимать решения. Разберем архитектуру агентов, связку с внешними API, пайплайны действий и популярные библиотеки. Курс включает реальные…
Please open Telegram to view this post
VIEW IN TELEGRAM
Пишите ваш вариант в комментариях — и не забудьте скрыть под спойлером
#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
Представляем статьи, видео и инструменты для эффективного использования 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 ₽, удаленно (Москва)
#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
Валидация на стороне клиента — это первый шаг в обеспечении безопасности данных, вводимых пользователями, прежде чем они попадут на сервер.
Почему важно:
Как внедрить:
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
В первой части мы обсудили, как ускорить загрузку: сократить запросы, оптимизировать файлы и стили. Теперь время улучшить отзывчивость и плавность.
В карточках рассказываем:
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM