Много интересного и необычного по 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
Мне тут подсказали что писать выражение за ифом в одну строку плохо потому что это “смесь которая читается тяжело”. И что лучше писать такие вещи через логические операторы, вроде
Проблема с однострочным написанием действительно есть - неконсистентность выравнивания и обособления скобками с многострочным вариантом исполняемого кода. Неконсистентность это всегда избыточная когнитивная нагрузка и лучше ее избегать. Но писать три строчки вместо двух меня тоже совсем не радует. Тут нет единственно верного решения и стоит смотреть на подготовленность каждого разработчика в команде к такому кодстайту: можете ли вы парсить код в голове быстро в независимости от кодстайла (тогда стоит писать меньше кода) или вы читаете код медленно.
Лично мне быстрее понимать менее выразительный, но более концентрированный код. По той же причине беру низкоконтрастную тему и узкий шрифт, см. пост выше.
А по поводу сайд-эффектов в логических выражениях - тут точно нет, потому что операторы
Из интересного: можно поискать ишьесы на подобные темы в prettier и посмотреть мой доклад про семантику в программировании.
isSome && effect().Проблема с однострочным написанием действительно есть - неконсистентность выравнивания и обособления скобками с многострочным вариантом исполняемого кода. Неконсистентность это всегда избыточная когнитивная нагрузка и лучше ее избегать. Но писать три строчки вместо двух меня тоже совсем не радует. Тут нет единственно верного решения и стоит смотреть на подготовленность каждого разработчика в команде к такому кодстайту: можете ли вы парсить код в голове быстро в независимости от кодстайла (тогда стоит писать меньше кода) или вы читаете код медленно.
Лично мне быстрее понимать менее выразительный, но более концентрированный код. По той же причине беру низкоконтрастную тему и узкий шрифт, см. пост выше.
А по поводу сайд-эффектов в логических выражениях - тут точно нет, потому что операторы
&& и || имеют семантику возврата значения, которая сильно диссонирует с логикой условного ветвления кода, да еще и баги может создавать в редких кейсах форматирования.Из интересного: можно поискать ишьесы на подобные темы в prettier и посмотреть мой доклад про семантику в программировании.
👍2🤔1
artalog
Мне тут подсказали что писать выражение за ифом в одну строку плохо потому что это “смесь которая читается тяжело”. И что лучше писать такие вещи через логические операторы, вроде isSome && effect(). Проблема с однострочным написанием действительно есть …
В личку спросили про
Условия: отсутствие стат типизации и колбек приходящий извне, который возвращает булеан или ничего (undefined).
Ну и потом кто-то передает
P.S. а есть языки в которых
баги которые могут вызывать &&. Это редкий кейс, но я с таким сталкивался.Условия: отсутствие стат типизации и колбек приходящий извне, который возвращает булеан или ничего (undefined).
Ну и потом кто-то передает
() => isSome || setTimeout(…) забыв о том что вернется intervalId. Ну и мы потом конвертируем число в тру и получаем позже ошибку.P.S. а есть языки в которых
void и undefined это про разное и можно явно понять что вернулось из функции, а не гадать, undefined это от return undefined (find на массиве или get на мапе) или от отсутствия return.👍4
Трамплины.
Еще два года назад я хотел написать про трамплины для “перепрыгивания” глубины стека в рекурсивных вычислениях на чистых функциях, но ни времени, не ума на это не хватило.
Поделюсь сейчас просто своими заметками и продублирую ссылки на ишье к ТС в котором применяются трамплины для обхода небольшой глубины рекурсии системы типов: TypeScripts Type System is Turing Complete, и неплохую статью с детальным разбором темы: Using trampolines to manage large recursive loops in JavaScript.
P.S. в недописанной статье я хотел сперва разобрать зачем вообще нужны вычисления на типах и сделал простенький, но полезный пример с тайп-сейф функцией нормализации. Там наглядно видно какие ошибки она помогает ловить, при этом помогая писать меньше тайп анотаций.
#fp #ts
Еще два года назад я хотел написать про трамплины для “перепрыгивания” глубины стека в рекурсивных вычислениях на чистых функциях, но ни времени, не ума на это не хватило.
Поделюсь сейчас просто своими заметками и продублирую ссылки на ишье к ТС в котором применяются трамплины для обхода небольшой глубины рекурсии системы типов: TypeScripts Type System is Turing Complete, и неплохую статью с детальным разбором темы: Using trampolines to manage large recursive loops in JavaScript.
P.S. в недописанной статье я хотел сперва разобрать зачем вообще нужны вычисления на типах и сделал простенький, но полезный пример с тайп-сейф функцией нормализации. Там наглядно видно какие ошибки она помогает ловить, при этом помогая писать меньше тайп анотаций.
#fp #ts
👍4
mermaid
Наконец, попробовал этот тул для текстового рисования графиков в Markdown. Совсем чуть-чуть и пока все понравилось, довольно удобно. На скринах то что я написал и как это рендерится.
Напомню, в Gitlab поддержка есть уже давно, а в Github появилась месяц назад.
Наконец, попробовал этот тул для текстового рисования графиков в Markdown. Совсем чуть-чуть и пока все понравилось, довольно удобно. На скринах то что я написал и как это рендерится.
Напомню, в Gitlab поддержка есть уже давно, а в Github появилась месяц назад.
👍7
artalog
Gitpod Я уже два года пользуюсь этим крутым сервисом для OSS, а осенью затащил селфхост на работу для нашего гитлаба. Вот список основных фич и особенностей, которые я тогда презентовал команде: - Запуск ВМ (виртуальной машины) в облаке с vscode сервером…
Дейли ремайндер, контеризация среды разработкии и gitpod в частности помогают не потерять все в случае очередного node-ipc.
👍7