函数式编程函数节奏
Functional Programming function cadence
我有一个软件项目,其中有一堆功能可以检查一件事。所以代码看起来像这样:
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'
}
}
我认为它们都具有可读性,因为您可以看到所需的值,并且它会节省很多 space 因为我确实有很多这些小功能。但是,我不确定哪个更好。
告诉我你的想法。
更好的方法是减少一般重复代码的数量,因为它使代码在大多数情况下更整洁、更容易理解。所以第二种方法是我在这种情况下会采用的方法。我建议做的唯一更改是将方法命名为 sameColor
或 colorMatch
。
const colors = {
red: 'X',
blue: 'Y',
green: 'Z',
// a lot of other colors
}
function whichColor(color) {
return colors[color]
}
我有一个软件项目,其中有一堆功能可以检查一件事。所以代码看起来像这样:
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'
}
}
我认为它们都具有可读性,因为您可以看到所需的值,并且它会节省很多 space 因为我确实有很多这些小功能。但是,我不确定哪个更好。
告诉我你的想法。
更好的方法是减少一般重复代码的数量,因为它使代码在大多数情况下更整洁、更容易理解。所以第二种方法是我在这种情况下会采用的方法。我建议做的唯一更改是将方法命名为 sameColor
或 colorMatch
。
const colors = {
red: 'X',
blue: 'Y',
green: 'Z',
// a lot of other colors
}
function whichColor(color) {
return colors[color]
}