

- Главная
- Каталог
- Интернет технологии
- Александр Ламков — Friendly Frontend

Александр Ламков — Friendly Frontend
Рекламирую только IT / образование / карьеру в IT / инструменты для разработчиков
Статистика канала
Полная статистикаchevron_rightdefer
, а когда он всё ломает?
Если вы используете <script>
в HTML, то рано или поздно сталкиваетесь с вопросом:
ставить defer
или нет?
Вот мой подход, отработанный на реальных проектах.
✅ Когда defer
нужен:
Если вы подключаете скрипт в <head>
и не хотите блокировать загрузку HTML:
<head>
<script src="./scripts/main.js" defer></script>
</head>
{}
В этом случае скрипт:
– загрузится параллельно
– выполнится после полной загрузки HTML
– выполнится в том порядке, в котором идёт в коде
Это особенно удобно для собственных скриптов, которые зависят от DOM (document.querySelector()
и т.п.)
❌ Когда defer
не нужен (и даже вреден)
Если подключаете стороннюю библиотеку, от которой зависит ваш код:
<!-- Не делаю так -->
<script src="./scripts/libs/some-lib.min.js" defer></script>
<script src="./scripts/main.js" defer></script>
{}
Так можно словить гонку: библиотека не успеет выполниться, main.js
начнёт работать раньше — и пойдут ошибки.
Я делаю так:
<script src="./scripts/libs/some-lib.min.js"></script>
<script type="module" src="./scripts/main.js"></script>
{}
Так библиотека точно будет доступна в момент запуска логики.
🙃 Когда defer
бессмысленен
Если вы используете type="module"
:
<script type="module" src="./scripts/main.js"></script>
{}
Модули по умолчанию:
– загружаются асинхронно
– не блокируют парсинг
– выполняются после загрузки документа
Добавлять defer
не нужно — браузер просто его проигнорирует.
📌 Вывод
defer
— это полезный инструмент, но с нюансами.
Он отлично подходит для ваших скриптов в <head>
, но может навредить, если вы подключаете библиотеки, от которых зависит логика.
❓ А вы как подключаете скрипты — через defer
, type="module"
, или всё ещё кладёте всё перед </body>
?
#html #javascript #оптимизация #совет_новичкам⚡ 24 октября пройдёт IX конференция СберУниверситета «Больше чем обучение». Тема года — Homo cogitans (человек думающий). Обсудим, какое мышление помогает не просто адаптироваться, а задавать направление в AI-эпоху.
✔️ Как развивать интеллект и социальный капитал?
✔️ Как избежать «эффекта единомыслия» и научить команды думать вместе
✔️ Как поддерживать когнитивные навыки всю жизнь?
В программе — дискуссии, выступления, открытые интервью, выставки и нетворкинг. Формат — очно и онлайн. Регистрация открыта!
Иногда className в React (JSX) превращается в кашу из тернарников и логических операторов.
Особенно когда нужно применить стили по условию:
<div
className={`block ${isActive ? 'is-active' : ''}`}
/>
📦 В таких случаях на помощь приходит библиотека classNames.
Она делает код чище и понятнее:
import classNames from 'classnames'
<div
className={classNames('block', {
'is-active': isActive,
})}
/>
Или же можно ещё проще:
<div
className={classNames('block',
isActive && 'is-active',
)}
/>
– читается с первого взгляда
– условные классы — как на ладони
– удобно комбинировать строки и объекты (куча вариаций синтаксиса на любой вкус)
– легче комментировать код для дебага (в кавычках-бэктиках это делать мягко говоря некомфортно)
Альтернатива — clsx. Почти то же самое, только легче весит.
Ну и неожиданный для меня факт – за последние годы популярность либы clsx кратно обогнала classNames (см. скрин).
А ты используеш classNames или clsx или всё ещё пишешь тернарники? Делись в комментах 👇
#совет_новичкам
Неважно, сколько у тебя лет опыта. Иногда читаешь чужой комментарий — и внутри что-то сжимается:
«А может, я вообще всё не так делаю?»
«Почему так резко?»
«Блин, теперь думают, что я тупой»
Даже если тебе просто поправили
let
на const
.Раньше я загонялся. Сейчас — реже. Вот как я научился переводить фидбек в пользу, даже если он бьёт по самолюбию.
Если что-то задело — не отвечаю сразу.
Часто спустя 10 минут понимаю: человек просто торопился, неудачно сформулировал, не знал контекста.
Не всегда дело в тоне. Иногда — в моём состоянии.
Иногда за сухим «можно лучше» — реально дельный поинт.
А за вежливым «мне кажется, можно обсудить» — полная ерунда.
Я тренируюсь отделять содержание от упаковки.
Круто, когда и то, и то ок. Но если нет — беру главное.
Он не определяет меня.
Он указывает точку роста. И если он конструктивный — это шанс стать лучше.
Если нет — просто отбрасываю. Не каждый комментарий достоин внимания.
📌 Вывод
Фидбек может задеть. Это нормально.
Главное — не прятаться, не огрызаться и не впадать в «я бесполезен».
А научиться принимать пользу и отбрасывать мусор — спокойно и с уважением к себе.
❓ А как вы справляетесь с жёстким фидбеком? Есть свои правила?
#softskills #совет_новичкам
Разделяем To Do List на части: форма, поле ввода, кнопка, счётчик, список задач. Объясняю, что такое компонент в React и как правильно выносить верстку. Никакой логики — только структура и чистый интерфейс. Готовим фундамент, прежде чем пойдём дальше.
#анонс_видео #react #react_курс
Подкаст от Cloud.ru, для меня это уже второй опыт. Чувствовал себя заметно увереннее, чем в первый раз, и кайфанул от формата: просто живая беседа без лишнего официоза.
Буду рад, если глянете и напишете своё мнение
autocomplete="one-time-code"
в <input>
позволяет браузеру самостоятельно подставить код из СМС в форму.
Но бывает, что код не подставляется, и пользователь всё равно вручную копирует его из СМС.
Выглядит как баг, но причина не в HTML.
Проблема чаще всего — в тексте самой СМС-ки, которую отправляет сервер.
💬 Вот как я это объясняю бэкендерам или тимлиду, чтобы мы реально улучшили UX:
Нужно, чтобы СМС с кодом соответствовала спецификации SMS OTP. Это позволит браузеру на телефоне сам подставить код в нужное поле. Без этого наша фича с autocomplete="one-time-code" не сработает.💌 Что должно быть в СМС Вот пример правильного СМС:
Код подтверждения: 748291
@mywebsite.com #748291
{}
Браузеры смотрят именно на строку с доменом и кодом. Она должна быть внизу, в таком формате:
• @домен_сайта
(тот, где открыта форма)
• #код
— должен совпадать с тем, что нужно ввести
Без этой строки — браузер не понимает, куда и что подставлять.
❗️ Что делать фронтендеру
– Не молчать: сказать, что фича на фронте готова, но ей нужен “триггер” в СМС
– Дать конкретный пример формата (как выше)
– Скинуть ссылку на официальную документацию (например, web.dev/articles/sms-otp-form)
– Помочь проверить: откройте форму на HTTPS-домене с телефона, вызовите СМС и проверьте автоподстановку
📌 Вывод
Даже если ты не отвечаешь за формат СМС сам, ты можешь повлиять на то, чтобы браузер автоматически подставлял код — просто объяснив коллегам, как это работает.
❓ А у вас уже были такие ситуации, когда всё с фронта настроено, а в итоге UX всё равно ломается из-за неочевидных мелочей?
#html #ux #коммуникация #совет_новичкамРазбираем HTML/CSS/JS/TS/React — честно, по делу и чуть-чуть больно
UPD: Трансляция окончена. Спасибо всем!
Статистика
Отзывы канала
- Добавлен: Сначала новые
- Добавлен: Сначала старые
- Оценка: По убыванию
- Оценка: По возрастанию
Каталог Телеграм-каналов для нативных размещений
Александр Ламков — Friendly Frontend — это Telegam канал в категории «Интернет технологии», который предлагает эффективные форматы для размещения рекламных постов в Телеграмме. Количество подписчиков канала в 4.6K и качественный контент помогают брендам привлекать внимание аудитории и увеличивать охват. Рейтинг канала составляет 13.1, количество отзывов – 1, со средней оценкой 5.0.
Вы можете запустить рекламную кампанию через сервис Telega.in, выбрав удобный формат размещения. Платформа обеспечивает прозрачные условия сотрудничества и предоставляет детальную аналитику. Стоимость размещения составляет 4195.8 ₽, а за 2 выполненных заявок канал зарекомендовал себя как надежный партнер для рекламы в TG. Размещайте интеграции уже сегодня и привлекайте новых клиентов вместе с Telega.in!
Вы снова сможете добавить каналы в корзину из каталога
Комментарий