цикломатическая сложность любой программы может быть определена по формуле:
E — количество рёбер в потоке
N — количество узлов или блоков
P — количество узлов, имеющих точки выхода
M = E - N + P, где:E — количество рёбер в потоке
N — количество узлов или блоков
P — количество узлов, имеющих точки выхода
Forwarded from Про
#react_perf
Ways to optimize runtime performance in react:
memo, useCallback
Virtualization
Web workers
Wasm
Offscreen canvas (canvas being sent to web worker) - crazy shit!
Ways to optimize runtime performance in react:
memo, useCallback
Virtualization
Web workers
Wasm
Offscreen canvas (canvas being sent to web worker) - crazy shit!
что тут произошло?
мы добавили параметр
это позволяет уменьшить количество фреймов, хранимых в памяти
мы добавили параметр
cur в который записываем текущий результатэто позволяет уменьшить количество фреймов, хранимых в памяти
нашла хорошую картинку
слева — хвостовая рекурсия, справа — обычная
как мы видим, у хвостовой меньший уровень вложенности
картинка вот из этой статьи:
https://maxglassie.github.io/2017/08/24/tail-recursion.html
слева — хвостовая рекурсия, справа — обычная
как мы видим, у хвостовой меньший уровень вложенности
картинка вот из этой статьи:
https://maxglassie.github.io/2017/08/24/tail-recursion.html
главная польза от иммутабельности в реальной жизни
когда мы следуем принципам иммутабельности, мы не мутируем объекты, а пересоздаем.
и когда после пересоздания мы сравниваем объекты, они оказываются разными (пушто на них разные ссылки) и так мы можем легко понять, что в объекте что-то изменилось
когда мы следуем принципам иммутабельности, мы не мутируем объекты, а пересоздаем.
и когда после пересоздания мы сравниваем объекты, они оказываются разными (пушто на них разные ссылки) и так мы можем легко понять, что в объекте что-то изменилось
Значения с плавающей точкой
Чтобы определить значение с плавающей точкой, необходимо ввести десятичную
точку и как минимум одну цифру после нее.
Для хранения значений с плавающей точкой требуется вдвое больше памяти, чем для целых чисел и ECMAScгipt по возможности преобразует значения в целые числа. Если после десятичной точки нет разрядов, число становится целым.
Если значение не имеет дробной части (например,
Чтобы определить значение с плавающей точкой, необходимо ввести десятичную
точку и как минимум одну цифру после нее.
10.1
Для хранения значений с плавающей точкой требуется вдвое больше памяти, чем для целых чисел и ECMAScгipt по возможности преобразует значения в целые числа. Если после десятичной точки нет разрядов, число становится целым.
Если значение не имеет дробной части (например,
1 .0), оно также преобразуется в целое число, например:Очень большие и очень малые числа с плавающей точкой можно представлять
в экспоненциальном формате (e-notation), в котором значения умножаются на 10
в соответствующей степени
в экспоненциальном формате (e-notation), в котором значения умножаются на 10
в соответствующей степени
var floatNum = 3 . 125е7Можете понимать эту запись как умножение числа 3.125 на 10^7
// 31250000
Значения с плавающей точкой представляются с точностью до 17 -го десятичного разряда, но все равно они гораздо менее точны в арифметических вычислениях, чем
целые числа.
Например, сложение 0.1 и 0.2 дает в результате 0.30000000000000004 вместо 0.3.
целые числа.
Например, сложение 0.1 и 0.2 дает в результате 0.30000000000000004 вместо 0.3.
Ошибки округления - это побочный эффект арифметических операций над числами
с плавающей точкой формата IEEE-754, а не особенность ECMAScript. В других языках,
в которых используется этот формат, наблюдаются такие же проблемы.
с плавающей точкой формата IEEE-754, а не особенность ECMAScript. В других языках,
в которых используется этот формат, наблюдаются такие же проблемы.
Создавать свои сниппеты просто и приятно и они улучшают девелопер экспириенс в миллион раз ✨
Документация лежит тут: https://code.visualstudio.com/docs/editor/userdefinedsnippets
А вот удобнейший сниппет-генератор: https://snippet-generator.app
Документация лежит тут: https://code.visualstudio.com/docs/editor/userdefinedsnippets
А вот удобнейший сниппет-генератор: https://snippet-generator.app
Visualstudio
Snippets in Visual Studio Code
It is easy to add code snippets to Visual Studio Code both for your own use or to share with others on the public Extension Marketplace. TextMate .tmSnippets files are supported.