贝尔曲线方法重构
创始人
2024-11-28 05:30:26
0

贝尔曲线方法重构(Bell Curve Method Refactoring),是一种通过将代码可读性,可扩展性和可维护性调整到最佳状态的方法。它基于三个主要步骤:规模化、分组化和提取化。

你可以在下面的示例中看到如何使用此方法:

原始代码:

function bigFunction(array1, array2, array3) {
    var newArray = [],
        i, j, k;

    for (i = 0; i < array1.length; i++) {
        for (j = 0; j < array2.length; j++) {
            for (k = 0; k < array3.length; k++) {
                if (array1[i] === array2[j] && array2[j] === array3[k]) {
                    newArray.push(array1[i]);
                }
            }
        }
    }

    return newArray;
}

规模化:

在此步骤中,我们尝试将大而杂乱的函数分解成一组小而简单的函数。

function bigFunction(array1, array2, array3) {
    return getCommonElements([
        getElementCombinations(array1),
        getElementCombinations(array2),
        getElementCombinations(array3)
    ]);
}

function getElementCombinations(array) {
    var combinations = [];
    var i, j;
    for (i = 0; i < array.length; i++) {
        for (j = i + 1; j < array.length; j++) {
            if (array[i] === array[j]) {
                combinations.push(array[i]);
            }
        }
    }
    return combinations;
}

function getCommonElements(arrayOfArrays) {
    return arrayOfArrays.reduce(function (array1, array2) {
        return array1.filter(function (element) {
            return array2.indexOf(element) !== -1;
        });
    });
}

分组化:

在此步骤中,我们将代码分组,使得同一类操作的代码在一起。

function bigFunction(array1, array2, array3) {
    return getCommon

相关内容

热门资讯

6分钟辅助!hhpoker是真... 6分钟辅助!hhpoker是真的假的,hhpoker真的有透视吗,演示教程(真是有挂)1、每一步都需...
第七分钟辅助!we poker... 第七分钟辅助!we poker插件,we poker免费辅助器,手筋教程(有挂方式)暗藏猫腻,小编详...
七分钟辅助!aa poker辅... 七分钟辅助!aa poker辅助包,pokemmo脚本辅助器下载,讲义教程(有挂秘籍)1、pokem...
第四分钟辅助!wepoker辅... 第四分钟辅助!wepoker辅助器安装包定制,aapoker透视脚本,大纲教程(有挂总结)所有人都在...
第四分钟辅助!wpk透视辅助靠... 第四分钟辅助!wpk透视辅助靠谱吗,wepoker透视苹果系统,诀窍教程(有挂猫腻);运wepoke...
七分钟辅助!aapoker透视... 七分钟辅助!aapoker透视脚本入口,wejoker开挂,学习教程(有挂教程)1、打开软件启动之后...
第四分钟辅助!淘宝买wepok... 第四分钟辅助!淘宝买wepoker透视有用吗,wpk俱乐部怎么作弊,积累教程(有挂规律)1、下载好淘...
6分钟辅助!we-poker软... 6分钟辅助!we-poker软件,购买的wpk辅助在哪里下载,积累教程(有挂技巧)购买的wpk辅助在...
第2分钟辅助!如何下载wepo... 第2分钟辅助!如何下载wepoker安装包,newpoker怎么安装脚本,教程书教程(今日头条)1、...
4分钟辅助!wepoker钻石... 4分钟辅助!wepoker钻石怎么看底牌,wepoker辅助器有哪些功能,法门教程(有挂详细)该软件...