🎯 Рубрика: Отвечаю на вопросы с собеседований
❓Почему margin между двумя блочными элементами не суммируется, а "схлопывается"?
📌 Потому что в CSS есть такое поведение, как collapsing margins — схлопывание вертикальных внешних отступов.
Когда margin-top одного элемента соприкасается с margin-bottom другого, они не складываются, а превращаются в один отступ, равный наибольшему из них.
➕ Что с отрицательными отступами?
Если есть и положительные, и отрицательные отступы, то итоговый размер схлопнутого отступа = наибольший положительный + наименьший отрицательный (по модулю).
Если все отступы отрицательные — берётся наименьший из них (то есть самый "глубокий" минус).
❓Почему margin между двумя блочными элементами не суммируется, а "схлопывается"?
📌 Потому что в CSS есть такое поведение, как collapsing margins — схлопывание вертикальных внешних отступов.
Когда margin-top одного элемента соприкасается с margin-bottom другого, они не складываются, а превращаются в один отступ, равный наибольшему из них.
➕ Что с отрицательными отступами?
Если есть и положительные, и отрицательные отступы, то итоговый размер схлопнутого отступа = наибольший положительный + наименьший отрицательный (по модулю).
Если все отступы отрицательные — берётся наименьший из них (то есть самый "глубокий" минус).
🔥9
🧾 HTTP Code Cheatsheet
По опыту знаю, что большинство разработчиков отлично знают такие HTTP-коды:
Но на самом деле их гораздо больше 😎
📘 Нашла отличную статью на английском:
https://medium.com/@onix_react/http-code-cheatsheet-26c129a3c9a9
📙 И полезный ресурс на русском языке:
https://restapitutorial.ru/httpstatuscodes/
На сайте также можно почитать про проектирование REST API.
По опыту знаю, что большинство разработчиков отлично знают такие HTTP-коды:
200, 201, 204, 301, 400, 401, 403, 404, 429, 500, 502, 503.Но на самом деле их гораздо больше 😎
📘 Нашла отличную статью на английском:
https://medium.com/@onix_react/http-code-cheatsheet-26c129a3c9a9
📙 И полезный ресурс на русском языке:
https://restapitutorial.ru/httpstatuscodes/
На сайте также можно почитать про проектирование REST API.
Medium
HTTP Code Cheatsheet
HTTP status codes are standardized three-digit responses sent by a server to indicate the result of a client’s request. These codes help…
🔥3
Всем привет!
Давайте подведем итоги за последние три месяца — что появилось в этом канале 👇
📌 ДАЙДЖЕСТ: МАЙ & ИЮНЬ & ИЮЛЬ
🎯От меня:
Советы как преуспеть разработчику - https://news.1rj.ru/str/frontenddevelopernews/29
Как мотивировать команду - https://news.1rj.ru/str/frontenddevelopernews/31
React-разминка - https://news.1rj.ru/str/frontenddevelopernews/32
А нужно ли вообще делить разработчиков на frontend и backend? - https://news.1rj.ru/str/frontenddevelopernews/35
Баг при использовании объекта URL - https://news.1rj.ru/str/frontenddevelopernews/44
Debounce vs Throttle: в чём разница? - https://news.1rj.ru/str/frontenddevelopernews/49
Что такое Favicon? - https://news.1rj.ru/str/frontenddevelopernews/52
Генераторы в JavaScript - https://news.1rj.ru/str/frontenddevelopernews/55
Почему margin между двумя блочными элементами не суммируется, а "схлопывается"? - https://news.1rj.ru/str/frontenddevelopernews/58
🗺 Frontend-новости:
ESLint теперь умеет проверять HTML! - https://news.1rj.ru/str/frontenddevelopernews/34
21 мая вышел свежий релиз Bun - https://news.1rj.ru/str/frontenddevelopernews/37
Google I/O 2025 - https://news.1rj.ru/str/frontenddevelopernews/38
v1.0.0 SDK от Google Gen AI для TypeScript/JavaScript! - https://news.1rj.ru/str/frontenddevelopernews/41
ECMAScript 2025 утвержден! - https://news.1rj.ru/str/frontenddevelopernews/50
🌐 Развлечения:
IGLOO INC - https://news.1rj.ru/str/frontenddevelopernews/36
You're not a front-end developer until you've... - https://news.1rj.ru/str/frontenddevelopernews/48
How well do you know JavaScript's Date class? - https://news.1rj.ru/str/frontenddevelopernews/53
Little Red Riding Hood's Quest - https://news.1rj.ru/str/frontenddevelopernews/54
📚 Статьи и видео:
Нефункциональные требования - https://news.1rj.ru/str/frontenddevelopernews/28
gRPC против REST: Как выбрать лучший подход к проектированию API - https://news.1rj.ru/str/frontenddevelopernews/30
Надёжное обнаружение блокировки third-party cookies в 2025 году - https://news.1rj.ru/str/frontenddevelopernews/43
Mastering Creational Design Patterns in JavaScript: экспертный гайд - https://news.1rj.ru/str/frontenddevelopernews/45
Node.js 24: Your Next Big Frontend Upgrade? - https://news.1rj.ru/str/frontenddevelopernews/51
Ресурсы для визуализации алгоритмов - https://news.1rj.ru/str/frontenddevelopernews/57
HTTP Code Cheatsheet - https://news.1rj.ru/str/frontenddevelopernews/60
#дайджест
Давайте подведем итоги за последние три месяца — что появилось в этом канале 👇
📌 ДАЙДЖЕСТ: МАЙ & ИЮНЬ & ИЮЛЬ
🎯От меня:
Советы как преуспеть разработчику - https://news.1rj.ru/str/frontenddevelopernews/29
Как мотивировать команду - https://news.1rj.ru/str/frontenddevelopernews/31
React-разминка - https://news.1rj.ru/str/frontenddevelopernews/32
А нужно ли вообще делить разработчиков на frontend и backend? - https://news.1rj.ru/str/frontenddevelopernews/35
Баг при использовании объекта URL - https://news.1rj.ru/str/frontenddevelopernews/44
Debounce vs Throttle: в чём разница? - https://news.1rj.ru/str/frontenddevelopernews/49
Что такое Favicon? - https://news.1rj.ru/str/frontenddevelopernews/52
Генераторы в JavaScript - https://news.1rj.ru/str/frontenddevelopernews/55
Почему margin между двумя блочными элементами не суммируется, а "схлопывается"? - https://news.1rj.ru/str/frontenddevelopernews/58
🗺 Frontend-новости:
ESLint теперь умеет проверять HTML! - https://news.1rj.ru/str/frontenddevelopernews/34
21 мая вышел свежий релиз Bun - https://news.1rj.ru/str/frontenddevelopernews/37
Google I/O 2025 - https://news.1rj.ru/str/frontenddevelopernews/38
v1.0.0 SDK от Google Gen AI для TypeScript/JavaScript! - https://news.1rj.ru/str/frontenddevelopernews/41
ECMAScript 2025 утвержден! - https://news.1rj.ru/str/frontenddevelopernews/50
🌐 Развлечения:
IGLOO INC - https://news.1rj.ru/str/frontenddevelopernews/36
You're not a front-end developer until you've... - https://news.1rj.ru/str/frontenddevelopernews/48
How well do you know JavaScript's Date class? - https://news.1rj.ru/str/frontenddevelopernews/53
Little Red Riding Hood's Quest - https://news.1rj.ru/str/frontenddevelopernews/54
📚 Статьи и видео:
Нефункциональные требования - https://news.1rj.ru/str/frontenddevelopernews/28
gRPC против REST: Как выбрать лучший подход к проектированию API - https://news.1rj.ru/str/frontenddevelopernews/30
Надёжное обнаружение блокировки third-party cookies в 2025 году - https://news.1rj.ru/str/frontenddevelopernews/43
Mastering Creational Design Patterns in JavaScript: экспертный гайд - https://news.1rj.ru/str/frontenddevelopernews/45
Node.js 24: Your Next Big Frontend Upgrade? - https://news.1rj.ru/str/frontenddevelopernews/51
Ресурсы для визуализации алгоритмов - https://news.1rj.ru/str/frontenddevelopernews/57
HTTP Code Cheatsheet - https://news.1rj.ru/str/frontenddevelopernews/60
#дайджест
Telegram
Frontend Developer
Сегодня хочу поделиться мыслями:
какие действия, по моему мнению, помогают разработчику преуспеть в этом быстро меняющемся мире?
Вот мой топ:
1. 📖 Регулярно читать — статьи, блоги, посты, книги. Развивать насмотренность и расширять кругозор.
2. 📺 Смотреть…
какие действия, по моему мнению, помогают разработчику преуспеть в этом быстро меняющемся мире?
Вот мой топ:
1. 📖 Регулярно читать — статьи, блоги, посты, книги. Развивать насмотренность и расширять кругозор.
2. 📺 Смотреть…
🔥7
🚀 Frontend Performance Checklist
📋 Нашла полезный чеклист по оптимизации фронтенда, где собраны способы ускорения работы сайта с точки зрения:
- HTML
- CSS
- JavaScript
- Обработки изображений
- Видео
- Шрифтов
- Хостинга / сервера
🔗 Статья: https://crystallize.com/blog/frontend-performance-checklist
📋 Нашла полезный чеклист по оптимизации фронтенда, где собраны способы ускорения работы сайта с точки зрения:
- HTML
- CSS
- JavaScript
- Обработки изображений
- Видео
- Шрифтов
- Хостинга / сервера
🔗 Статья: https://crystallize.com/blog/frontend-performance-checklist
Crystallize
Frontend Performance Checklist For 2025
In the speed-obsessed world of today, better performance comes with serious business gains. This frontend performance checklist is a cumulative list of items that we at Crystallize found important in 2025 when creating a Superfast web application.
👍4🔥2
🔍 Почему 0.1 + 0.2 !== 0.3 в JavaScript?
Всем привет! Сегодня разберёмся раз и навсегда, почему в JavaScript:
Кажется, что это баг в JS, но на самом деле — нет. JavaScript использует формат IEEE 754 double precision — это 64-битное представление чисел с плавающей точкой.
---
💡 Почему возникает ошибка?
Некоторые десятичные дроби, например
---
📐 Как `0.1` представляется в двоичной системе?
Чтобы перевести дробную часть числа в двоичную систему, мы умножаем её на 2 и фиксируем целую часть результата. Вот шаги:
🔁 В итоге мы получаем бесконечную периодическую двоичную дробь:
---
📦 Далее сдвигаем на 4 позиции. Почему?
Чтобы сохранить число в формате IEEE 754, его нужно записать в нормализованной форме:
Мы сдвигаем запятую так, чтобы первая единица оказалась перед точкой:
То есть сдвигаем на 4 позиции влево, и поэтому экспонента = -4. Это и есть часть формата IEEE 754.
---
🧮 Что делает JavaScript?
Он берёт ближайшее возможное двоичное значение, которое можно представить в 64 битах:
Это — ровно 52 бита точности, и последняя цифра округлена вверх.
Теперь, если пересчитать это значение обратно в десятичную форму, получится:
То есть
---
📌 То же самое происходит с `0.2` — оно представляется как:
Поэтому при сложении
А
---
Собственно говоря вот и вся магия 💫
📚 Кстати, про достоверные источники...
В универе на магистратуре в Англии нас всегда учили что все источники информации должны быть проверенными и надежными! Вот например Wikipedia вообще НЕ надежный источник информации 😂
И нам приходилось искать все эти проверенные статьи и мы гуглили не просто в Гугле а на https://scholar.google.com
Можете попробовать поискать информацию на https://scholar.google.com и вам выйдут только академические статьи.
Всем привет! Сегодня разберёмся раз и навсегда, почему в JavaScript:
0.1 + 0.2 === 0.30000000000000004 // true
Кажется, что это баг в JS, но на самом деле — нет. JavaScript использует формат IEEE 754 double precision — это 64-битное представление чисел с плавающей точкой.
---
💡 Почему возникает ошибка?
Некоторые десятичные дроби, например
0.1 и 0.2, невозможно точно представить в двоичной системе. Они превращаются в бесконечные двоичные дроби.---
📐 Как `0.1` представляется в двоичной системе?
Чтобы перевести дробную часть числа в двоичную систему, мы умножаем её на 2 и фиксируем целую часть результата. Вот шаги:
0.1 * 2 = 0.2 → 0
0.2 * 2 = 0.4 → 0
0.4 * 2 = 0.8 → 0
0.8 * 2 = 1.6 → 1
0.6 * 2 = 1.2 → 1
0.2 * 2 = 0.4 → 0
0.4 * 2 = 0.8 → 0
0.8 * 2 = 1.6 → 1
0.6 * 2 = 1.2 → 1
... и так далее
🔁 В итоге мы получаем бесконечную периодическую двоичную дробь:
0.1₁₀ = 0.00011001100110011001100...₂
---
📦 Далее сдвигаем на 4 позиции. Почему?
Чтобы сохранить число в формате IEEE 754, его нужно записать в нормализованной форме:
1.значащие_биты × 2^экспонента
Мы сдвигаем запятую так, чтобы первая единица оказалась перед точкой:
0.0001 10011001100110011...
↓
1.10011001100110011... × 2⁻⁴
То есть сдвигаем на 4 позиции влево, и поэтому экспонента = -4. Это и есть часть формата IEEE 754.
---
🧮 Что делает JavaScript?
Он берёт ближайшее возможное двоичное значение, которое можно представить в 64 битах:
1.1001100110011001100110011001100110011001100110011010 × 2⁻⁴
Это — ровно 52 бита точности, и последняя цифра округлена вверх.
Теперь, если пересчитать это значение обратно в десятичную форму, получится:
0.1000000000000000055511151231257827021181583404541015625
То есть
0.1 в JS — это не ровно 0.1, а немного больше. Проверка:console.log(0.1.toPrecision(60))
// → '0.1000000000000000055511151231257827021181583404541015625'
---
📌 То же самое происходит с `0.2` — оно представляется как:
0.200000000000000011102230246251565404236316680908203125
Поэтому при сложении
0.1 + 0.2 мы получаем:≈ 0.3000000000000000444...
А
0.3 в памяти — это другое приближённое значение, поэтому:0.1 + 0.2 === 0.3 // false
---
Собственно говоря вот и вся магия 💫
📚 Кстати, про достоверные источники...
В универе на магистратуре в Англии нас всегда учили что все источники информации должны быть проверенными и надежными! Вот например Wikipedia вообще НЕ надежный источник информации 😂
И нам приходилось искать все эти проверенные статьи и мы гуглили не просто в Гугле а на https://scholar.google.com
Можете попробовать поискать информацию на https://scholar.google.com и вам выйдут только академические статьи.
Google
Google Scholar
Google Scholar provides a simple way to broadly search for scholarly literature. Search across a wide variety of disciplines and sources: articles, theses, books, abstracts and court opinions.
👍7❤1
🧩 React-хук для обработки событий клавиатуры
Возможно, вы уже видели этот хук — со мной им поделился коллега, и выглядит он действительно удобно 👇
👉 https://github.com/ArturJS/use-key-match
Возможно, вы уже видели этот хук — со мной им поделился коллега, и выглядит он действительно удобно 👇
👉 https://github.com/ArturJS/use-key-match
GitHub
GitHub - ArturJS/use-key-match: React hook for matching keyboard events with callbacks
React hook for matching keyboard events with callbacks - ArturJS/use-key-match
❤2🤝2
Всем привет!
Недавно наткнулась на эту статью:
https://www.totaltypenoscript.com/how-to-create-an-npm-package
Решила пробежаться глазами, чтобы понять, что там есть интересного. И почему-то меня триггернули пункты 2.1 и 3.2.
Автор статьи предлагает вручную создать файлы
Не знаю, как у вас, но меня прям передёрнуло 🙃 Почему бы не предложить создать их командами:
Так они сразу создадутся с конфигами по умолчанию, и уже потом можно внести нужные изменения, объясняя при необходимости. А не просто копировать и вставлять код вручную. Понимаю что для своих пет проектов это удобнее и не нужно вносить кучу правок, но это же обучающий гайд.
А вы как думаете, стоит ли в таких гайдах предлагать команды или ручное создание файлов — норм вариант?
P.S. Сорри за душноту и занудство, но просто не смогла пройти мимо 😅
Недавно наткнулась на эту статью:
https://www.totaltypenoscript.com/how-to-create-an-npm-package
Решила пробежаться глазами, чтобы понять, что там есть интересного. И почему-то меня триггернули пункты 2.1 и 3.2.
Автор статьи предлагает вручную создать файлы
package.json и tsconfig.json.Не знаю, как у вас, но меня прям передёрнуло 🙃 Почему бы не предложить создать их командами:
npm init
tsc --init
Так они сразу создадутся с конфигами по умолчанию, и уже потом можно внести нужные изменения, объясняя при необходимости. А не просто копировать и вставлять код вручную. Понимаю что для своих пет проектов это удобнее и не нужно вносить кучу правок, но это же обучающий гайд.
А вы как думаете, стоит ли в таких гайдах предлагать команды или ручное создание файлов — норм вариант?
P.S. Сорри за душноту и занудство, но просто не смогла пройти мимо 😅
Total TypeScript
How To Create An NPM Package
Learn how to publish a package to npm with a complete setup including, TypeScript, Prettier, Vitest, GitHub Actions, and versioning with Changesets.
👍1
Announcing TypeScript 5.9
В продолжение предыдущего поста 🙂
Вышла новая версия TypeScript, и одной из фич стали изменения в команде
Теперь она создаёт более лаконичный и продуманный
Ещё одна интересная новинка — отложенный импорт с помощью
Это помогает уменьшить время начальной загрузки приложения и подгружать код только тогда, когда он реально нужен.
Подробнее: https://devblogs.microsoft.com/typenoscript/announcing-typenoscript-5-9/
В продолжение предыдущего поста 🙂
Вышла новая версия TypeScript, и одной из фич стали изменения в команде
tsc --init.Теперь она создаёт более лаконичный и продуманный
tsconfig.json — без горы комментариев и неиспользуемых опций. В файле остаются только действительно нужные настройки, плюс есть ссылка на документацию и автодополнение.Ещё одна интересная новинка — отложенный импорт с помощью
import defer:import defer * as feature from "./some-feature.js";
// Модуль загрузится только при первом обращении к экспорту
feature.run();
Это помогает уменьшить время начальной загрузки приложения и подгружать код только тогда, когда он реально нужен.
Подробнее: https://devblogs.microsoft.com/typenoscript/announcing-typenoscript-5-9/
Microsoft News
Announcing TypeScript 5.9
Today we are excited to announce the release of TypeScript 5.9! If you’re not familiar with TypeScript, it’s a language that builds on JavaScript by adding syntax for types. With types, TypeScript makes it possible to check your code to avoid bugs ahead of…
👍5
State of CSS 2025
Вышли результаты State of CSS 2025 🥳 https://2025.stateofcss.com/en-US
Мне была особенно интересна часть про инструменты https://2025.stateofcss.com/en-US/other-tools
И вот что мы видим :
CSS Frameworks
* Tailwind снова на первом месте. Его чаще выбирают разработчики с меньшим опытом, а более опытные предпочитают кастомные или внутренние решения.
* При этом почти половина участников (47%) либо вообще не используют фреймворки, либо пропустили этот вопрос.
CSS-in-JS
* CSS Modules со своим «лёгким» подходом всё ещё в топе.
* Styled Components по-прежнему уверенно держит вторую позицию.
Pre-/Post-processors
* Sass остаётся №1 среди препроцессоров.
* Но в целом их популярность снижается — CSS всё активнее перенимает их возможности.
Вышли результаты State of CSS 2025 🥳 https://2025.stateofcss.com/en-US
Мне была особенно интересна часть про инструменты https://2025.stateofcss.com/en-US/other-tools
И вот что мы видим :
CSS Frameworks
* Tailwind снова на первом месте. Его чаще выбирают разработчики с меньшим опытом, а более опытные предпочитают кастомные или внутренние решения.
* При этом почти половина участников (47%) либо вообще не используют фреймворки, либо пропустили этот вопрос.
CSS-in-JS
* CSS Modules со своим «лёгким» подходом всё ещё в топе.
* Styled Components по-прежнему уверенно держит вторую позицию.
Pre-/Post-processors
* Sass остаётся №1 среди препроцессоров.
* Но в целом их популярность снижается — CSS всё активнее перенимает их возможности.
Stateofcss
State of CSS 2025
👍5
CSS-Questions
Смотрите, какой классный сайт с вопросами по CSS https://css-questions.com/
Собрано 150+ вопросов — от базовых до продвинутых тем.
Здесь найдётся что-то полезное как для новичков, так и для опытных разработчиков.
А ещё можно прокачать навыки на практических заданиях по разным аспектам CSS.
Готовы проверить себя? 💡
Смотрите, какой классный сайт с вопросами по CSS https://css-questions.com/
Собрано 150+ вопросов — от базовых до продвинутых тем.
Здесь найдётся что-то полезное как для новичков, так и для опытных разработчиков.
А ещё можно прокачать навыки на практических заданиях по разным аспектам CSS.
Готовы проверить себя? 💡
🔥3
A Few Things About the Anchor Element’s href You Might Not Have Known
Обычно то, что кажется супер простым, просто пролистывается и не читается 🙂
Но я уже много раз говорила: сила — в базовых вещах ⚡️
На днях наткнулась на статью с таким названием:
«Несколько фактов о значении href у тега `<a>`, которых вы могли не знать»
и решила посмотреть, что там интересного 👀
Вот что я нашла:
* `href="#"` — скроллит страницу в начало документа.
* `href=""` — перезагружает текущую страницу, сохраняя строку запроса (query string), но удаляя hash.
Примеры:
* `href="."` — перезагружает текущую страницу, убирая и query string, и hash (если они есть).
Примеры:
* `href="?"` — тоже перезагружает страницу, убирая query и hash, но оставляет
Примеры:
* `href="data:"` — можно делать ссылки на data URL. Например:
* `href="video.mp4#t=10,20"` — медиa-фрагменты. Можно указывать конкретный отрезок видео или аудио.
В этом примере видео начнётся с 10-й секунды и остановится на 20-й.
---
Было ли среди этого что-то, о чём вы не знали? 🤔
👉 https://blog.jim-nielsen.com/2025/href-value-possibilities/
Обычно то, что кажется супер простым, просто пролистывается и не читается 🙂
Но я уже много раз говорила: сила — в базовых вещах ⚡️
На днях наткнулась на статью с таким названием:
«Несколько фактов о значении href у тега `<a>`, которых вы могли не знать»
и решила посмотреть, что там интересного 👀
Вот что я нашла:
* `href="#"` — скроллит страницу в начало документа.
* `href=""` — перезагружает текущую страницу, сохраняя строку запроса (query string), но удаляя hash.
Примеры:
URL Преобразуется в
/path/ /path/
/path/#foo /path/
/path/?id=foo /path/?id=foo
/path/?id=foo#bar /path/?id=foo
* `href="."` — перезагружает текущую страницу, убирая и query string, и hash (если они есть).
Примеры:
URL Преобразуется в
/path /
/path#foo /
/path?id=foo /
/path/ /path/
/path/#foo /path/
/path/?id=foo /path/
/path/index.html /path/
* `href="?"` — тоже перезагружает страницу, убирая query и hash, но оставляет
?.Примеры:
URL Преобразуется в
/path /path?
/path#foo /path?
/path?id=foo /path?
/path?id=foo#bar /path?
/index.html /index.html?
* `href="data:"` — можно делать ссылки на data URL. Например:
<a href="data:text/plain,hello world">
View plain text data URL
</a>
* `href="video.mp4#t=10,20"` — медиa-фрагменты. Можно указывать конкретный отрезок видео или аудио.
В этом примере видео начнётся с 10-й секунды и остановится на 20-й.
---
Было ли среди этого что-то, о чём вы не знали? 🤔
👉 https://blog.jim-nielsen.com/2025/href-value-possibilities/
Jim Nielsen’s Blog
A Few Things About the Anchor Element’s href You Might Not Have Known
I’ve written previously about reloading a document using only HTML but that got me thinking: What are all the values you can put in an anchor tag’s href attribute?
❤5
🎉 Chrome исполнилось 17 лет!
В 2008 году Chrome появился как эксперимент с упором на скорость, безопасность, стабильность и простоту. Сегодня это самый популярный браузер в мире, и его эволюция впечатляет 👇
🔹 Скорость
Старт с движка V8, который делал JavaScript в разы быстрее конкурентов. Сейчас Chrome — лидер в тесте Speedometer 3.1 (главный бенчмарк скорости браузеров), оптимизирован для мобильных устройств и экономит пользователям миллионы часов загрузки страниц.
🔹 Безопасность
С первых версий — песочница вкладок, автообновления, Site Isolation. Позже — Rust-компоненты, защита от фишинга с помощью ML, менеджер паролей и повсеместный переход на HTTPS.
🔹 Стабильность
Благодаря мультипроцессной архитектуре сбой одной вкладки не «роняет» браузер. А технологии вроде Discarding, PartitionAlloc и фоновые обновления делают Chrome надёжным даже при сотнях открытых вкладок.
🔹 Простота
Минимализм с самого старта: единый Omnibox (адрес + поиск в одном поле) и минимум интерфейса вокруг контента. Со временем появились удобства — автозаполнение, менеджер паролей, DevTools с AI-подсказками. Новые функции добавляются аккуратно, сохраняя простоту.
✨ Сегодня Chrome — это результат многолетней работы над удобным и безопасным интернетом. А впереди — AI-возможности и новые стандарты для открытого веба.
Читать полную статью Addy Osmani:
👉 https://addyosmani.com/blog/chrome-17th/
В 2008 году Chrome появился как эксперимент с упором на скорость, безопасность, стабильность и простоту. Сегодня это самый популярный браузер в мире, и его эволюция впечатляет 👇
🔹 Скорость
Старт с движка V8, который делал JavaScript в разы быстрее конкурентов. Сейчас Chrome — лидер в тесте Speedometer 3.1 (главный бенчмарк скорости браузеров), оптимизирован для мобильных устройств и экономит пользователям миллионы часов загрузки страниц.
🔹 Безопасность
С первых версий — песочница вкладок, автообновления, Site Isolation. Позже — Rust-компоненты, защита от фишинга с помощью ML, менеджер паролей и повсеместный переход на HTTPS.
🔹 Стабильность
Благодаря мультипроцессной архитектуре сбой одной вкладки не «роняет» браузер. А технологии вроде Discarding, PartitionAlloc и фоновые обновления делают Chrome надёжным даже при сотнях открытых вкладок.
🔹 Простота
Минимализм с самого старта: единый Omnibox (адрес + поиск в одном поле) и минимум интерфейса вокруг контента. Со временем появились удобства — автозаполнение, менеджер паролей, DevTools с AI-подсказками. Новые функции добавляются аккуратно, сохраняя простоту.
✨ Сегодня Chrome — это результат многолетней работы над удобным и безопасным интернетом. А впереди — AI-возможности и новые стандарты для открытого веба.
Читать полную статью Addy Osmani:
👉 https://addyosmani.com/blog/chrome-17th/
Addyosmani
Google Chrome at 17 - A history of our browser
Chrome turns 17 this week, and it feels like a good time to reflect on how far we have come in terms of Chromes guiding principles
🔥5❤1
🎯 CSS: выравниваем по-умному, а не методом тыка
Статья "The Fundamentals of CSS Alignment" (4 сентября 2025) объясняет, как работают свойства выравнивания в Grid, Flexbox и блочном режиме — и почему больше логики, а не путаницы.
Основные тезисы:
• Есть два уровня: контейнер (content) и элемент (item). Удобные шорткаты:
• В Grid-контейнере элементы выравниваются внутри ячеек или областей, а
• В Flexbox выравнивание по горизонтали работает группой (через
• Для абсолютных элементов (
• Чтобы избежать проблем с overflow (например, недоступной областью), используйте
Читать подробнее: https://css-tip.com/explore/alignment/
Статья "The Fundamentals of CSS Alignment" (4 сентября 2025) объясняет, как работают свойства выравнивания в Grid, Flexbox и блочном режиме — и почему больше логики, а не путаницы.
Основные тезисы:
• Есть два уровня: контейнер (content) и элемент (item). Удобные шорткаты:
place-content, place-items, place-self. • В Grid-контейнере элементы выравниваются внутри ячеек или областей, а
1fr может поглотить всё свободное пространство и заблокировать выравнивание. • В Flexbox выравнивание по горизонтали работает группой (через
justify-content). • Для абсолютных элементов (
absolute) работает только place-self. • Чтобы избежать проблем с overflow (например, недоступной областью), используйте
safe, например justify-self: safe center.Читать подробнее: https://css-tip.com/explore/alignment/
Css-Tip
The Fundamentals of CSS Alignment
This deep dive covers everything you need to know about CSS alignment. It's time to stop doing trial and error and finally understand how everything works!
❤1
🎉 Наконец-то: безопасные методы работы с массивами в JavaScript
ES2023 представил версии привычных методов для массивов, которые не мутируют исходные данные — идеально для React и функционального подхода.
Сравнение:
•
•
•
Подробнее в статье: https://allthingssmitty.com/2025/09/08/finally-safe-array-methods-in-javanoscript/
ES2023 представил версии привычных методов для массивов, которые не мутируют исходные данные — идеально для React и функционального подхода.
Сравнение:
•
toSorted() вместо sort() — новый отсортированный массив. •
toReversed() вместо reverse() — новый перевёрнутый массив. •
toSpliced() вместо splice() — новый результат без изменений оригинала.Подробнее в статье: https://allthingssmitty.com/2025/09/08/finally-safe-array-methods-in-javanoscript/
Allthingssmitty
Finally, safe array methods in JavaScript - Matt Smith
Learn how to safely sort, reverse, and splice arrays in JavaScript using ES2023 methods toSorted(), toReversed(), and toSpliced(). Perfect for React and modern JS development.
🔥5
🚨 Атака на npm: компрометация debug, chalk и ещё 16 популярных пакетов
По данным Aikido Security, начиная с 8 сентября 2025, 13:16 UTC, в npm были загружены злонамеренные версии ряда широко используемых пакетов. В сумме они набирают более 2 миллиардов загрузок в неделю.
---
Что произошло:
* Были обновлены 18 пакетов (включая
* Этот код тихо перехватывает транзакции криптовалюты и действия web3, вмешивается в
* Пакеты были доступны скомпрометированными примерно 2–3 часа до того, как часть из них была удалена или заменена чистыми версиями.
---
Почему это опасно:
* Пострадать могут приложения, в которых запускались клиентские (браузерные) сборки с этими пакетами, особенно те, что работают с криптовалютами/web3.
* Даже если вы явно не используете
---
Что делать, если ты мог быть затронут:
1. Проверь
2. Обнови на безопасные версии (версии до атаки) или используйте версии, подтверждённые как безопасные.
3. Пересобери клиент-bundle’ы, очисти кеши на CDN и локальные кеши сборки — если они содержат зловредный код.
4. Мониторьте журналы и телеметрию, если приложение работает с web3 — поиск необычного поведения wallet API.
---
🧭 Уроки:
* Даже популярные, проверенные пакеты могут быть атакованы через phishing и компрометацию аккаунта.
* Один сбой безопасности может распространиться по экосистеме через транзитивные зависимости.
* Статическая защита + внимательность к версии + контроль зависимостей + своевременные обновления критичны.
---
Читать оригинал: https://www.aikido.dev/blog/npm-debug-and-chalk-packages-compromised
По данным Aikido Security, начиная с 8 сентября 2025, 13:16 UTC, в npm были загружены злонамеренные версии ряда широко используемых пакетов. В сумме они набирают более 2 миллиардов загрузок в неделю.
---
Что произошло:
* Были обновлены 18 пакетов (включая
debug, chalk, ansi-styles, strip-ansi, supports-color и др.) — внесён обфусцированный код, который выполняется в браузере.* Этот код тихо перехватывает транзакции криптовалюты и действия web3, вмешивается в
window.ethereum и переписывает адреса получателей на адреса, контролируемые злоумышленниками.* Пакеты были доступны скомпрометированными примерно 2–3 часа до того, как часть из них была удалена или заменена чистыми версиями.
---
Почему это опасно:
* Пострадать могут приложения, в которых запускались клиентские (браузерные) сборки с этими пакетами, особенно те, что работают с криптовалютами/web3.
* Даже если вы явно не используете
debug или chalk, пострадать можно транзитивно — через зависимости.---
Что делать, если ты мог быть затронут:
1. Проверь
package.json, package-lock.json / yarn.lock — ищите версии пакетов, которые были скомпрометированы. 2. Обнови на безопасные версии (версии до атаки) или используйте версии, подтверждённые как безопасные.
3. Пересобери клиент-bundle’ы, очисти кеши на CDN и локальные кеши сборки — если они содержат зловредный код.
4. Мониторьте журналы и телеметрию, если приложение работает с web3 — поиск необычного поведения wallet API.
---
🧭 Уроки:
* Даже популярные, проверенные пакеты могут быть атакованы через phishing и компрометацию аккаунта.
* Один сбой безопасности может распространиться по экосистеме через транзитивные зависимости.
* Статическая защита + внимательность к версии + контроль зависимостей + своевременные обновления критичны.
---
Читать оригинал: https://www.aikido.dev/blog/npm-debug-and-chalk-packages-compromised
www.aikido.dev
npm debug and chalk packages compromised
The popular packages debug and chalk on npm have been compromised with malicious code
🔥3😱3👍1