Всем привет! 👋
Работая почти 10 лет в разработке, всё чаще замечаю, что многие фронтендеры приходят в профессию без формального IT-образования. Недавно наткнулась на статью, где автор — тоже без классического CS-бэкграунда — делится принципами, которые помогают ему принимать правильные решения «здесь и сейчас».
Мне, человеку с бакалавриатом и магистратурой, было особенно интересно почитать, что же он там написал 🙂
---
🧩 Про «умные» принципы, которые иногда только мешают
Автор пишет, что популярные советы вроде
YAGNI (You Aren’t Gonna Need It),
DRY (Don’t Repeat Yourself)
и «преждевременная оптимизация — корень всех зол»
звучат умно, но в реальной жизни часто создают больше путаницы.
И вот принцип, который действительно помогает ему в работе — правило трёх.
---
📌 Правило трёх
Рефакторить или оптимизировать код стоит только после того, как вы написали его три раза:
1️⃣ Первый раз — просто пишете код, который делает только то, что нужно.
2️⃣ Второй раз — появляется та же логика, и вы буквально копируете её, немного адаптируя.
3️⃣ Третий раз — у вас уже три подобные реализации, и теперь ясно, что обобщать, как упрощать и какой уровень абстракции действительно нужен.
Зачем так делать?
Потому что после трёх повторений вы уже точно знаете:
* что в логике действительно общее,
* что можно упростить,
* какой абстракции хватает,
* и не уйдёте в ненужный оверинжиниринг.
---
⚙️ Принцип «Make it work → Make it right → Make it fast»
Очень хочется оптимизировать всё сразу — но быстрый код часто менее читаемый.
Кент Бек предлагает простой порядок:
🔹 Работает? Если нет — сначала добейтесь этого.
🔹 Делает правильно? Если нет — исправьте логику, входы, поведение.
🔹 Достаточно быстро? Если нет — вот теперь можно оптимизировать.
Смысл простой: нет смысла улучшать код, который пока даже не работает или работает неправильно.
---
✔️ Как итог
Хорошие принципы помогают писать код, который:
* легко читать,
* легко понимать,
* легко изменять,
* легко тестировать.
А плохой код «плох по-разному»: слишком много ответственности, мешанина уровней абстракций, странные оптимизации, лишняя логика.
---
Ссылка на статью:
https://piccalil.li/blog/programming-principles-for-self-taught-front-end-developers/
Работая почти 10 лет в разработке, всё чаще замечаю, что многие фронтендеры приходят в профессию без формального IT-образования. Недавно наткнулась на статью, где автор — тоже без классического CS-бэкграунда — делится принципами, которые помогают ему принимать правильные решения «здесь и сейчас».
Мне, человеку с бакалавриатом и магистратурой, было особенно интересно почитать, что же он там написал 🙂
---
🧩 Про «умные» принципы, которые иногда только мешают
Автор пишет, что популярные советы вроде
YAGNI (You Aren’t Gonna Need It),
DRY (Don’t Repeat Yourself)
и «преждевременная оптимизация — корень всех зол»
звучат умно, но в реальной жизни часто создают больше путаницы.
И вот принцип, который действительно помогает ему в работе — правило трёх.
---
📌 Правило трёх
Рефакторить или оптимизировать код стоит только после того, как вы написали его три раза:
1️⃣ Первый раз — просто пишете код, который делает только то, что нужно.
2️⃣ Второй раз — появляется та же логика, и вы буквально копируете её, немного адаптируя.
3️⃣ Третий раз — у вас уже три подобные реализации, и теперь ясно, что обобщать, как упрощать и какой уровень абстракции действительно нужен.
Зачем так делать?
Потому что после трёх повторений вы уже точно знаете:
* что в логике действительно общее,
* что можно упростить,
* какой абстракции хватает,
* и не уйдёте в ненужный оверинжиниринг.
---
⚙️ Принцип «Make it work → Make it right → Make it fast»
Очень хочется оптимизировать всё сразу — но быстрый код часто менее читаемый.
Кент Бек предлагает простой порядок:
🔹 Работает? Если нет — сначала добейтесь этого.
🔹 Делает правильно? Если нет — исправьте логику, входы, поведение.
🔹 Достаточно быстро? Если нет — вот теперь можно оптимизировать.
Смысл простой: нет смысла улучшать код, который пока даже не работает или работает неправильно.
---
✔️ Как итог
Хорошие принципы помогают писать код, который:
* легко читать,
* легко понимать,
* легко изменять,
* легко тестировать.
А плохой код «плох по-разному»: слишком много ответственности, мешанина уровней абстракций, странные оптимизации, лишняя логика.
---
Ссылка на статью:
https://piccalil.li/blog/programming-principles-for-self-taught-front-end-developers/
Piccalilli
Programming principles for self taught front-end developers
The majority of us are a bunch of self taught people with rather spotty knowledge and that's fine! Kilian (also self taught) is here to share some of the computer science fundamentals you probably are missing with the aim to improve your code in the long…
👍10❤3
Это не было бы так смешно, если бы не было правдой 😄
К сожалению, многие фронты порой настолько зациклены на том, чтобы просто сделать «работающий код», что забывают о «хороших манерах» — например, о том, что не только
И вообще, помимо привычных
Я уже как-то писала пост с HTTP Code Cheatsheet — можете обратить внимание 👇
https://news.1rj.ru/str/frontenddevelopernews/60
К сожалению, многие фронты порой настолько зациклены на том, чтобы просто сделать «работающий код», что забывают о «хороших манерах» — например, о том, что не только
200 считается успешным результатом. Есть ещё 201, 204 и другие кейсы ✅И вообще, помимо привычных
200, 400, 404 и 500, существует множество других статус-кодов, которые могут значительно упростить логику на фронте и сделать API более понятным.Я уже как-то писала пост с HTTP Code Cheatsheet — можете обратить внимание 👇
https://news.1rj.ru/str/frontenddevelopernews/60
❤4
Привет! ✨
Собрала полезные материалы для фронтендеров:
1. https://bespoyasov.ru/front-not-pain/
«Фронтенд — это не больно!» — статьи о том, как фронтендеру работать без стресса: взаимодействовать с дизайнерами, бэкендерами и тестировщиками, бороться с рутиной и выгоранием, организовывать рабочий процесс.
2. https://solidbook.vercel.app/
Подробная книга о принципах SOLID. Помогает разобраться, как строить гибкую, предсказуемую и поддерживаемую архитектуру.
3. https://www.patterns.dev/vanilla/module-pattern/
Большая коллекция популярных паттернов разработки в JavaScript, объяснённых просто и визуально. В том числе модульный паттерн и многие другие.
4. https://refactor-like-a-superhero.vercel.app/ru
Практическое руководство по рефакторингу. Чёткие советы, примеры и техники, которые помогают улучшать код без боли и риска всё сломать.
5. https://www.youtube.com/playlist?list=PLaIuVNKRYUyEoKnY0UwapHPk8fEaREHPA
Подробный видеокурс по Figma. По мне часто фронтендеру не хватает этого навыка даже в базовом виде.
Собрала полезные материалы для фронтендеров:
1. https://bespoyasov.ru/front-not-pain/
«Фронтенд — это не больно!» — статьи о том, как фронтендеру работать без стресса: взаимодействовать с дизайнерами, бэкендерами и тестировщиками, бороться с рутиной и выгоранием, организовывать рабочий процесс.
2. https://solidbook.vercel.app/
Подробная книга о принципах SOLID. Помогает разобраться, как строить гибкую, предсказуемую и поддерживаемую архитектуру.
3. https://www.patterns.dev/vanilla/module-pattern/
Большая коллекция популярных паттернов разработки в JavaScript, объяснённых просто и визуально. В том числе модульный паттерн и многие другие.
4. https://refactor-like-a-superhero.vercel.app/ru
Практическое руководство по рефакторингу. Чёткие советы, примеры и техники, которые помогают улучшать код без боли и риска всё сломать.
5. https://www.youtube.com/playlist?list=PLaIuVNKRYUyEoKnY0UwapHPk8fEaREHPA
Подробный видеокурс по Figma. По мне часто фронтендеру не хватает этого навыка даже в базовом виде.
bespoyasov.ru
Фронтенд — это не больно!
Пособие для разработчиков и сочувствующих.
👍9🔥2
Forwarded from Катерина | Про Frontend
Как браузер обрабатывает <noscript> при построении DOM-дерева? 🧐
Когда браузер разбирает HTML, встречающиеся теги
1️⃣ Синхронные скрипты (
2️⃣ Асинхронные скрипты (async) агружаются параллельно с HTML, но выполняются сразу, как только файл загружен. Порядок их выполнения непредсказуем и может прервать рендеринг страницы.
3️⃣ Скрипты с defer загружаются параллельно, но выполняются после полного парсинга HTML, в том же порядке, в котором они встречаются в документе.
4️⃣ Модульные скрипты (type="module") загружаются как
5️⃣ Динамические скрипты (через document.createElement('noscript')) ведут себя как async по умолчанию.
👩🎓 Немного рекомендаций:
✔️ Используй
✔️ Для независимых скриптов (например, аналитики) используй
✔️ Минимизируй количество синхронных скриптов в
И помним, скрипты могут блокировать не только DOM, но и рендеринг страницы, влияя на скорость загрузки и пользовательский опыт, поэтому правильное использование async и defer ускоряет загрузку и рендеринг.👍
Когда браузер разбирает HTML, встречающиеся теги
<noscript> могут блокировать дальнейшее построение DOM, что влияет на производительность страницы. И вот как это работает:<noscript>, без async или defer) — блокируют построение DOM до своей загрузки и выполнения. Это замедляет рендеринг страницы.defer, но имеют строгий режим и поддерживают import/export. Они выполняются после загрузки HTML и поддерживают top-level await.defer для большинства скриптов, чтобы они не блокировали рендеринг;async;<head> — это замедляет загрузку страницы.И помним, скрипты могут блокировать не только DOM, но и рендеринг страницы, влияя на скорость загрузки и пользовательский опыт, поэтому правильное использование async и defer ускоряет загрузку и рендеринг.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍2
Forwarded from 🦜 on the web
Начинаем открывать адвент календари.
Ежегодный адвент-календарь о web performance: новые статьи, практики оптимизации, case-studies от инженеров крупных компаний.
https://calendar.perfplanet.com/2025/
Адвент-календарь с анти-паттернами HTML, забавными (и полезными) примерами того, как *не* стоит верстать. Каждый день — новая статья.
https://htmhell.dev/adventcalendar/
Самый популярный адвент-календарь по алгоритмам и программированию: ежедневно выходят интересные задачки разных уровней сложности.
https://adventofcode.com/
Ежедневные снипеты о современной CSS-разработке.
https://cssadventcalendar.dev
Адвент-календарь, посвящённый accessibility: практики, паттерны и методы создания доступных интерфейсов.
https://manuelsanchezdev.com/advent-2025
Ежегодный адвент-календарь о web performance: новые статьи, практики оптимизации, case-studies от инженеров крупных компаний.
https://calendar.perfplanet.com/2025/
Адвент-календарь с анти-паттернами HTML, забавными (и полезными) примерами того, как *не* стоит верстать. Каждый день — новая статья.
https://htmhell.dev/adventcalendar/
Самый популярный адвент-календарь по алгоритмам и программированию: ежедневно выходят интересные задачки разных уровней сложности.
https://adventofcode.com/
Ежедневные снипеты о современной CSS-разработке.
https://cssadventcalendar.dev
Адвент-календарь, посвящённый accessibility: практики, паттерны и методы создания доступных интерфейсов.
https://manuelsanchezdev.com/advent-2025
👍2
Всем привет!
Наткнулась в интернете на статью, где автор делится вопросами, которые ему задавали на интервью в Amazon
Вопросы, которые задавали:
1. Что такое
2. В чём разница между тегом
3. Что такое семантические классы и семантическое именование классов?
4. Каков будет вывод этого JavaScript-кода? (код про event loop)
5. Как «расплющить» (flatten) массив без
6. Реализация компонента Star Rating на React
Главные инсайты:
🔹 Никогда не недооценивайте базу. Даже если вы отлично работаете с React — важно помнить основы языка.
🔹 Коммуникация — это навык. Умение объяснить, *почему* вы делаете так, а не иначе, не менее важно, чем написать рабочий код.
🔹 Провал — это не приговор. Одно неудачное собеседование не определяет вашу ценность.
Если вам интересно — можете почитать оригинал: https://ujjwal3009.medium.com/frontend-developer-interview-amazon-f61e780add81
Наткнулась в интернете на статью, где автор делится вопросами, которые ему задавали на интервью в Amazon
Вопросы, которые задавали:
1. Что такое
aria-label, aria-labelledby, aria-live — и для чего они нужны?2. В чём разница между тегом
<header> и заголовками <h1>…<h6>?3. Что такое семантические классы и семантическое именование классов?
4. Каков будет вывод этого JavaScript-кода? (код про event loop)
5. Как «расплющить» (flatten) массив без
array.flat()?6. Реализация компонента Star Rating на React
Главные инсайты:
🔹 Никогда не недооценивайте базу. Даже если вы отлично работаете с React — важно помнить основы языка.
🔹 Коммуникация — это навык. Умение объяснить, *почему* вы делаете так, а не иначе, не менее важно, чем написать рабочий код.
🔹 Провал — это не приговор. Одно неудачное собеседование не определяет вашу ценность.
Если вам интересно — можете почитать оригинал: https://ujjwal3009.medium.com/frontend-developer-interview-amazon-f61e780add81
Medium
FRONTEND DEVELOPER INTERVIEW AMAZON
Frontend Developer Interview Questions — React.js | HTML | CSS | JavaScript 📅 Interview Date: November 18, 2025 🎯 Sharing for those…
❤3
💡 Идеальный программист
Навыки, которые присущи идеальному разработчику! 😍
Спустя долгое время в разработке я для себя вывела набор качеств, которые реально делают программиста крутым. И вот какие навыки я считаю самыми важными:
1️⃣ Умение не просто выполнять то, что написано в задаче, а понимать — нужно ли это вообще?
Продуктивность не измеряется количеством написанных строк кода.
2️⃣ Умение понятно излагать свои мысли
(в переписке, на созвонах, на ревью — где угодно)
3️⃣ Иметь свою точку зрения и уметь аргументировать её
4️⃣ Быть командным игроком и понимать, что у всех разный уровень
и это нормально 🙌
5️⃣ Постоянно развивать свои навыки и не терять энтузиазм к работе 🔥
А вы что думаете по этому поводу?
Навыки, которые присущи идеальному разработчику! 😍
Спустя долгое время в разработке я для себя вывела набор качеств, которые реально делают программиста крутым. И вот какие навыки я считаю самыми важными:
1️⃣ Умение не просто выполнять то, что написано в задаче, а понимать — нужно ли это вообще?
Продуктивность не измеряется количеством написанных строк кода.
2️⃣ Умение понятно излагать свои мысли
(в переписке, на созвонах, на ревью — где угодно)
3️⃣ Иметь свою точку зрения и уметь аргументировать её
4️⃣ Быть командным игроком и понимать, что у всех разный уровень
и это нормально 🙌
5️⃣ Постоянно развивать свои навыки и не терять энтузиазм к работе 🔥
А вы что думаете по этому поводу?
❤4
🎄 Advent of JavaScript
https://adventjs.dev/
Что это такое:
* 24 дня — 24 задачи на JavaScript / TypeScript / Python
* уровень задач от простых до реально сложных
* отлично прокачивает алгоритмы и логику
* и да, это бесплатно) пользуйтесь)
https://adventjs.dev/
Что это такое:
* 24 дня — 24 задачи на JavaScript / TypeScript / Python
* уровень задач от простых до реально сложных
* отлично прокачивает алгоритмы и логику
* и да, это бесплатно) пользуйтесь)
AdventJS
AdventJS - JavaScript, TypeScript and Python coding challenges every day of December
JavaScript, TypeScript and Python coding challenges every day of December. Learn and have fun with AdventJS coding challenges!
👍3
Всем привет!
Сегодня прослушала подкаст «Веб-стандарты» #509
и узнала для себя несколько новых и интересных вещей:
— Оказывается, существует специализированный браузер для веб-разработчиков, созданный именно для разработки и тестирования веб-сайтов, а не для обычного просмотра — Polypane
https://polypane.app/
— В подкасте обсуждали статью
https://polypane.app/blog/not-all-browser-apis-are-web-apis/
с говорящим названием о том, что не все браузерные API на самом деле являются «чисто браузерными».
Забавно, что API, которые мы всегда считали стандартными (например, Geolocation API, поддерживаемый и W3C, и MDN), для одних браузеров является платным, а для Chromium — нет.
— Слышали когда-нибудь про файл LLMs.txt?
Это Markdown-файл для сайтов, предназначенный для предоставления контента, удобного для LLM.
Одно из ключевых преимуществ — снижение нагрузки на сайт.
https://llmstxt.org/
— И тут становится ещё интереснее. Думаю, многие из вас слышали новость:
6 января основатель Tailwind CSS Адам Ватан уволил 3 из 4 разработчиков из-за, цитирую, «жестокого влияния AI на наш бизнес».
Он подробно описал ситуацию в треде на GitHub, отклонив pull request с предложением сделать документацию, оптимизированную под нейросети:
https://github.com/tailwindlabs/tailwindcss.com/pull/2388#issuecomment-3717222957
> Трафик на нашу документацию упал примерно на 40% с начала 2023 года, несмотря на то, что Tailwind популярнее, чем когда-либо. Документация — это единственный способ, которым люди узнают о наших коммерческих продуктах, а без клиентов мы не можем позволить себе поддерживать фреймворк.
Подробности тут:
https://dev.to/kniraj/tailwind-css-lays-off-75-of-engineering-team-as-ai-tools-disrupt-revenue-model-1l3d
— К слову, трафик MDN тоже снизился — во многом из-за активного использования LLM.
— В подкасте обсуждали ещё одну статью, но я хочу сначала внимательно её прочитать и уже потом поделиться своими мыслями.
В целом подкаст мне очень понравился, интересно было следить за дискуссией ребят, поэтому я решила сразу поддержать их на Patreon 💙
Ниже будет репост этого выпуска 🎧
Сегодня прослушала подкаст «Веб-стандарты» #509
и узнала для себя несколько новых и интересных вещей:
— Оказывается, существует специализированный браузер для веб-разработчиков, созданный именно для разработки и тестирования веб-сайтов, а не для обычного просмотра — Polypane
https://polypane.app/
— В подкасте обсуждали статью
https://polypane.app/blog/not-all-browser-apis-are-web-apis/
с говорящим названием о том, что не все браузерные API на самом деле являются «чисто браузерными».
Забавно, что API, которые мы всегда считали стандартными (например, Geolocation API, поддерживаемый и W3C, и MDN), для одних браузеров является платным, а для Chromium — нет.
— Слышали когда-нибудь про файл LLMs.txt?
Это Markdown-файл для сайтов, предназначенный для предоставления контента, удобного для LLM.
Одно из ключевых преимуществ — снижение нагрузки на сайт.
https://llmstxt.org/
— И тут становится ещё интереснее. Думаю, многие из вас слышали новость:
6 января основатель Tailwind CSS Адам Ватан уволил 3 из 4 разработчиков из-за, цитирую, «жестокого влияния AI на наш бизнес».
Он подробно описал ситуацию в треде на GitHub, отклонив pull request с предложением сделать документацию, оптимизированную под нейросети:
https://github.com/tailwindlabs/tailwindcss.com/pull/2388#issuecomment-3717222957
> Трафик на нашу документацию упал примерно на 40% с начала 2023 года, несмотря на то, что Tailwind популярнее, чем когда-либо. Документация — это единственный способ, которым люди узнают о наших коммерческих продуктах, а без клиентов мы не можем позволить себе поддерживать фреймворк.
Подробности тут:
https://dev.to/kniraj/tailwind-css-lays-off-75-of-engineering-team-as-ai-tools-disrupt-revenue-model-1l3d
— К слову, трафик MDN тоже снизился — во многом из-за активного использования LLM.
— В подкасте обсуждали ещё одну статью, но я хочу сначала внимательно её прочитать и уже потом поделиться своими мыслями.
В целом подкаст мне очень понравился, интересно было следить за дискуссией ребят, поэтому я решила сразу поддержать их на Patreon 💙
Ниже будет репост этого выпуска 🎧
polypane.app
Polypane. The missing half of your development environment.
The developer browser built for web development. Multi-viewport previews, accessibility auditing, and professional tools for building great websites.
👍6
Forwarded from Веб-стандарты (Vadim Makeev)
Выпуск №509. Никита Дубко и Вадим Макеев про антивебные API для веба, как LLM и помогает, и убивает Tailwind и про нездоровую зависимость от бандлеров.
— Лайв на Ютубе
— Слушайте на Ютубе
— Ссылки на сайте
— Лайв на Ютубе
— Слушайте на Ютубе
— Ссылки на сайте