8 вещей на удалёнке, которые вернули мне концентрацию и спокойствие / Хабр
https://habr.com/ru/companies/minerva_media/articles/924882/
https://habr.com/ru/companies/minerva_media/articles/924882/
Forwarded from FrontEndDev
Вертикальный ритм
Почему вертикальный ритм важен и как его соблюсти при дизайне и разработке приложений.
https://habr.com/ru/companies/edison/articles/340670/
Почему вертикальный ритм важен и как его соблюсти при дизайне и разработке приложений.
https://habr.com/ru/companies/edison/articles/340670/
Forwarded from mefody.dev
Satisfies в TypeScript
Адам Ракис на примерах объясняет пользу ключевого слова
Если коротко, это что-то вроде
В этом коде есть неприятный баг. TypeScript смотрит на типы и пытается их пересечь. Из-за опциональности поля
Как словить эту ошибку вовремя? Помимо явного указания типов вообще везде, где только можно вписать тип, можно сделать так:
Здесь TS проверит реальное соответствие типу и ругнётся на лишнее поле. При этом автовыведение типов всё ещё работает.
Подробнее — по ссылке.
https://frontendmasters.com/blog/satisfies-in-typescript/
Адам Ракис на примерах объясняет пользу ключевого слова
satisfies в TypeScript.Если коротко, это что-то вроде
assert для типов. Представьте, что у вас есть тип с опциональным полем.
type Item = {
name: string;
description?: string;
};
function insertItems(items: Item[]) {}
insertItems(
backendItems.map(item => {
return {
name: item.item_name,
description_new: item.item_description,
};
})
);
В этом коде есть неприятный баг. TypeScript смотрит на типы и пытается их пересечь. Из-за опциональности поля
description ошибки в коде нет с точки зрения типов. Но если дальше массив в рантайме передаётся с клиента на бэкенд, получим, вероятно, ошибку.Как словить эту ошибку вовремя? Помимо явного указания типов вообще везде, где только можно вписать тип, можно сделать так:
insertItems(
backendItems.map(item => {
return {
name: item.item_name,
description_new: item.item_description,
} satisfies Item;
})
);
Здесь TS проверит реальное соответствие типу и ругнётся на лишнее поле. При этом автовыведение типов всё ещё работает.
Подробнее — по ссылке.
https://frontendmasters.com/blog/satisfies-in-typescript/
Frontend Masters
Satisfies in TypeScript
This is a post about one of TypeScript’s less common features: the satisfies keyword. It’s occasionally incredibly useful, and knowing how to properly wield it is a valuable trick to have up your sleeve. Let’s take a look!
Forwarded from CodeCamp
This media is not supported in your browser
VIEW IN TELEGRAM
Тренируем алгоритмы — нашёл прикольный визуальный тренажёр с пошаговым выполнением кода.
Тут 70+ алгоритмов на JavaScript, Java и C++, всё красиво и с наглядно.
Забираем
Тут 70+ алгоритмов на JavaScript, Java и C++, всё красиво и с наглядно.
Забираем
Forwarded from CodeCamp
Полезно: нашёл для вас хардкорный гайд по Kubernetes. Автор пилил его целых 2 года, пересобрал сотни кластеров и провёл тысячи перезапусков, чтобы излить свою мудрость в тексте.
Что ждёт:
— Полный пошаговый гайд по сборке Kuberentes;
— Удобные alias’ы, функции и обёртки;
— Десятки скриптов, которые реально работают в бою;
— Важные нюансы, о которых обычно молчат туториалы.
Все упаковано в удобную MDX-документацию с фокусом на практику и читаемость.
Ещё и на русском
Что ждёт:
— Полный пошаговый гайд по сборке Kuberentes;
— Удобные alias’ы, функции и обёртки;
— Десятки скриптов, которые реально работают в бою;
— Важные нюансы, о которых обычно молчат туториалы.
Все упаковано в удобную MDX-документацию с фокусом на практику и читаемость.
Ещё и на русском
Ну, погоди! Как я создал свою версию культовой игры: от схемы до корпуса / Хабр
https://habr.com/ru/companies/ruvds/articles/923274/
https://habr.com/ru/companies/ruvds/articles/923274/
Forwarded from Заметки разработчика
Вайб-кодинг, это когда два инженера могут создать технический долг как минимум для 50 инженеров.
📱 @dev_notes_ru
#joke
#joke
Please open Telegram to view this post
VIEW IN TELEGRAM
Утилитные TS типы для работы с Promise
Примеры типизации сложных кейсов при работе с Promise.all или вложенными Promise.
https://spin.atomicobject.com/better-promise-all/
Примеры типизации сложных кейсов при работе с Promise.all или вложенными Promise.
https://spin.atomicobject.com/better-promise-all/
Atomic Spin
A Better Promise.all()
I'll introduce a set of utility types and functions that make deep promise handling more ergonomic and type-safe.
Forwarded from Мир Linux
This media is not supported in your browser
VIEW IN TELEGRAM
Быстрый совет по Linux
При просмотре файла с помощью
Удобно для быстрого редактирования без выхода из
Хорошая идея задать свой редактор в
@linuxos_tg
При просмотре файла с помощью
less нажмите v, чтобы открыть файл в редакторе по умолчанию прямо на той строке, которую вы сейчас просматриваете.Удобно для быстрого редактирования без выхода из
less. По умолчанию редактором обычно является Vi, даже не Vim.Хорошая идея задать свой редактор в
.bashrc или .zshrc вот так:export EDITOR=nano
export VISUAL=$EDITOR
@linuxos_tg
Forwarded from mefody.dev
Дружелюбное введение в SVG
Джош Камю с хорошим туториалом для новичков по основам SVG. На интерактивных демках показывает, как рисовать линии, прямоугольники, круги, эллипсы и полигоны. Заодно объясняет отличие атрибутов
Опытные пользователи SVG вряд ли найдут для себя что-то новое, но, справедливости ради, среди нас не так уж много тех, кто часто пишет SVG руками.
https://www.joshwcomeau.com/svg/friendly-introduction-to-svg/
Джош Камю с хорошим туториалом для новичков по основам SVG. На интерактивных демках показывает, как рисовать линии, прямоугольники, круги, эллипсы и полигоны. Заодно объясняет отличие атрибутов
width и height от viewBox. И не только.Опытные пользователи SVG вряд ли найдут для себя что-то новое, но, справедливости ради, среди нас не так уж много тех, кто часто пишет SVG руками.
https://www.joshwcomeau.com/svg/friendly-introduction-to-svg/
Joshwcomeau
A Friendly Introduction to SVG • Josh W. Comeau
SVGs are one of the most remarkable technologies we have access to on the web. They’re first-class citizens, fully addressable with CSS and JavaScript. In this tutorial, I’ll cover all of the most important fundamentals, and show you some of the ridiculously…
Forwarded from FrontEndDev
ES-toolkit
Новая легковесная альтернатива для lodash с поддержкой типов и улучшенной производительностью.
https://es-toolkit.dev/
Новая легковесная альтернатива для lodash с поддержкой типов и улучшенной производительностью.
https://es-toolkit.dev/
Forwarded from FrontEndDev
Операторы логического присваивания
Использование короткого синтаксиса для упрощения инициализации переменных с условиями. Виды операторов, примеры, поддержка в браузерах.
https://allthingssmitty.com/2025/07/28/logical-assignment-operators-in-javascript-small-syntax-big-wins/
Использование короткого синтаксиса для упрощения инициализации переменных с условиями. Виды операторов, примеры, поддержка в браузерах.
https://allthingssmitty.com/2025/07/28/logical-assignment-operators-in-javascript-small-syntax-big-wins/
70+ докладов для фронтенд-разработчика на все случаи жизни
https://habr.com/p/929626/
https://habr.com/p/929626/
Habr
70+ докладов для фронтенд-разработчика на все случаи жизни
Привет, Хабр! Меня зовут Данил. Я фронтенд-разработчик, и мне очень нравится смотреть в записи или посещать митапы и конференции, на которых профессионалы делятся своим опытом в формате докладов. Я...
Что новенького есть в CSS в 2025 году?
https://habr.com/p/933484/
https://habr.com/p/933484/
Habr
Что новенького есть в CSS в 2025 году?
Привет, Хабр! Мне всегда было интересно наблюдать, как развивается CSS. Держу себя в форме, чтобы не пропустить что-то важное. А недавно подумал: «Почему бы не поделиться ими с подписчиками?». И я...
Please open Telegram to view this post
VIEW IN TELEGRAM
В TypeScript типы, как правило, достаточно точны, что оставляет мало места для неоднозначности. Хотя такая строгость полезна для объектов, при работе с объединениями она может ощущаться ограничивающей. В этой статье мы рассмотрим, как создавать открытые union-типы в TypeScript.
https://zencod.ru/articles/ts-unions-autocomplete/
Please open Telegram to view this post
VIEW IN TELEGRAM
Разберемся, как правильно типизировать Object.keys и Object.entries в TypeScript, чтобы получить точные ключи и значения объекта.
https://zencod.ru/articles/ts-object-keys-entries/
Please open Telegram to view this post
VIEW IN TELEGRAM
anton@gmail.com, anton+habr@gmail.com, an.ton@gmail.com — почему всё это один и тот же имейл
https://habr.com/p/934304/
https://habr.com/p/934304/
Habr
anton@gmail.com, anton+habr@gmail.com, an.ton@gmail.com — почему всё это один и тот же имейл
Однажды у нас в CRM появились 3 загадочных клиента. С каждым вёл переговоры отдельный продавец. А потом выяснилось, что эти клиенты — один и тот же человек с одним и тем же имейлом. Меня зовут...
Forwarded from Мир Linux
Небольшая шпаргалка по расширенным параметрам в Bash
PDF-версия в хорошем качестве — в комментариях
@linuxos_tg
Более подробно про расширенные параметры можно почитать на официальной странице.
PDF-версия в хорошем качестве — в комментариях
@linuxos_tg
Forwarded from FrontEndDev
Пара вещей про href в ссылках, о которых вы, возможно, не догадывались
Неожиданный спектр значений атрибута href — от протоколов mailto:, tel: до ссылок вроде href=".", href="?", data:-URI и медиа-фрагментов с временными метками. Мелочи, которые делают поведение ссылок более гибким и полезным.
https://blog.jim-nielsen.com/2025/href-value-possibilities/
Неожиданный спектр значений атрибута href — от протоколов mailto:, tel: до ссылок вроде href=".", href="?", data:-URI и медиа-фрагментов с временными метками. Мелочи, которые делают поведение ссылок более гибким и полезным.
https://blog.jim-nielsen.com/2025/href-value-possibilities/
👍1