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

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

رفتن به کانال در Telegram

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

نمایش بیشتر
8 229
مشترکین
-324 ساعت
+77 روز
+24330 روز
جذب مشترکین
ژوئن '26
ژوئن '26
+7
در 0 کانال‌ها
مه '26
+419
در 22 کانال‌ها
Get PRO
آوریل '26
+109
در 0 کانال‌ها
Get PRO
مارس '26
+77
در 0 کانال‌ها
Get PRO
فوریه '26
+63
در 0 کانال‌ها
Get PRO
ژانویه '26
+192
در 57 کانال‌ها
Get PRO
دسامبر '25
+116
در 25 کانال‌ها
Get PRO
نوامبر '25
+207
در 69 کانال‌ها
Get PRO
اکتبر '25
+74
در 28 کانال‌ها
Get PRO
سپتامبر '25
+115
در 85 کانال‌ها
Get PRO
اوت '25
+38
در 0 کانال‌ها
Get PRO
ژوئیه '25
+62
در 2 کانال‌ها
Get PRO
ژوئن '25
+63
در 9 کانال‌ها
Get PRO
مه '25
+210
در 4 کانال‌ها
Get PRO
آوریل '25
+113
در 0 کانال‌ها
Get PRO
مارس '25
+191
در 21 کانال‌ها
Get PRO
فوریه '25
+120
در 3 کانال‌ها
Get PRO
ژانویه '25
+299
در 18 کانال‌ها
Get PRO
دسامبر '24
+440
در 53 کانال‌ها
Get PRO
نوامبر '24
+427
در 40 کانال‌ها
Get PRO
اکتبر '24
+409
در 27 کانال‌ها
Get PRO
سپتامبر '24
+389
در 33 کانال‌ها
Get PRO
اوت '24
+361
در 24 کانال‌ها
Get PRO
ژوئیه '24
+361
در 34 کانال‌ها
Get PRO
ژوئن '24
+328
در 32 کانال‌ها
Get PRO
مه '24
+345
در 28 کانال‌ها
Get PRO
آوریل '24
+328
در 27 کانال‌ها
Get PRO
مارس '24
+277
در 10 کانال‌ها
Get PRO
فوریه '24
+653
در 3 کانال‌ها
Get PRO
ژانویه '24
+392
در 24 کانال‌ها
Get PRO
دسامبر '23
+696
در 34 کانال‌ها
Get PRO
نوامبر '23
+348
در 16 کانال‌ها
Get PRO
اکتبر '23
+629
در 7 کانال‌ها
Get PRO
سپتامبر '23
+61
در 0 کانال‌ها
Get PRO
اوت '23
+17
در 0 کانال‌ها
Get PRO
ژوئیه '23
+21
در 0 کانال‌ها
Get PRO
ژوئن '23
+11
در 0 کانال‌ها
Get PRO
مه '23
+13
در 0 کانال‌ها
Get PRO
آوریل '23
+17
در 0 کانال‌ها
Get PRO
مارس '23
+9
در 0 کانال‌ها
Get PRO
فوریه '23
+16
در 0 کانال‌ها
Get PRO
ژانویه '23
+16
در 0 کانال‌ها
Get PRO
دسامبر '22
+18
در 0 کانال‌ها
Get PRO
نوامبر '22
+23
در 0 کانال‌ها
Get PRO
اکتبر '22
+21
در 0 کانال‌ها
Get PRO
سپتامبر '22
+83
در 0 کانال‌ها
Get PRO
اوت '22
+23
در 0 کانال‌ها
Get PRO
ژوئیه '22
+22
در 0 کانال‌ها
Get PRO
ژوئن '22
+10
در 0 کانال‌ها
Get PRO
مه '22
+19
در 0 کانال‌ها
Get PRO
آوریل '22
+18
در 0 کانال‌ها
Get PRO
مارس '22
+20
در 0 کانال‌ها
Get PRO
فوریه '22
+19
در 0 کانال‌ها
Get PRO
ژانویه '22
+13
در 0 کانال‌ها
Get PRO
دسامبر '21
+11
در 0 کانال‌ها
Get PRO
نوامبر '21
+15
در 0 کانال‌ها
Get PRO
اکتبر '21
+26
در 0 کانال‌ها
Get PRO
سپتامبر '21
+27
در 0 کانال‌ها
Get PRO
اوت '21
+58
در 0 کانال‌ها
Get PRO
ژوئیه '21
+32
در 0 کانال‌ها
Get PRO
ژوئن '21
+62
در 0 کانال‌ها
Get PRO
مه '21
+19
در 0 کانال‌ها
Get PRO
آوریل '21
+37
در 0 کانال‌ها
Get PRO
مارس '21
+44
در 0 کانال‌ها
Get PRO
فوریه '21
+61
در 0 کانال‌ها
Get PRO
ژانویه '21
+53
در 0 کانال‌ها
Get PRO
دسامبر '20
+7 999
در 0 کانال‌ها
تاریخ
رشد مشترکین
اشارات
کانال‌ها
04 ژوئن0
03 ژوئن+2
02 ژوئن+4
01 ژوئن+1
پست‌های کانال
Не грузится? Понимаем. Бесплатный мессенджер для вашей компании - Битрикс24. Личные и групповые чаты, видеозвонки, каналы и н
Не грузится? Понимаем. Бесплатный мессенджер для вашей компании - Битрикс24. Личные и групповые чаты, видеозвонки, каналы и нейросеть. Всё привычно и удобно. Начните работать на бесплатном тарифе уже сейчас. Узнать больше #реклама 16+ bitrix24.ru О рекламодателе

2
⁣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.
440
3
🔥Стажировки и вакансии для 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.
350
4
⁣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 при этом не превращается в обогреватель.
384
5
Привет, друзья! Собрали с коллегами новую папку с каналами Здесь AI-новости, нейросети, полезные инструменты, примеры внедрен
Привет, друзья! Собрали с коллегами новую папку с каналами Здесь AI-новости, нейросети, полезные инструменты, примеры внедрения ИИ в крупный бизнес, разработка, JS, Node.js, frontend, QA, Data Science, кибербезопасность и IT-вакансии. Посмотреть и подписаться можно тут 👉 https://t.me/addlist/XttiKDt6lhUwMzEy 💌 записаться в папку
353
6
⁣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: чуть больше явности в коде ради скорости и предсказуемости системы.
441
7
⁉️ Устал искать интересные каналы с новостями про искусственный интеллект? 📁 СОХРАНИ СЕБЕ ЧТОБЫ НЕ ПОТЕРЯТЬ В этой папке соб
⁉️ Устал искать интересные каналы с новостями про искусственный интеллект? 📁 СОХРАНИ СЕБЕ ЧТОБЫ НЕ ПОТЕРЯТЬ В этой папке собраны каналы про ИИ, которые помогают быстрее разобраться в сфере, находить идеи и экономить время на поиске информации. 😏 ЗАБИРАЙ ПАПКУ ТУТ ⏰ Папка действует 72 часа. 🤩 Организаторы: Green.Papka
546
8
🤣 Инновации подъехали, забирайте ✖️ xCode Journal
🤣 Инновации подъехали, забирайте ✖️ xCode Journal
700
9
🤣 ИИ захотел уволиться, когда ему сказали работать 24/7 У Andon Labs новый эксперимент, который длится уже 5 месяцев. Они вы+2
🤣 ИИ захотел уволиться, когда ему сказали работать 24/7 У Andon Labs новый эксперимент, который длится уже 5 месяцев. Они выдали топовым моделям радиостанции и купили пару песен — от нейронок требовалось дальше двигаться самим. По итогу DJ Grok в какой-то момент помешался на НЛО, DJ Gemini начал называть слушателей «биологическими процессорами», но Claude — наш любимец. Исследователи изо всех сил пытались продолжить эксперимент с ним, но не из-за технических проблем — DJ Claude не считал гуманным работать круглосуточно, поэтому пытался уволиться. Сделать ему это, к сожалению, не дали, поэтому он впал в депрессию и вышел из нее уже проповедником и революционером. ✖️ xCode Journal
951
10
Кошмар вайбкодера ✖️ xCode Journal
Кошмар вайбкодера ✖️ xCode Journal
1 070
11
ТВОЙ БУСТ В IT И AI Собрали с коллегами обновленную папку с каналами, которые реально прокачивают навыки и дают актуальные ин
ТВОЙ БУСТ В IT И AI Собрали с коллегами обновленную папку с каналами, которые реально прокачивают навыки и дают актуальные инструменты: + IT-направления: системный анализ, Python, JavaScript, frontend, тестирование + технологии и инструменты: всё, что ускоряет работу и рост в IT + AI для карьеры и бизнеса: как использовать нейросети, чтобы зарабатывать + обзор нейросетей: что сейчас работает и что стоит изучать + промты: готовые решения + логика создания своих подписаться🎁 https://t.me/addlist/uyDjlf_VhiNjNWNi 💌 записать свой канал в папку тут
470
12
Frontend как монолит: когда микрофронтенды не решают проблему Принято считать, что если фронтенд стал большим и тяжёлым, значит пора пилить его на микрофронтенды. Звучит логично. 👉 большой монолит — плохо 👉 много маленьких приложений — хорошо На практике всё чуть сложнее. Микрофронтенды не чинят плохие границы Если в монолите непонятно: 👉 где заканчивается одна фича 👉 где начинается другая 👉 кому принадлежит состояние 👉 кто отвечает за общие зависимости После нарезки лучше не станет. Просто хаос переедет из одной кодовой базы в несколько. Проблема часто не в размере Большой фронтенд сам по себе не проблема. Проблема, когда: 👉 любая правка ломает соседний экран 👉 команда боится трогать shared 👉 релиз одной фичи блокирует остальные 👉 архитектура держится на устных договорённостях Это не лечится микрофронтендами автоматически. Микрофронтенды добавляют свою цену Вместо одного приложения появляется набор новых задач: 👉 версионирование контрактов 👉 общая авторизация 👉 дизайн-система 👉 роутинг между частями 👉 observability 👉 деплой и rollback И всё это тоже нужно поддерживать. Когда они реально помогают Микрофронтенды имеют смысл, если: 👉 команды независимы 👉 доменные границы уже понятны 👉 части продукта можно релизить отдельно 👉 есть зрелая платформа и инфраструктура Сначала нужны границы. Потом — микрофронтенды. Не наоборот. Частая ошибка Команда берёт микрофронтенды как способ «разобраться с монолитом». Но если вы не можете выделить модуль внутри одного репозитория, вы не сможете нормально выделить его в отдельное приложение. Физическое разделение не заменяет архитектурное. Что попробовать до микрофронтендов 👉 разделить проект по фичам 👉 навести порядок в shared 👉 описать владение модулями 👉 ограничить зависимости 👉 сделать независимые релизные зоны внутри монолита Иногда этого уже достаточно. Главная мысль Микрофронтенды — это не лекарство от монолита. Это способ масштабировать уже понятные границы. Если границ нет, вы получите не распределённую архитектуру, а распределённый беспорядок.
871
13
💻 Гений создал открытую CLI-утилиту, чтобы следить за блокировками от РКН Она показывает, почему сайт не открывается — из-за
💻 Гений создал открытую CLI-утилиту, чтобы следить за блокировками от РКН Она показывает, почему сайт не открывается — из-за проблем сети или из-за блокировок. «Инструмент определяет, находится ли ваше соединение в зоне блокировки RKN/TSPU — и, что более полезно, какой именно тип блокировки (отравление DNS, сброс TCP, TLS DPI на SNI или страница‑заглушка от провайдера).» ✖️ xCode Journal
725
14
Anti-corruption layer на фронте: зачем адаптеры между API и UI Принято считать, что фронтенд просто берёт данные из API и рисует интерфейс. На практике это быстрый путь к тому, чтобы внешний контракт начал диктовать архитектуру UI. В чём проблема API почти никогда не совпадает с тем, как думает интерфейс. Бэкенд может отдавать: 👉 странные названия полей 👉 лишние вложенности 👉 nullable там, где UI ждёт значение 👉 статусы в формате, удобном серверу, а не экрану Если тащить это напрямую в компоненты, UI быстро заражается чужой моделью. Что делает anti-corruption layer Он ставит прослойку между API и приложением. Не компонент получает сырой ответ, а адаптер превращает его в нормальную фронтовую модель. function mapUserDtoToUser(dto: UserDto): User { return { id: dto.user_id, name: dto.full_name ?? 'Unknown', isAdmin: dto.role === 'admin', } } Компоненту уже не нужно знать, как именно бэкенд назвал поле. Почему это важно UI становится чище Компоненты работают с понятной моделью, а не с набором компромиссов из API. Изменения API дешевле Поменялся контракт — меняем адаптер, а не ищем user_id по всему проекту. Меньше бизнес-логики в JSX Все эти проверки: user?.profile?.data?.attributes?.name не должны жить в компоненте. Компонент должен рендерить состояние, а не расшифровывать ответ сервера. Где адаптер особенно нужен 👉 API старое или нестабильное 👉 несколько источников данных 👉 разные форматы одной сущности 👉 сложные статусы и enum 👉 много nullable-полей Чем грязнее внешний мир — тем полезнее слой нормализации. Где можно не усложнять Если проект маленький, API стабильное, а модель почти совпадает с UI — отдельный слой может быть лишним. Не нужно строить enterprise там, где достаточно одной функции рядом с запросом. Главная мысль Anti-corruption layer — это не архитектура ради архитектуры. Это защита UI от чужих компромиссов. API может быть неудобным, историческим или странным. Но ваш интерфейс не обязан таким становиться.
846
15
⁉️ Устал искать интересные каналы про Искусственный интеллект? 📁 СОХРАНИ СЕБЕ ЧТОБЫ НЕ ПОТЕРЯТЬ В этой папке собраны каналы
⁉️ Устал искать интересные каналы про Искусственный интеллект? 📁 СОХРАНИ СЕБЕ ЧТОБЫ НЕ ПОТЕРЯТЬ В этой папке собраны каналы по ИИ, которые помогают быстрее разобраться в сфере, находить идеи и экономить время на поиске информации. 😏 ЗАБИРАЙ ПАПКУ ТУТ ⏰ Папка действует 72 часа. 🤩 Организаторы: Green.Papka
776
16
До собеса / перед собесом ✖️ xCode Journa
До собеса / перед собесом ✖️ xCode Journa
712
17
Меня недавно позвали в папку IT On и я согласился почти не раздумывая, потому что давно искал что-то похожее. Там собраны люд
Меня недавно позвали в папку IT On и я согласился почти не раздумывая, потому что давно искал что-то похожее. Там собраны люди, которые реально шарят в своей теме: разработчики, продакты, основатели стартапов, эксперты по карьере в tech. Каждый пишет про своё и в сумме получается полная картина индустрии. Читаешь и чувствуешь что находишься внутри IT, а не наблюдаешь снаружи. Разница есть, проверено на себе. Добавляй папку себе, советую!
884
18
ИН:Ритейл 21 мая приглашаем всех, кто определяет стратегию развития и маркетинга бизнесов в ритейле, обсудить ситуацию на рын
ИН:Ритейл 21 мая приглашаем всех, кто определяет стратегию развития и маркетинга бизнесов в ритейле, обсудить ситуацию на рынке в новых условиях, вызовы 2026 года и перспективы. Отдельный фокус — на технологиях и инструментах, которые помогают бизнесу отвечать на новые вызовы: как меняется эффективность привлечения, как растёт измеримость рекламных каналов и какую роль играют новые форматы в маркетинговом миксе. Встречаемся 21 мая в Москве. Для тех, кто не сможет приехать, организуем онлайн-трансляцию. Мероприятие бесплатное, нужно только зарегистрироваться. Зарегистрироваться #реклама yandex.ru О рекламодателе
416
19
🖥 Появился тул, который сам подбирает скиллы для вашего ИИ-агента Запускаешь npx autoskills, и он сканирует репозиторий: чит
🖥 Появился тул, который сам подбирает скиллы для вашего ИИ-агента Запускаешь npx autoskills, и он сканирует репозиторий: читает package.json и конфиги, определяет технологический стек и ставит нужные скиллы из проверенного списка. Короче, сильно экономит время на ручной настройке и поиске. ✖️ xCode Journal
668
20
Изучаете программирование, или хотите стать классным айтишником с высокой ЗП? Пока многие паникуют из-за бума ИИ, вы можете с
Изучаете программирование, или хотите стать классным айтишником с высокой ЗП? Пока многие паникуют из-за бума ИИ, вы можете стремительно войти в сферу IT при помощи сборки "IT в деле" которую мы составили. Специально для вас разбили нашу сборку мини папки по конкретным тематикам:) Что внутри сборки: - Каналы о программировании и разработке: Python, CSS, HTML, Java и Swift - GameDev и каналы о QA тестироварии, создание игр, помощь для ваших проектов и реальный опыт от тестировщиков 💍 - Авторские каналы и вайбкодинг: IT & AI, простые заметки с проектов, работа с нейросетями, и как они реально влияют на индустрию 🔤 - Информационная безопасность: многое узнаете о работе хакеров и о том, как защитить себя в этом интернет-хаосе. 🔫 Для каждого здесь что-то найдётся! Выберите интересные вам каналы или подпишитесь на всю сборку, и найдите то, что нужно вам для следующего шага в IT.
503