WebDev+ | Веб-разработка
Открыть в Telegram
Присоединяйтесь к нашему каналу и погрузитесь в мир веб-разработки Связь: @devmangx
Больше8 234
Подписчики
+824 часа
+207 дней
+28830 дней
Архив постов
Свежак в ChromeDevTools! Отладка полной performance-трейсы с помощью Gemini.
Записал трейс, а дальше просто общаешься с Gemini про весь этот трейс: связанные Performance Insights и даже данные из поля. И главное.. не надо заранее выделять контекст, Gemini сам разберется
@WebDev_Plus
Разработчик экспериментирует с HTMX и нашёл способ комбинировать JSX, TypeScript и кастомные HTML-элементы… без привычной фронтовой сборки. Стили и небольшой клиентский код он просто инлайнит прямо с сервера. Звучит странновато, но есть плюсы: всё лежит рядом, не нужно возиться с бандлерами, а работа идёт быстрее.
Фокус в одном трюке: клиентские функции можно передавать в <script> как есть, забрав их исходник через Function.prototype.toString(). То же работает и для CSS. Получается, будто пишешь фронт прямо в браузере, но все плюшки TypeScript и JSX получаешь на сервере.
Метод, конечно, не для гигантских приложений. Но для маленьких виджетов, кастомных элементов или отдельных фич без тонны зависимостей — вполне себе вариант. Минификацию можно отдать CDN или вообще забить, если кода немного. С внешними библиотеками помогут import maps.
Автор задумки признаёт: это не серебряная пуля. Просто ещё один инструмент, который делает разработку чуть приятнее, когда он уместен.
@WebDev_Plus
Айтишники не рассказывают где учатся бесплатно и эффективно
Никому не говори об этом канале!!! В сфере онлайн образования появился новый гигант «TERMINAL» — который разрушит индустрию платных IT-курсов
Бесплатный доступ:
🔄Практические курсы и задания 🔄Книги и статьи от профи 🔄Полезные инструменты и ресурсы 🔄IT-новости и инсайдыОбучение по всем направлениям: SQL, Python, Frontend, PHP, C++, Golang, GIT, Linux, Java, кибербезопасность и др. Если ценишь знания — подпишись: @Terminal_tg
Вот небольшой совет, не про Angular.
Не обязательно держать submit/reset кнопки прямо внутри формы. Можно повесить на кнопку атрибут form.
Этот атрибут связывает кнопку с нужной формой, и тогда её можно разместить где угодно в документе, независимо от её позиции.
Надеюсь, пригодится.
@WebDev_Plus
Repost from бизнестрендс
⚡️ Запускаем крупный розыгрыш призов, где можно выиграть iPhone 17, игровые наушники, клавиатуру и мышь!
Без лишних слов, условия:
1. Подписка на:
— бизнестрендс
— Технотренды
— Блумберг
2. Нажать кнопку «Участвовать» снизу
Итоги будут опубликованы 15 ноября в 18:00 на наших каналах, желаем удачи!
Мой любимый терминал — Warp. Я до сих пор нахожу в нём мелкие фишки, которые помогают работать быстрее. Знал, что там есть встроенный файловый менеджер?
@WebDev_Plus
Хотите отображать PDF-файлы на своем веб-сайте? Обратите внимание на это
Работает с React, Svelte, Solid и Vanilla JavaScript.
$ npm install @pdfslick/react
@WebDev_PlusПоймал CORS-ошибку и она тебе всё ломает?
Тебе пригодится один трюк в DevTools.
@WebDev_Plus
С 34-м днем рождения, HTML-теги.
29 октября 1991 года Тим Бернерс-Ли опубликовал документ под названием HTML Tags.
В нем было описание первых 18 тегов HTML: <title>, <nextid>, <a>, <isindex>, <plaintext>, <listing>, <p>, <h1>…, <address>, <hp1>…, <dl>, <dt>, <dd>, <ul>, <li>, <menu> и <dir>.
@WebDev_Plus
Библиотека Javascript для создания потоков данных без зависимостей
https://github.com/jerosoler/Drawflow/
@WebDev_Plus
У тебя сейчас мозг взорвётся.
Кликаешь по компоненту в React, и сразу открывается его код в VS Code
С такой штукой пишешь код заметно быстрее
@WebDev_Plus
Javascript Tip
Более удобный способ найти элемент с конца массива
Чистый и быстрый способ найти элемент с конца массива — использовать метод findLast().
const logs = [
{ category: 'error', description: 'Error 1', timestamp: 1705276800000 },
{ category: 'warning', description: 'Warning 1', timestamp: 1705363200000 },
{ category: 'error', description: 'Error 2', timestamp: 1705449600000 },
{ category: 'info', description: 'Info 1', timestamp: 1707523200000 },
];
const lastError = logs.findLast(log => log.category === 'error');
console.log(lastError);
// 👉 { category: 'error', description: 'Error 2', timestamp: 1705449600000 }
Если нужен не сам элемент, а индекс, то можно использовать метод findLastIndex().
Оба этих метода поддерживаются всеми популярными браузерами и JS-рантаймами с сентября 2022 года 🎉
@WebDev_PlusЭтот крошечный утилитарный модуль на TypeScript делает твой код типобезопасным, переиспользуемым и полностью выводимым по типам
Паттерн TypeScript для чистой и типобезопасной выборки данных
type KeyOf<T> = Extract<keyof T, string>;
const mapData = <T extends object, K extends KeyOf<T>>(
data: readonly T[],
key: K,
) => data.map((item) => item[key]);
const categories = [
{ id: 1, name: "Clothing" },
{ id: 2, name: "Footwear" },
] as const;
const variants = [
{ id: 1, name: "Red - Large" },
{ id: 2, name: "Blue - Medium" },
] as const;
const sizes = [
{ id: 1, label: "Small" },
{ id: 2, label: "Medium" },
] as const;
// Типобезопасно, неизменно и полностью выводится по типам
console.log(mapData(categories, "name")); // ["Clothing", "Footwear"]
console.log(mapData(variants, "name")); // ["Red - Large", "Blue - Medium"]
console.log(mapData(sizes, "label")); // ["Small", "Medium"]
@WebDev_Plus👩💻 В сеть вывалилась гигантская куча курсов и книг
Держи сотни гигабайт свежих уроков, и каждую неделю мы подкидываем ещё!
• 1612 ГБ — DevOps
• 1402 ГБ — Python
• 1300 ГБ — C, C++
• 1815 ГБ — Frontend
• 1515 ГБ — Backend
• 898 ГБ — ИБ, Хакинг
• 996 ГБ — Kotlin, Swift
• 212 ГБ — JavaScript
• 315 ГБ — Flutter
• 820 ГБ — Go, PHP
• 419 ГБ — Java, Rust
• 648 ГБ — GameDev
• 517 ГБ — Windows, Linux
• 998 ГБ — Дизайн (UX/UI)
• 617 ГБ — Нейросети (ML/RL)
• 546 ГБ — БД (SQL & NoSQL)
• 687 ГБ — Аналитика данных
• 115 ГБ — QA-тестирование
Подписывайся и не плати за то, что можно получить бесплатно
В Chrome DevTools завезли классное обновление для CSS
Теперь, когда наводишь курсор на любое CSS-свойство в DevTools, отображается не только описание, но и информация из Baseline — она показывает, насколько хорошо это свойство поддерживается разными браузерами.
Появились метки вроде «Широко поддерживается», «Ограниченная поддержка» и «Недавно стало доступно».
Очень полезное обновление для фронтенд-разработчиков: можно мгновенно проверить поддержку нужного свойства, не покидая DevTools.
Спасибо команде ChromiumDev за этот апдейт. Маленькое изменение, а польза огромная :)
@WebDev_Plus
Этот инструмент проверяет производительность твоего сайта.
Он сканирует все страницы и выставляет оценку каждой.
Похоже на Lighthouse, но с обзором всего сайта целиком.
Запусти вот так:
npx unlighthouse --site <твой-сайт>
@WebDev_Plus+4
👩💻 IT теперь в Telegram!
Программисты и TechLead'ы из FAANG создали этот канал для обучения их стажёров и джунов, чтобы подготовить их к работе в топовых компаниях.
Курсы, новости, гайды, советы, мемы, книги — всё, что входит в дневной рацион разработчика.
Забирай доступ: @it_matrix
Валидатор паролей с использованием HTML, CSS и JavaScript
Код: тык
@WebDev_Plus
Одна из самых крутых штук, которые можно сделать с TypeScript:
обрати внимание, что подсказки автодополнения зависят от входных данных функции-билдера.
@WebDev_Plus
