clip-path.
Фича не то что бы часто нужная, но вот работая над #mono я прочувствовал на сколько она простая и мощная, в случае когда нужно решить задачу только с помощью css и не хочется / не можется лезть в html. Тогда можно обойтись одним псевдо элементом с заливкой.
А что бы быстро разобраться в этой фиче, можно воспользоваться bennettfeely.com/clippy. Особенно интересны примеры: Frame и Custom Polygon.
Стрелочки кнопок из скрина в предыдущем посте сделаны с помощью полигона.
Фича не то что бы часто нужная, но вот работая над #mono я прочувствовал на сколько она простая и мощная, в случае когда нужно решить задачу только с помощью css и не хочется / не можется лезть в html. Тогда можно обойтись одним псевдо элементом с заливкой.
А что бы быстро разобраться в этой фиче, можно воспользоваться bennettfeely.com/clippy. Особенно интересны примеры: Frame и Custom Polygon.
Стрелочки кнопок из скрина в предыдущем посте сделаны с помощью полигона.
👍13
Пришла таска: падает тест на CI, после апдейта пупетира (5 -> 13).
Падает по таймауту.
Локально проблема не воспроизводится.
Понатыкал консоль.логов и отправил на CI. Тест на 20 строк, но оказалось что падает уже на
Какой-то интуицией меняю
И вот сижу и думаю. Что это, как это, почему это, куда нужно было копать (поиск по доке
Но главный вопрос. Радоваться, что проблема быстро решилась, или грустить от непонимания как.
Падает по таймауту.
Локально проблема не воспроизводится.
Понатыкал консоль.логов и отправил на CI. Тест на 20 строк, но оказалось что падает уже на
goto(…).Какой-то интуицией меняю
waitUntil: ['networkidle0'] на waitForNetworkIdle(). Тест проходит.И вот сижу и думаю. Что это, как это, почему это, куда нужно было копать (поиск по доке
networkidle0 ничего не находит), создавать ли issue (их и так хватает).Но главный вопрос. Радоваться, что проблема быстро решилась, или грустить от непонимания как.
🤔7👍5
🛑 в этом посте есть ошибки 🛑
Идемпотентность.
TLDR: не мутируйте в useEffect!
1. Реакт позволяет с помощью useEffect описать какой-то эффект в ответ на изменение данных.
2. В рамках конкурентного рендеринга эффекты могут перевызываться лишний раз, под StrictMod в дев режиме они намеренно перевызываются дважды.
3. В доке по юзЭффекту не верно указано что это апи для мутаций, см. пункт 2.
Хорошо (получение списка элементов по фильтрам):
Плохо (изменение состояния лайка на посте):
Плохо (трансформация события в состояние):
Мутации не должны описываться реакциями, а должны дергаться как процедуры в месте обработки пользовательского события.
Исключением может быть, например, синхронизация распределенных данных, но это уже отдельная история.
#reactive
Идемпотентность.
TLDR: не мутируйте в useEffect!
1. Реакт позволяет с помощью useEffect описать какой-то эффект в ответ на изменение данных.
2. В рамках конкурентного рендеринга эффекты могут перевызываться лишний раз, под StrictMod в дев режиме они намеренно перевызываются дважды.
3. В доке по юзЭффекту не верно указано что это апи для мутаций, см. пункт 2.
Хорошо (получение списка элементов по фильтрам):
useEffect(
() => api.getList({ filters }),
[filters]
)
Плохо (изменение состояния лайка на посте):
useEffect(
() => api.toggleLike(props.id),
[isLiked]
)
Плохо (трансформация события в состояние):
useEffect(
() => isSubmited && api.buyProducts(shopList),
[isSubmited]
)
Мутации не должны описываться реакциями, а должны дергаться как процедуры в месте обработки пользовательского события.
Исключением может быть, например, синхронизация распределенных данных, но это уже отдельная история.
#reactive
👍15👎2
artalog
🛑 в этом посте есть ошибки 🛑 Идемпотентность. TLDR: не мутируйте в useEffect! 1. Реакт позволяет с помощью useEffect описать какой-то эффект в ответ на изменение данных. 2. В рамках конкурентного рендеринга эффекты могут перевызываться лишний раз, под StrictMod…
Строго говоря, REST или другие конвенции не могут гарантировать идемпотентность по статусу, потому что даже простой запрос товаров по фильтрам может, например, менять категорию пользователя в рекомендательной системе. Которая может сильно ломать персонализацию пользователей и всю систему их ранжирования, при избыточных запросах данных.
Поэтому, useEffect и подобные апи всегда стоит использовать с осторожностью.
Так же, в саму тему идемпотентности и клиент-серверного общения стоит погрузиться поглубже, там есть еще подводные камни:
- Стажёр Вася и его истории об идемпотентности API.
Поэтому, useEffect и подобные апи всегда стоит использовать с осторожностью.
Так же, в саму тему идемпотентности и клиент-серверного общения стоит погрузиться поглубже, там есть еще подводные камни:
- Стажёр Вася и его истории об идемпотентности API.
Хабр
Стажёр Вася и его истории об идемпотентности API
Идемпотентность — звучит сложно, говорят о ней редко, но это касается всех приложений, использующих API в своей работе. Меня зовут Денис Исаев, и я руковожу одной из бэкенд групп в Яндекс.Такси....
👍6
Много интересного и необычного по TypeScript можно подчерпнуть из @why_typescript_is_bad
Если у вас тоже есть находки фрикового поведения ТС пишите в @why_typescript_is_bad_chat, репостним в канал.
Если у вас тоже есть находки фрикового поведения ТС пишите в @why_typescript_is_bad_chat, репостним в канал.
🤔2👍1
#reatom
Вот вам красивая (ну я надеюсь) картинка с новой архитектурой реатома. Что поменялось:
- из компьютедов (и экшенов) можно планировать новые апдейты, которые будут выполнены до(!) эффектов.
- log выделился в отдельную очередь, из него нельзя делать апдейты.
Вроде, мелочи? Или, зачем так сложно? Дело в том, что эта последовательность действий выражает самое ожидаемое поведение от реактивной системы, а точнее то, как должен работать автобатчинг и как разделять вычисления и сайд эффекты так что бы их можно было понятно дебажить.
Сейчас я смотрю на системы без подобных решений как на недоразвитые. Очень рад, что на выходных смог доделать реализацию этой схемы в реатоме, по дороге добавив лайфсайкл хуки, динамическую подписку и отписку.
Сейчас рефакторю перф, пытаясь оставить его на уровне второго реатома.
Было очень больно и сложно (эдж-кейсы перфа, типизации, лимитов бандла), но я знаю, что итоговый результат будет помогать делать продукты быстрее и лучше, и стоит того.
Вот вам красивая (ну я надеюсь) картинка с новой архитектурой реатома. Что поменялось:
- из компьютедов (и экшенов) можно планировать новые апдейты, которые будут выполнены до(!) эффектов.
- log выделился в отдельную очередь, из него нельзя делать апдейты.
Вроде, мелочи? Или, зачем так сложно? Дело в том, что эта последовательность действий выражает самое ожидаемое поведение от реактивной системы, а точнее то, как должен работать автобатчинг и как разделять вычисления и сайд эффекты так что бы их можно было понятно дебажить.
Сейчас я смотрю на системы без подобных решений как на недоразвитые. Очень рад, что на выходных смог доделать реализацию этой схемы в реатоме, по дороге добавив лайфсайкл хуки, динамическую подписку и отписку.
Сейчас рефакторю перф, пытаясь оставить его на уровне второго реатома.
Было очень больно и сложно (эдж-кейсы перфа, типизации, лимитов бандла), но я знаю, что итоговый результат будет помогать делать продукты быстрее и лучше, и стоит того.
👍7❤1
Когда-то давно я увлекался выживанием в дикой природе. Поделюсь воспоминаниями о том как запастись провиантом и растянуть его на подольше. Надеюсь, никому не понадобится, а иначе поможет.
Человек несколько недель может жить без еды. Если есть макароны - уже хорошо, но лучше крупа. Не забывайте хранить их в сухости. Есть достаточно 1 - 2 раза в сутки, но не много. Если еда в избытке, питайтесь чуть чаще, но не наедайтесь, а лучше отдайте ее соседу.
Лучшая консервация - сушка. Рецептов и способов много. Самый тупой способ - нарезать очень тонкими ломтиками и сушить на сквозняке (подвесив) закрыв тканью от гнуса. Я бы начал с красного мяса. Потом в суп добавлять - не вкусно, но полезно. Курицу без термообработки не употреблять.
Следует придерживаться раздельного питания - животные и растительные белки в разные приемы пищи. Вообще, бобовые очень питательны, старайтесь запастись ими.
Финики, курага и изюм ваши лучшие друзья. Можно в кашу, можно так, тогда курагу лучше предварительно замочить на час.
Любой подпорченный продукт лучше не есть, отравление или простая диарея забирает много сил и воды.
Вода (питьевая) - самое главное что должно у вас быть. Наперед. Компоты / газировки / алкоголь и тп могут сделать только хуже. Лучше всего простая вода. Не дестилированная, но кипяченая. За раз выпивать не больше 100-150мл, за день не меньше 500мл. Без физических нагрузок можно попытаться уложиться в литр в день.
Снег обязательно кипятить. Проточную воду с улицы фильтровать через много мха и угля, тоже кипятить.
Если кипятить невозможно: марганцовка / йод / перекись.
Самый минимум аптечки: активированный уголь, йод, бинт и вата. Бф-клей, парацетамол, супрастин.
Годный контент по теме есть у Gleb Skorobogatov: ютуб, инста,
Человек несколько недель может жить без еды. Если есть макароны - уже хорошо, но лучше крупа. Не забывайте хранить их в сухости. Есть достаточно 1 - 2 раза в сутки, но не много. Если еда в избытке, питайтесь чуть чаще, но не наедайтесь, а лучше отдайте ее соседу.
Лучшая консервация - сушка. Рецептов и способов много. Самый тупой способ - нарезать очень тонкими ломтиками и сушить на сквозняке (подвесив) закрыв тканью от гнуса. Я бы начал с красного мяса. Потом в суп добавлять - не вкусно, но полезно. Курицу без термообработки не употреблять.
Следует придерживаться раздельного питания - животные и растительные белки в разные приемы пищи. Вообще, бобовые очень питательны, старайтесь запастись ими.
Финики, курага и изюм ваши лучшие друзья. Можно в кашу, можно так, тогда курагу лучше предварительно замочить на час.
Любой подпорченный продукт лучше не есть, отравление или простая диарея забирает много сил и воды.
Вода (питьевая) - самое главное что должно у вас быть. Наперед. Компоты / газировки / алкоголь и тп могут сделать только хуже. Лучше всего простая вода. Не дестилированная, но кипяченая. За раз выпивать не больше 100-150мл, за день не меньше 500мл. Без физических нагрузок можно попытаться уложиться в литр в день.
Снег обязательно кипятить. Проточную воду с улицы фильтровать через много мха и угля, тоже кипятить.
Если кипятить невозможно: марганцовка / йод / перекись.
Самый минимум аптечки: активированный уголь, йод, бинт и вата. Бф-клей, парацетамол, супрастин.
Годный контент по теме есть у Gleb Skorobogatov: ютуб, инста,
👍12🤔4😁1
Да я не могу ничего вразумительного написать по поводу военных действий в Украине. Сколько не пытался.
Надеюсь, что это скоро закончится и мирные жители перестанут страдать. Держитесь! Я молюсь о мире.
Дальше только тех. контент.
Надеюсь, что это скоро закончится и мирные жители перестанут страдать. Держитесь! Я молюсь о мире.
Дальше только тех. контент.
👍22👎2🤔2
Вы и так об этом скоро услышите или уже знаете, но не могу не поделиться: пропосал на синтаксис описания статических типов для ECMAScript.
Он будет опциональный и не будет влиять на рантайм. Это просто стандартизация экосистемы. И это хорошо.
Он будет опциональный и не будет влиять на рантайм. Это просто стандартизация экосистемы. И это хорошо.
🤔7👍3👎1
CleanShot 2022-03-11 at 11.59.51.png
274.8 KB
#ide
Поменял тему, радуюсь.
Carbonight (rainglow), Iosevka Term 18 600.
Да, я большой сторонник низкоконтрастных тем. Лично мне, разноцветные слова пляшущие тут и там только мешают, особенно когда подсветка не попадает в семантику (бывает в ~15% случаев, но все равно полностью рушит к себе доверие).
Поменял тему, радуюсь.
Carbonight (rainglow), Iosevka Term 18 600.
Да, я большой сторонник низкоконтрастных тем. Лично мне, разноцветные слова пляшущие тут и там только мешают, особенно когда подсветка не попадает в семантику (бывает в ~15% случаев, но все равно полностью рушит к себе доверие).
🤔5👍3🔥1
artalog
CleanShot 2022-03-11 at 11.59.51.png
CleanShot 2022-03-11 at 12.19.00@2x.png
560.2 KB
Еще пара скринов текущей темы и Nord, на который намного проще пересесть, если все же захочется попробовать что-то низкоконтрастное.
🤔1