day21: side effect

今天提到的是 side effect,就像之前提到的,

side effect 通常出现在以下几种情况

state manipulation,
interacting with the I/O
database
log system
APIs

提到 side effect 未必是不好的,譬如 setTimeOut 的使用等....

但是如果是对於一些会影响开发流程,会造成状态、资料混乱的 side effect 则要避免,
那要避免 side effect 除了尽量避免在 function 内直接更改共享状态,
而维持资料的 immuable,还有一个方式,就是我们之前提到的 pure function 维持
function 的 Idempotency 幂等性。

Idempotency 幂等性

我们先来看看幕等性的定义,

在编程中,一个幂等操作的特点是其任意多次执行所产生的影响都和一次执行的影响相同
function programming 中的 pure function
function 在数学意义上是幂等的

   //  非幂等
   const notIdempotency = (num) => {
      return Math.random(num);
   }
   
   // 幂等
   const idempotentency = (num) => {
   console.log(num);
   }
   notIdempotency(3); // 虽机数字
   idempotentency(3); // 每次输入都是 3 
 

<<:  [22] [Discord 机器人] 02.掷骰机器人

>>:  [Day27] 实作 - 动画篇4

Day28-D3 进阶图表:气泡图

本篇大纲:绘制气泡图的关键、资料下载、范例图表的画面与互动效果、绘制图表 今天的一天一图表,我们要...

Day8 职训(机器学习与资料分析工程师培训班): django架构练习with vscode

人工智慧AIoT资料分析应用系统框架设计与实作 今日老师先带领同学实际使用Django的框架,来完成...

4. Senior 工程师是什麽样的角色?

前言 这篇文章感觉可以给从在思索要如何成长成senior的junior的工程师来看,或你可以藉此思...

给Excel添加图片注解

如何在Excel中添加图片注解呢?本期给大家分享添加图片注解和批量删除注解的技巧。 如图,将光标定位...

VPC(二)

VPC使用 昨天提到了关於VPC是什麽?以及如何简单的建立VPC XPN等的内容,那今天就来说说关於...