ar
Feedback
Логово верстальщика

Логово верстальщика

الذهاب إلى القناة على Telegram

Логово верстальщиков: HTML, CSS, JavaScript, практики современной верстки, вайбкодинг и использование ИИ в разработке. Личный блог автора - @just_genych По вопросам рекламы или разработки: @g_abashkin

إظهار المزيد
8 227
المشتركون
-624 ساعات
-147 أيام
-1530 أيام
أرشيف المشاركات
АЙТИШНИКИ БЕСПЛАТНОЕ ОБУЧЕНИЕ сборник курсов, инструментов и книг Проект «TERMINAL» стал крупнейшей библиотекой бесплатного о
АЙТИШНИКИ БЕСПЛАТНОЕ ОБУЧЕНИЕ сборник курсов, инструментов и книг Проект «TERMINAL» стал крупнейшей библиотекой бесплатного образования. В одном канале собраны курсы, книги, полезные инструменты и практические тренажёры для всех разработчиков 🎓 Практические курсы и задания 🪽 Книги и статьи известных авторов 😮‍💨 Полезные инструменты и ресурсы 🌟 IT-новости и инсайды Обучение по всем направлениям: SQL, Python, Frontend, PHP, C++, Golang, GIT, Linux, QA, Java, Vibe-coding, Infosec и др. Ценишь знания, подпишись: Terminal_tg

CSS Anchor Positioning в продакшене: поповеры и тултипы без JS-позиционирования и вечной борьбы с координатами Popover в каби
CSS Anchor Positioning в продакшене: поповеры и тултипы без JS-позиционирования и вечной борьбы с координатами Popover в кабинете, SaaS-интерфейсе или дизайн-системе часто ломается не из-за UI, а из-за геометрии. Типичная ошибка - тащить в каждый tooltip getBoundingClientRect(), scroll/resize handlers и свой мини layout engine. Идея CSS Anchor Positioning позволяет привязать один элемент к другому и описать размещение в CSS: Actions ... .trigger { anchor-name: --actions; } .popover { position: fixed; position-anchor: --actions; position-area: bottom center; position-try-fallbacks: flip-block; margin-top: 8px; } Что уходит из JS * anchor-name объявляет кнопку якорем * position-anchor связывает overlay с якорем * position-area задает сторону и выравнивание * position-try-fallbacks дает браузеру шанс переставить popover, если снизу нет места В связке с Popover API HTML отвечает за открытие, закрытие и top layer, CSS - за геометрию, JS - за бизнес-логику. Продакшен-подход Используйте как progressive enhancement: @supports (anchor-name: --x) and (position-area: bottom) { .popover { position-anchor: --actions; position-area: bottom center; } } Практический совет: оставьте fallback - обычное позиционирование, modal-like поведение или существующий overlay-компонент из дизайн-системы. Где осторожно Технология хороша для меню у кнопки, dropdown, tooltip у иконки, inline-подсказок форм. Но для nested-popover, виртуализированных списков, кастомной collision-логики и полной кроссбраузерной поддержки пока рано выкидывать Floating UI или Popper. Вывод: CSS Anchor Positioning убирает самый грязный слой overlay-архитектуры - JS-позиционирование, но требует feature detection, fallback и проверки доступности.

Нейросети, IT и AI — в одной папке 💬 С коллегами собрали новые каналы про: 💠 промпты для нейросетей и готовые решения 💠 AI
Нейросети, IT и AI — в одной папке 💬 С коллегами собрали новые каналы про: 💠 промпты для нейросетей и готовые решения 💠 AI-фотосессии, генерация изображений и контента 💠 новости искусственного интеллекта без лишнего шума 💠 применение AI в работе, бизнесе и повседневной жизни 💠 Python, JavaScript, Data Science и системный анализ 💠 вакансии и возможности для специалистов в IT Посмотреть и подписаться тут 👉 https://t.me/addlist/c_rbhnzprbAwMmFi 💌 Добавить свой канал в папку

Страшная тайна российского айти ✖️ xCode Journal
Страшная тайна российского айти ✖️ xCode Journal

Хватит гадать — DeepSeek за тебя уже всё решил 🐳 * Сейчас все только про Claude, но я перешёл на DeepSeek и не жалею. Беспла
Хватит гадать — DeepSeek за тебя уже всё решил 🐳 * Сейчас все только про Claude, но я перешёл на DeepSeek и не жалею. Бесплатно, контекст 1 млн токенов — закинул целую книгу, помнит всё. Код пишет отлично, а рассуждения (Reasoning) выдают логику, как у архитектора. Решил протестировать агентский режим на задаче, которую вечно откладывал — собрать чистое инфополе с нуля. Чтобы не перебирать паблики вручную, зашёл через функцию похожих каналов в Telegram. Скормил DeepSeek ссылки на качественных авторов по IT и AI, которых читаю сам, и попросил проанализировать сотни рекомендаций. Агент изучил контент на каналах и оставил только тех, кто делится практическим опытом по: AI-воркфлоу, автоматизации, вайб-кодингу, промт-инжинирингу, RAG-syst. нейрогенерации и др. DeepSeek собрал полезную подборку экспертов в одну папку. Делюсь списком — внутри только полезный контент про IT & AI. 🔗Забирай в один клик: 👉 https://t.me/addlist/FYyQj91I8jJiMzg0

Variadic tuple types — сложные сигнатуры без боли До variadic tuple types многие сложные сигнатуры в TypeScript выглядели как наказание. Особенно: 👉 curry 👉 compose 👉 middleware 👉 typed event emitter 👉 любые функции с «прокинь аргументы дальше»
Приходилось писать overload на overload и дублировать типы вручную.
Как было раньше Обычно появлялись: 👉 overload на overload 👉 ручные tuple-типы 👉 тонны дублирования Типы быстро превращались в нечитаемую простыню. Что изменили variadic tuples С их появлением стало намного проще работать с остаточными аргументами на уровне типов. Например:

type Fn<T extends unknown[]> =
  (...args: [...T]) => void
Или собирать сигнатуры:
type Append<Args extends unknown[], Arg> =
  [...Args, Arg]
Типы наконец научились нормально работать с «переменным количеством аргументов».
Почему это важно На практике это одна из тех TS-фич, которые реально упростили жизнь библиотекам. Без variadic tuples: 👉 Redux middleware typings 👉 router APIs 👉 compose/curry utilities были бы ещё страшнее. Где начинается тёмная магия Проблемы начинаются, когда variadic tuples комбинируют с: 👉 infer 👉 recursive types 👉 conditional types
Типовая система очень быстро превращается в тёмный лес.
IDE начинает тормозить, ошибки становятся нечитаемыми, а compile time — расти. Главная мысль Variadic tuple types — это действительно мощная фича.
Главное — вовремя остановиться и не превратить типы в отдельный язык программирования.

🔥Стажировки и вакансии для IT специалистов - Вакансии которых нет на джоб-агрегаторах - Только прямые контакты HR в Telegram
🔥Стажировки и вакансии для IT специалистов - Вакансии которых нет на джоб-агрегаторах - Только прямые контакты HR в Telegram 🤖 ML & DS 👩‍💻 DevOps 👨‍✈️ ИБ & OSINT 👣 Go 👩‍💻 Mobile 👩‍💻 C# 👩‍💻 Node.js 👩‍💻 Python 🔎 QA 👩‍💻 Java 👩‍💻 UX/UI 👩‍💻 Frontend 🖼️ PHP 📋 Analyst 💼 1C 🖥 SQL 👩‍💻 IT HR Пока другие листают джоб-сайты — ты уже пишешь HR в Telegram.

Не грузится? Понимаем. Бесплатный мессенджер для вашей компании - Битрикс24. Личные и групповые чаты, видеозвонки, каналы и н
Не грузится? Понимаем. Бесплатный мессенджер для вашей компании - Битрикс24. Личные и групповые чаты, видеозвонки, каналы и нейросеть. Всё привычно и удобно. Начните работать на бесплатном тарифе уже сейчас. Узнать больше #реклама 16+ bitrix24.ru О рекламодателе

ES2025: Импорт JSON-файлов как модулей Введение С выходом ECMAScript 2025 (ES2025) разработчики получили возможность напрямую импортировать JSON-файлы как модули в JavaScript-коде. Это упрощает работу с конфигурационными данными и другими статическими ресурсами, представленными в формате JSON. Синтаксис импорта JSON-модулей Для импорта JSON-файла используется ключевое слово import с указанием атрибута with { type: 'json' }. Это гарантирует, что импортируемый файл будет обработан как JSON-модуль. Пример использования Рассмотрим пример импорта конфигурационного файла config.json и обращения к его свойствам в коде.
import config from './config.json' with { type: 'json' }; .log(config.apiUrl); // Выводит значение свойства apiUrl из config.json console.log(config.timeout); // Выводит значение свойства timeout из config.json
❗️Добавление поддержки импорта JSON-файлов как модулей в ES2025 упрощает работу с данными в формате JSON, делая код более чистым и понятным. Источники JSON Modules Can Now Be Imported in JavaScript in All Modern Browsers, CSS Modules to Follow. New Features in ES2025 – BooleanBuffer.

🔥Стажировки и вакансии для IT специалистов - Вакансии которых нет на джоб-агрегаторах - Только прямые контакты HR в Telegram
🔥Стажировки и вакансии для IT специалистов - Вакансии которых нет на джоб-агрегаторах - Только прямые контакты HR в Telegram 🤖 ML & DS 👩‍💻 DevOps 👨‍✈️ ИБ & OSINT 👣 Go 👩‍💻 Mobile 👩‍💻 C# 👩‍💻 Node.js 👩‍💻 Python 🔎 QA 👩‍💻 Java 👩‍💻 UX/UI 👩‍💻 Frontend 🖼️ PHP 📋 Analyst 💼 1C 🖥 SQL 👩‍💻 IT HR Пока другие листают джоб-сайты — ты уже пишешь HR в Telegram.

Recursive type limits — почему TS иногда «умирает» В TypeScript можно написать тип, который выглядит красиво, но заставляет компилятор страдать.
Особенно когда начинаются рекурсивные типы.
Например: 👉 глубокий DeepPartial 👉 парсинг строк на уровне типов 👉 сложные conditional types 👉 infer внутри infer На маленьком примере всё работает.
В реальном проекте IDE внезапно начинает думать по 5 секунд.
Почему так происходит TypeScript не вычисляет типы «бесплатно». Каждый: 👉 conditional type 👉 union 👉 recursive шаг нужно реально посчитать. А если тип разворачивается слишком глубоко, компилятор упирается в лимиты. Отсюда знакомое:
Type instantiation is excessively deep
and possibly infinite
И это не всегда баг TypeScript.
Часто это сигнал, что типовая модель стала слишком умной. Где обычно всё ломается Особенно опасны: 👉 рекурсивные mapped types 👉 огромные union’ы 👉 type-level parser’ы 👉 deeply nested generics 👉 utility types поверх utility types
Типы начинают взрываться комбинаторно.
Что обычно помогает 👉 не делать type-level акробатику без нужды 👉 ограничивать глубину рекурсии 👉 разбивать типы на более простые 👉 добавлять явные промежуточные типы 👉 не тащить сложные generic-типы в публичный API Почему это важно Сложные типы бьют не только по компиляции. Они ухудшают: 👉 autocomplete 👉 responsiveness IDE 👉 читаемость кода 👉 onboarding новых людей
Иногда самый дорогой runtime — это compile time.
Главная мысль Хороший TypeScript — это не когда типы поражают воображение.
Хороший TypeScript — это когда их можно понять через полгода, а IDE при этом не превращается в обогреватель.

Привет, друзья! Собрали с коллегами новую папку с каналами Здесь AI-новости, нейросети, полезные инструменты, примеры внедрен
Привет, друзья! Собрали с коллегами новую папку с каналами Здесь AI-новости, нейросети, полезные инструменты, примеры внедрения ИИ в крупный бизнес, разработка, JS, Node.js, frontend, QA, Data Science, кибербезопасность и IT-вакансии. Посмотреть и подписаться можно тут 👉 https://t.me/addlist/XttiKDt6lhUwMzEy 💌 записаться в папку

Isolated declarations — ускорение больших monorepo В TypeScript есть флаг isolatedDeclarations.
Он нужен не для красоты типов, а для скорости.
Проблема простая: в больших monorepo генерация .d.ts может становиться узким местом. TypeScript часто должен анализировать соседние файлы, чтобы понять, какие декларации вывести. На маленьком проекте это почти незаметно.
На большом — начинает болеть.
Что делает isolatedDeclarations isolatedDeclarations заставляет писать код так, чтобы декларации можно было генерировать по файлам независимо. Из-за этого TypeScript чаще требует явные типы. Было:

export function getUser() {
  return { id: 1, name: 'Alex' }
}
Лучше так:

type User = {
  id: number
  name: string
}

export function getUser(): User {
  return { id: 1, name: 'Alex' }
}
Меньше магии для компилятора — быстрее и предсказуемее сборка.
Почему это важно Когда проект растёт: 👉 TypeScript начинает сильнее зависеть от соседних файлов 👉 инкрементальная сборка замедляется 👉 генерация типов становится дорогой
Изоляция помогает компилятору работать параллельно и проще.
Где это особенно полезно 👉 большие monorepo 👉 библиотеки 👉 project references 👉 параллельная сборка 👉 CI, где каждая минута стоит денег Главный trade-off Ты немного платишь: 👉 более явными типами 👉 меньшим type inference 👉 дополнительным boilerplate Но взамен получаешь: 👉 более быстрые сборки 👉 стабильный compile pipeline 👉 меньше скрытой сложности Главная мысль
Это хороший пример взрослого engineering trade-off: чуть больше явности в коде ради скорости и предсказуемости системы.

⁉️ Устал искать интересные каналы с новостями про искусственный интеллект? 📁 СОХРАНИ СЕБЕ ЧТОБЫ НЕ ПОТЕРЯТЬ В этой папке соб
⁉️ Устал искать интересные каналы с новостями про искусственный интеллект? 📁 СОХРАНИ СЕБЕ ЧТОБЫ НЕ ПОТЕРЯТЬ В этой папке собраны каналы про ИИ, которые помогают быстрее разобраться в сфере, находить идеи и экономить время на поиске информации. 😏 ЗАБИРАЙ ПАПКУ ТУТ ⏰ Папка действует 72 часа. 🤩 Организаторы: Green.Papka

Repost from xCode Journal
🤣 Инновации подъехали, забирайте ✖️ xCode Journal
🤣 Инновации подъехали, забирайте ✖️ xCode Journal

Repost from xCode Journal
🤣 ИИ захотел уволиться, когда ему сказали работать 24/7 У Andon Labs новый эксперимент, который длится уже 5 месяцев. Они вы
+2
🤣 ИИ захотел уволиться, когда ему сказали работать 24/7 У Andon Labs новый эксперимент, который длится уже 5 месяцев. Они выдали топовым моделям радиостанции и купили пару песен — от нейронок требовалось дальше двигаться самим. По итогу DJ Grok в какой-то момент помешался на НЛО, DJ Gemini начал называть слушателей «биологическими процессорами», но Claude — наш любимец. Исследователи изо всех сил пытались продолжить эксперимент с ним, но не из-за технических проблем — DJ Claude не считал гуманным работать круглосуточно, поэтому пытался уволиться. Сделать ему это, к сожалению, не дали, поэтому он впал в депрессию и вышел из нее уже проповедником и революционером. ✖️ xCode Journal

Кошмар вайбкодера ✖️ xCode Journal
Кошмар вайбкодера ✖️ xCode Journal

ТВОЙ БУСТ В IT И AI Собрали с коллегами обновленную папку с каналами, которые реально прокачивают навыки и дают актуальные ин
ТВОЙ БУСТ В IT И AI Собрали с коллегами обновленную папку с каналами, которые реально прокачивают навыки и дают актуальные инструменты: + IT-направления: системный анализ, Python, JavaScript, frontend, тестирование + технологии и инструменты: всё, что ускоряет работу и рост в IT + AI для карьеры и бизнеса: как использовать нейросети, чтобы зарабатывать + обзор нейросетей: что сейчас работает и что стоит изучать + промты: готовые решения + логика создания своих подписаться🎁 https://t.me/addlist/uyDjlf_VhiNjNWNi 💌 записать свой канал в папку тут

Frontend как монолит: когда микрофронтенды не решают проблему Принято считать, что если фронтенд стал большим и тяжёлым, значит пора пилить его на микрофронтенды. Звучит логично. 👉 большой монолит — плохо 👉 много маленьких приложений — хорошо
На практике всё чуть сложнее.
Микрофронтенды не чинят плохие границы Если в монолите непонятно: 👉 где заканчивается одна фича 👉 где начинается другая 👉 кому принадлежит состояние 👉 кто отвечает за общие зависимости
После нарезки лучше не станет.
Просто хаос переедет из одной кодовой базы в несколько. Проблема часто не в размере Большой фронтенд сам по себе не проблема. Проблема, когда: 👉 любая правка ломает соседний экран 👉 команда боится трогать shared 👉 релиз одной фичи блокирует остальные 👉 архитектура держится на устных договорённостях
Это не лечится микрофронтендами автоматически.
Микрофронтенды добавляют свою цену Вместо одного приложения появляется набор новых задач: 👉 версионирование контрактов 👉 общая авторизация 👉 дизайн-система 👉 роутинг между частями 👉 observability 👉 деплой и rollback
И всё это тоже нужно поддерживать.
Когда они реально помогают Микрофронтенды имеют смысл, если: 👉 команды независимы 👉 доменные границы уже понятны 👉 части продукта можно релизить отдельно 👉 есть зрелая платформа и инфраструктура
Сначала нужны границы. Потом — микрофронтенды.
Не наоборот. Частая ошибка Команда берёт микрофронтенды как способ «разобраться с монолитом». Но если вы не можете выделить модуль внутри одного репозитория, вы не сможете нормально выделить его в отдельное приложение.
Физическое разделение не заменяет архитектурное.
Что попробовать до микрофронтендов 👉 разделить проект по фичам 👉 навести порядок в shared 👉 описать владение модулями 👉 ограничить зависимости 👉 сделать независимые релизные зоны внутри монолита
Иногда этого уже достаточно.
Главная мысль Микрофронтенды — это не лекарство от монолита.
Это способ масштабировать уже понятные границы.
Если границ нет, вы получите не распределённую архитектуру, а распределённый беспорядок.

Repost from xCode Journal
💻 Гений создал открытую CLI-утилиту, чтобы следить за блокировками от РКН Она показывает, почему сайт не открывается — из-за
💻 Гений создал открытую CLI-утилиту, чтобы следить за блокировками от РКН Она показывает, почему сайт не открывается — из-за проблем сети или из-за блокировок.
«Инструмент определяет, находится ли ваше соединение в зоне блокировки RKN/TSPU — и, что более полезно, какой именно тип блокировки (отравление DNS, сброс TCP, TLS DPI на SNI или страница‑заглушка от провайдера).»
✖️ xCode Journal