Александр Ламков — Friendly Frontend (@friendlyfrontend) के नवीनतम पोस्ट टेलीग्राम पर

Александр Ламков — Friendly Frontend टेलीग्राम पोस्ट

Александр Ламков — Friendly Frontend
{ Frontend-разработка } простыми словами

Авторский канал с полезными материалами по фронтенду и новостями ютуб-канала

💬 Чат нашего коммьюнити:
https://t.me/friendlyFrontendChat

📺 YouTube:
https://www.youtube.com/@AleksanderLamkov
2,677 सदस्य
61 तस्वीरें
1 वीडियो
अंतिम अपडेट 11.03.2025 07:37

समान चैनल

Владилен Минин
40,652 सदस्य
Archakov Blog
12,483 सदस्य
Ilnur Ryazhapov Frontend
2,388 सदस्य

Александр Ламков — Friendly Frontend द्वारा टेलीग्राम पर साझा की गई नवीनतम सामग्री

Александр Ламков — Friendly Frontend

11 Mar, 06:04

530

🥺 React — фреймворк, не библиотека!

* и про подобные нюансы терминологии во фронтенде *

😱 Я всё чаще стал замечать, как разработчики любят на пустом месте спорить о неточности определения каких-либо терминов. Ну а я как создатель образовательного контента должен особенно уделять внимание таким моментам, иначе в комментариях обязательно найдётся умный человек, который докажет мне, что я дурак.

Собрал список любимых противоречивых терминов из мира фронтенда.

1) React — библиотека, а не фреймворк!

Фреймворком может называться, например, Angular, т. к. он жёстко контролирует структуру приложения, а React напротив — позволяет написание кода без особых строгих правил.

Я же считаю, что React можно назвать фреймворком, так как голый React сам по себе не использует примерно никто. Всегда идёт комбинация из стека Vite, TS, Router, Redux, Query, Next, FSD и много-много других штукенций. Вся это экосистема хоть и состоит из разрозненных кубиков, но собранные воедино они смотрятся вполне как самый настоящий фреймворк.

2) Параметры и аргументы функций — не одно и то же!

function fn(ehehe) {}
ehehe здесь — параметр

fn(ehehe)
А тут ehehe — аргумент

У меня появился бзик на этот счёт при составлении сценариев к своим урокам, но кажется, что всем плевать на это разграничение, ибо из контекста зачастую и так понятно, о чём идёт речь.

3) Элемент, тег, узел (нода) — не одно и то же! А до кучи ещё и давайте упомянем понятия БЭМ-блок и БЭМ-элемент...

<div> в HTML-коде
— тег и элемент

div между <> в HTML-коде
— имя тега

const divElement: HTMLDivElement = document.querySelector('div')
— в JS (TS) коде можно назвать и элементом и узлом

И про БЭМ:
<button class="button">
<span class="button__label">Click</span>
</button>


Здесь:
HTML-элемент с классом button — БЭМ-блок
HTML-элемент с классом button__label — БЭМ-элемент

Я полностью исключил из своего фронтендерско-объяснятельского лексикона слово "узел" (нода) и стараюсь по минимуму использовать слово "тег". Считаю, что словом "элемент" во фронтенде можно указать на любой кирпичик и в HTML-разметке и в DOM-дереве в контексте JS-кода. А вот когда в объяснении мне нужно пояснить что-то по методологии БЭМ, приходится чётко разделять понятия HTML-элемент и БЭМ-элемент (надеюсь, что хоть кому-то это разграничение в моих объяснениях помогло лучше усвоить материал).

🙂 И вдогонку ещё пару неочевидных терминов:

@media (width < 1024px) {}
— медиазапрос, медиавыражение, директива media и at-rule правило в одном флаконе

const obj = { wow: 'bla' }
wow здесь можно назвать и свойством и полем и ключом, а ещё пропом (от слова property)

☺️ Ну а в конце то концов, какая разница, как обзывать ту или иную "штуку", если любая вариация термина будет понятна любому опытному разработчику? Ладно я, контент-мейкер, должен ещё заморачиваться, чтобы даже нулевой вкатун меня понял, но когда разработчик объясняет другому разработчику, то неужели так критично будет назвать React библиотекой или сказануть что-то вроде "этот тег div в DOM-дереве"?

😏 А у вас есть какие-то бзики по поводу терминов во фронтенд-разработке? Быть может есть что-то, что вас бесит в объяснениях других? Поделитесь в комментариях, будет интересно обсудить!

#рефлексия_о_фронтенде #совет_новичкам
Александр Ламков — Friendly Frontend

07 Mar, 16:32

1,508

🖕 CSS Nesting — новая фича нативного CSS

➡️ https://youtube.com/shorts/ACFODxLDchc

#фронтенд_новинка
Александр Ламков — Friendly Frontend

26 Feb, 16:43

3,030

🔢 Многоколоночная сетка наоборот — свойство column-count и break-inside avoid-column

📺 [Смотреть на YouTube]

📝 [Смотреть на Дзен]

📺 [Смотреть на Rutube]

#фронтенд_лайфхак
Александр Ламков — Friendly Frontend

25 Feb, 06:04

2,460

😐 Где и как практиковаться фронтенд-разработчику?

Вообще я удивлен, что этот вопрос часто возникает у стартующих обучение в этой сфере деятельности.

😊 Фронтенд — это разработка интерфейсов. То есть это верстка совокупности компонентов с помощью HTML & CSS, затем последующее оживление сценариев взаимодействия пользователя с интерфейсом.

🥺 Это если смотреть на нашу сферу поверхностно. Под капотом есть еще задачи по совокуплению стека, чтобы проект в принципе завелся, взаимодействие с бэкендом для наладки отправки и получения данных посредством выполнения запросов к серверу, вопросы перфоманса и безопасности приложения, анализ и устранение багов через всевозможные тулзы и многое-многое другое.

🥺 Но всё это — нюансы, о которых новичку задумываться рано. Сперва практикуемся по базе — HTML, CSS и JS.

По HTML & CSS практика одна — вёрстка чего-либо по макету / картинке / салфетке / галлюцинациям фантазиям из головы. Ищете для Figma макет (в гугле, телеграмм-каналах, в разделе Community самого приложения фигмы), а затем пытаетесь посредством написания разметки и стилей воссоздать что-то из макета. При том не обязательно пытаться сверстать макет целиком, от левого верхнего до правого нижнего угла страницы. Начните с самых маленьких компонентов, с кнопочек, полей ввода, затем переходите к карточкам товаров / категорий / новостей, менюшкам, затем переходите к верстке целых секций, а в финале — пробуйте все комбинировать в полноценную страницу сайта.

С JavaScript дела обстоят сложнее. Изучение этой технологии для фронтендера делится ровно на 2 внушительные части — базовый синтаксис (выражения и инструкции, переменные и типы данных, условия, циклы, функции и т. п.) и работа языка в браузерном окружении (DOM, BOM, обработка пользовательских событий, запросы к серверу, хранение данных в браузере и т. д).

Отрабатывать базовый JS можно на задачках codewars уровня Q8-Q7. Так вы получите как минимум практику с переменными, функциями, условиями, циклами, массивами и их методами, с объектами.

Браузерный же JS — это исключительно задачи с самопроверкой. Берёте любой макет (да-да, вот прям абсолютно любой) и думаете, в каких местах интерфейса можно применить JavaScript. Нашли кнопочку а-ля «бургер»? Клик по ней должен открыть какое-то изначально закрытое меню. Видите на макете форму? Вот вам шанс и написать валидацию вводимых пользователем данных и масочку прикрутить, а для любителей хардкора — сделайте кастомный селект и поле выбора даты с календарем 😈Я в принципе не встречал ещё макетов веб-приложений, где нельзя нафантазировать хотя бы десяток JS-модулей.

📖 Как видите, найти фронтендеру практику — совсем не проблема. Было бы желание. Ну а если совсем в голову ничего не приходит — поищите какие-нибудь тестовые задания для фронтендеров или обратитесь к более опытным в разработке товарищам.

А как практикуетесь во время обучения вы? Поделитесь в комментариях 🙂

#совет_новичкам
Александр Ламков — Friendly Frontend

20 Feb, 11:02

2,552

💫 Чтобы выделиться среди других кандидатов и получить оффер, нужно пройти техническое собеседование если не безупречно, то хотя бы очень хорошо.

А чтобы избежать ошибок и знать, как ответить на все вопросы, очень важна тщательная подготовка.

💡 Друзья, хочу поделиться с вами сервисом, который показался мне очень полезным.

Солвит - это онлайн-тренажер для подготовки к техническим собеседованиям, с базой в 3000 вопросов и возможностью решать задачи на код прямо на сайте с моментальной проверкой!

⭐️ задачи на код можно решать ПРЯМО НА САЙТЕ С МОМЕНТАЛЬНОЙ ПРОВЕРКОЙ
⭐️ крутая фишка, что в каждом тематическом разделе с вопросами указано, в какие компании что спрашивают
⭐️ есть раздел с мок-собеседованиями, то есть можете тренироваться проходить техсобес хоть миллион раз
⭐️ а еще сервис создает комьюнити айтишников, где можно найти себе стади-бадди или ментора

Переходи по ссылке и тренируй лайв-кодинг прямо сейчас!

🔥 А по моему промокоду "Lamkov" до 10 марта доступна скидка 20% на первый месяц подписки на сервис!
Александр Ламков — Friendly Frontend

19 Feb, 14:22

2,905

👀 HTML секреты mailto ссылки — параметры subject, body, cc, bcc

📺 [Смотреть на YouTube]

📝 [Смотреть на Дзен]

📺 [Смотреть на Rutube]

#фронтенд_лайфхак
Александр Ламков — Friendly Frontend

18 Feb, 06:02

2,375

😡 Почему мне противен Tailwind [Часть 2 / 2]

[ Ссылка на первую часть => тык ]

Про преимущества Tailwind.

😏 Чем там кроют разработчики либы?

Прежде всего бахвалятся малым весом CSS-файла на выходе. Да, это факт. Если вы будете писать стили классическим способом (или же с помощью препроцессора стилей), ну, то есть, обычные человекопонятные имена классов, то вы вряд ли уложитесь в такое же количество байт информации, в которое получится ужаться при использовании в проекте Tailwind.

🥺 Но ОЛËУ, РАЗРАБОТЧИКИ ИЗ УТОПИИ, СПУСТИТЕСЬ К НАМ.

Вы вот точно уверены, что главная проблема современных сайтов на просторах сети — вес CSS-файлов?

🥱 Нет, ну бывают такие сайты, бывают. Бывают проекты, где за -дцать лет было пять редизайнов и сто пять фронтендеров, каждый из которых добавил свой модуль стилей, лишь бы не разбираться в ранее написанном коде.

Но даже в таких проектах вес CSS — не корень всех бед.

🥺 На моей практике, когда я производил аудит веб-приложений заказчиков, 9/10 недугов сайтов — неоптимальная работа с медиаконтентом (здравствуй, фоновая картинка в 4К разрешении весом 10 мегабайт) и тонна лишних скриптов (здрасьте, либа с function getSum(a, b) { return a + b} и ещё тысяча подобных на один проект).

Вес стилей, который предлагают оптимизировать авторы Tailwind, безусловно, важен. Но важен он только для тех проектов, где разобрались со всеми остальными первостепенными проблемами, где перевели медиаконтент в современный легковесный формат и пережали его оптимизаторами без визуальной потери качества, где вместо подключения фреймворк-либы на пару мегабайт ради одной лишь функции использовали нативное решение на современном JS в пару строчек, где в целом настроили сборщик проекта и провели тотальный аудит всего и вся — от первой до последней строчки загружаемых браузером ресурсов при открытии веб-страницы.

Второе преимущество Tailwind со слов авторов — быстрое написание кода. Ой, не лукавьте, я напишу на CSS что угодно быстрее, чем адепт Tailwind, пока он будет штудировать документацию в поисках того самого селектора before:lg:h-[360px].

😈 Я может какой-то нетипичный разработчик, но даже с учётом того, что я искренне люблю поверстать, написание имён классов в разметке и CSS-селекторов с правилами — даже не десятая часть моего рабочего времени. Большая часть раб-дня уходит на анализ новых задач от менеджера и поиск причин багов в коде. Tailwind "решает" не самую приоритетную и многозатратную по человекочасам задачу. Убеждён, что впихивание CSS классов от Tailwind себе в голову — отнимет у меня больше времени, чем я потенциально смогу сэкономить.

Когда-нибудь я, возможно, и поменяю своё мнение, но пока я лучше постою в сторонке и посмотрю, как у сообщества будет меняться (и будет ли) отношение к этому инструменту.

🙂 А что думаете вы на счёт Tailwind? Использовали? Нравится? Если да, то как преодолели этап запоминания классов? Или документация либы в соседней вкладке с вами остается навечно? Поделитесь своими мыслями 🙂

#рефлексия_о_фронтенде
Александр Ламков — Friendly Frontend

16 Feb, 08:26

2,407

👋 Вернулся из Японии

Как и ожидал, страна — иной мир! Гигантская бескрайняя столица, чистейшие аккуратные улочки, повсюду толпы туристов, теснющее всё (магазины, кафе, отели), анимешные девочки-маскоты у каждого второго локального бренда…

И мой личный чеклист:
• неоднократно запутался в Токийском метро
• застал преждевременное цветение сакуры
• побывал у Фудзиямы
• погладил капибару
• слопал пирожкового Мэджикарпа и Тоторо
• спустил 5000 ¥ в лохотроне игровом автомате
• научился есть суши ненавистными палочками
• прокатился на шустром поезде «пуля»
• выпил сливочного пива в Токийском Хогвартсе
• закупился барахлом шмотьем и дешевым стимдеком
• поорал Numb на концерте ЛинкинПарка

Разумеется, мне уже хочется вернуться сюда снова. Ни одна ранее посещённая мною страна по эмоциям не сравнится со страной восходящего солнца.

💭 Не планировал писать подобное в этот канал, пробую в качестве эксперимента, вероятно, разового (не зашло — смело дизлайкайте, сделаю выводы)

Больше фоточек из путешествий и, в целом, личного, туть:
📷 https://www.instagram.com/a1rth
Александр Ламков — Friendly Frontend

12 Feb, 14:33

3,692

💎 Градиентный текст через CSS — 100% рабочий метод

📺 [Смотреть на YouTube]

📝 [Смотреть на Дзен]

📺 [Смотреть на Rutube]

#фронтенд_лайфхак
Александр Ламков — Friendly Frontend

11 Feb, 06:01

2,980

😡 Почему мне противен Tailwind [Часть 1 / 2]

Рефлексии пост. Меньше технического, больше про эмоции.

Сразу зайду с аналогии.

🤠 Вы научились читать, писать, говорить на своём родном языке. И вам это нравится. Вы получаете удовольствие от чтения книг, просмотра кино и от общения с родными и близкими. Вы получаете это удовольствие благодаря тому, что когда-то давным давно освоили базовый навык всех современных человеков — язык и речь в целом.

🥺 А теперь представьте, что внезапно читать / писать / говорить на вашем языке становится немодно, ведь есть способ гораздо «лучше» — многие вас в этом убеждают. И этот модный язык — дикий коктейль из зумерского, геймерского, возможно даже инопланетного, в общем-то, максимально неестественного для вас диалекта.

Tailwind для меня — нелепое переизобретение прекрасного CSS.

😠 Я считаю, что достаточно хорошо владею CSS и для меня он предельно прост и понятен. Я пишу его быстро, решая какие-либо задачи по разработке интерфейсов. Так же быстро я могу разобраться в чужом CSS-коде — да что там не понять то, ведь читается всё как книга. А из-за того, что у меня всё хорошо получается при работе с CSS, я получаю от взаимодействия с ним приличную порцию кайфа.

😑 А теперь к Tailwind. Пишем мало (кода), получаем много (возможностей). Ах, да, ещё в финальном приложении файлик стилей будет оптимальнее по весу. Но опустим преимущества (их разнесу в следующем посте), сейчас только про недостатки и связанные с ними мои эмоции.

Претензия номер раз.

😑 А НИКОГО НЕ СМУЩАЕТ, что Tailwind — это отдельный язык, который НАДО учить, если хочешь выполнять свою работу быстро и качественно?

Да, формально это просто библиотека CSS-селекторов, но давайте начистоту...

Класс after:dark:via-[#0141ff] — это далеко не очевидный набор букв, символов и цифр, это шифр, который надо посидеть-поразбирать, прежде чем самостоятельно написать нечто подобное, чтобы получить определенный ожидаемый очевидный результат.

Спасибо, я не хочу учить новый язык. Я и так хорошо знаю CSS.

Претензия номер два.

🥺 А НИКОГО НЕ СМУЩАЕТ, что в DevTools вкладке Elements на DOM-дерево без слёз не взглянешь?

На минуточку: копошение в девтулзах — большая часть моей (и любого фронтендера) работы.

Спасибо, я не хочу усложнять свою жизнь. Я хочу видеть перед глазами нормальные, понятные даже не-разработчику, имена классов, которые дают чёткое представление о том, к какому компоненту интерфейса относится тот или иной элемент.

Я убеждён, что адепты Tailwind искренне ненавидят CSS и вёрстку как процесс. Понять я их могу, но в их рядах меня вы никогда не увидите. Я продолжу писать качественный CSS и получать от этого удовольствие.

P. S. В следующей части разберу технические преимущества TW и расскажу, почему для меня они — пшик.

P. P. S. Выскажите своё мнение на счёт этой библиотеки в комментах, пожалуйста! 🙂

#рефлексия_о_фронтенде