moevm / oclint_extensions

2 stars 1 forks source link

Критерий -- уровень вложенности логических блоков в функции #27

Open mirrin00 opened 7 months ago

mirrin00 commented 7 months ago

Глубина вложенности логических блоков не должна превышать пороговое значение X

Пример плохого код:

void func(){
    // code
    for(;;){
        for(;;){
            if(cond){
                // code
                for(;;){
                    // code
                }
            }else{
                // code
            }
        }
    }
}

Пример хорошего кода:

void func_iter(){
    for(;;){
        if(cond){
            func_true();
        }else{
            func_false();
        }
    }
}

void func_true(){
    // code
    for(;;){
        // code
    }
}

void func_false(){
    //code
}

void func(){
    // code
    for(;;){
        func_iter();
    }
}
zmm commented 2 months ago

А это не про цикломатическую сложность / NPathComplexity?