首页 > 解决方案 > 函数式编程函数节奏

问题描述

我有一个软件项目,其中有一堆检查一件事的功能。所以代码看起来像这样:

const isRed = color => color === 'red;;
const isBlue = color => color === 'blue';

function whichColour(color){
  if(isRed(color){
    return 'X'
  }
  
   if(isBlue(color){
    return 'Y'
  }

}

这只是一个例子,应用程序有很多这些功能可以检查一件事。我认为拥有所有这些功能,只做一件事,是符合函数式编程范式的。

但是最近我一直认为这样做会更好:

const isColor = (color, targetColor) => color === targetColor;

function whichColor(color){
  if(isColor(color, 'red'){
    return 'X'
  }
  if(isColor(color, 'blue')){
    return 'Y'
  }
}

我认为它们都具有可读性,您可以看到所需的值,并且可以节省大量空间,因为我确实拥有很多这些小功能。但是,我不确定哪个实际上更好。

让我知道你的想法。

标签: javascriptfunctional-programmingsoftware-design

解决方案


更好的方法是总体上减少重复代码数量的方法,因为它在大多数情况下使代码更整洁、更平易近人。所以第二种方式是我在这种情况下会采用的方式。我建议做的唯一更改是命名方法sameColorcolorMatch.


推荐阅读