ืžื•ืจื›ื‘ื•ืช ืฆื™ืงืœื•ืžื˜ื™ืช

ื”ื™ืกื•ื“ื•ืช ืฉืœ ืžื•ืจื›ื‘ื•ืช ืฆื™ืงืœื•ืžื˜ื™ืช ื•ืžื“ื•ืข ื›ืœ ืžืชื›ื ืช ืฆืจื™ืš ืœื“ืขืช ืขืœ ื–ื”

IN-COM ืคื‘ืจื•ืืจ 20, 2024

ืกื™ืงืœื•ืžื˜ื™ืช ืžื•ืจื›ื‘ื•ืช ื”ื™ื ืžื“ื“ ืชื•ื›ื ื” ื—ื™ื•ื ื™ ืฉืžื•ื“ื“ ืืช ื”ืื•ืคื™ ื”ืžื•ืจื›ื‘ ืฉืœ ืชื•ื›ื ื™ืช ืขืœ ื™ื“ื™ ื ื™ืชื•ื— ื–ืจื™ืžืช ื”ื‘ืงืจื” ืฉืœื”. ื–ื” ืžืื•ื“ ืžื•ืขื™ืœ ืœื”ื ื“ืกืช ืชื•ื›ื ื”.

ื–ื” ื—ืฉื•ื‘ ื‘ืžื™ื•ื—ื“ ืœืžืชื›ื ืชื™ื ืžื›ื™ื•ื•ืŸ ืฉื”ื•ื ืžืกืคืง ืชื•ื‘ื ื•ืช ืขืœ ืžื•ืจื›ื‘ื•ืช ื”ืงื•ื“ ื•ืžืกื™ื™ืข ื‘ื–ื™ื”ื•ื™ ื‘ืขื™ื•ืช ืคื•ื˜ื ืฆื™ืืœื™ื•ืช ื”ืงืฉื•ืจื•ืช ืœืชื—ื–ื•ืงื” ื•ืœื‘ื“ื™ืงื•ืช.

ื‘ื‘ืกื™ืกื•, CC ืžื—ื•ืฉื‘ ืขืœ ืกืžืš ื’ืจืฃ ื–ืจื™ืžืช ื”ื‘ืงืจื” ืฉืœ ืชื•ื›ื ื™ืช, ื›ืืฉืจ ืฆืžืชื™ื ืžื™ื™ืฆื’ื™ื ื”ืฆื”ืจื•ืช ื‘ื•ื“ื“ื•ืช ื•ืžืกืคืจ ื”ืงืฆื•ื•ืช ืžืชืืจ ืืช ื–ืจื™ืžืช ื”ื‘ืงืจื” ื‘ื™ื ื™ื”ื.

SMART TS XL

ืขื•ื–ืจ ืœืš ืœืฉืœื•ื˜ ื‘ืžื•ืจื›ื‘ื•ืช ืฆื™ืงืœื•ืžื˜ื™ืช, ืœื™ื™ืขืœ ืืช ื”ื‘ื™ืฆื•ืขื™ื ื•ืœืžื ื•ืข ื‘ืื’ื™ื ื ืกืชืจื™ื

ื’ืœื• ืขื•ื“โ€ฆ

ืชื•ื›ืŸ ื”ืขื ื™ื™ื ื™ื

ื”ื‘ื ืช ืžื•ืจื›ื‘ื•ืช ืฆื™ืงืœื•ืžื˜ื™ืช (CC)

ืžื”ื™ ืžื•ืจื›ื‘ื•ืช ืฆื™ืงืœื•ืžื˜ื™ืช (CC)?

ืกื™ืงืœื•ืžื˜ื™ืช ืžื•ืจื›ื‘ื•ืช (CC) ื”ื™ื ืžื“ื“ ืชื•ื›ื ื” ื”ืžืฉืžืฉ ืœืžื“ื™ื“ืช ื”ืžื•ืจื›ื‘ื•ืช ืฉืœ ื–ืจื™ืžืช ื”ื‘ืงืจื” ืฉืœ ืชื•ื›ื ื™ืช. ื”ื•ืฆื’ ืขืœ ื™ื“ื™ Thomas J. McCabe ื‘ืฉื ืช 1976, CC ืžื›ืžืช ืืช ืžืกืคืจ ื ืชื™ื‘ื™ ื”ื‘ื™ืฆื•ืข ื”ืขืฆืžืื™ื™ื ื‘ืชื•ืš ืคื•ื ืงืฆื™ื” ืื• ืชื•ื›ื ื™ืช. ื›ืœ ื ืงื•ื“ืช ื”ื—ืœื˜ื”, ื›ื’ื•ืŸ ื”ืฆื”ืจื•ืช ืžื•ืชื ื•ืช (ืื, ืื—ืจืช, ืžืชื’) ื•ืœื•ืœืื•ืช (for, while), ืชื•ืจืžืช ืœืžื•ืจื›ื‘ื•ืช ื”ื–ื•. ื”ืžื“ื“ ืขื•ื–ืจ ืœืžืคืชื—ื™ื ืœื”ื‘ื™ืŸ ืืช ื”ืกื™ื›ื•ื ื™ื ื”ืคื•ื˜ื ืฆื™ืืœื™ื™ื ื”ืงืฉื•ืจื™ื ืœืงื˜ืข ืงื•ื“, ื›ื’ื•ืŸ ื”ืกื‘ื™ืจื•ืช ืœืคื’ืžื™ื ื•ืจืžืช ื”ืžืืžืฅ ื”ื ื“ืจืฉืช ืœื‘ื“ื™ืงื” ื•ืชื—ื–ื•ืงื”. ืฆื™ื•ืŸ CC ื’ื‘ื•ื” ื™ื•ืชืจ ืžืฆื‘ื™ืข ืขืœ ื›ืš ืฉื ื“ืจืฉื™ื ื™ื•ืชืจ ืžืงืจื™ ื‘ื“ื™ืงื”, ืžื” ืฉื”ื•ืคืš ืืช ื”ืงื•ื“ ืœืงืฉื” ื™ื•ืชืจ ืœืชื—ื–ื•ืงื” ื•ื ื•ื˜ื” ื™ื•ืชืจ ืœืฉื’ื™ืื•ืช.

ื”ื ื•ืกื—ื” ืœื—ื™ืฉื•ื‘ CC ื”ื™ื: , ื›ืืฉืจ ืžื™ื™ืฆื’ ืืช ืžืกืคืจ ื”ืงืฆื•ื•ืช, ืžืกืคืจ ื”ืฆืžืชื™ื ื•ืžืกืคืจ ื”ืจื›ื™ื‘ื™ื ื”ืžื—ื•ื‘ืจื™ื ื‘ื’ืจืฃ ื–ืจื™ืžืช ื”ื‘ืงืจื”. ื‘ื“ืจืš ื›ืœืœ, ืขืจืš CC ืฉืœ 10 ืื• ืคื—ื•ืช ื ื—ืฉื‘ ืœื ื™ื”ื•ืœ. ืขืจื›ื™ื ืžืขืœ ืกืฃ ื–ื” ืžืฆื‘ื™ืขื™ื ืขืœ ื”ืฆื•ืจืš ื‘-refactoring ื›ื“ื™ ืœืฉืคืจ ืืช ื”ืงืจื™ืื•ืช ื•ื”ื‘ื“ื™ืงื”.

public void handleRequest(boolean isAdmin, boolean isUser, boolean isGuest) {
    if (isAdmin) {
        System.out.println("Admin Access Granted");
    } else if (isUser) {
        System.out.println("User Access Granted");
    } else if (isGuest) {
        System.out.println("Guest Access Limited");
    } else {
        System.out.println("Access Denied");
    }
}

ืœืงื•ื“ ื”ื "ืœ ื™ืฉ ื ืงื•ื“ื•ืช ื”ื—ืœื˜ื” ืžืจื•ื‘ื•ืช, ื•ื›ืชื•ืฆืื” ืžื›ืš ืžื•ืจื›ื‘ื•ืช ืฆื™ืงืœื•ืžื˜ื™ืช ืฉืœ 4. ื”ืžืฉืžืขื•ืช ื”ื™ื ืฉืœืคื—ื•ืช ืืจื‘ืขื” ืžืงืจื™ ื‘ื“ื™ืงื” ื ื“ืจืฉื™ื ื›ื“ื™ ืœื”ื‘ื˜ื™ื— ื›ื™ืกื•ื™ ืžืœื ืฉืœ ื”ื ืชื™ื‘.

ืžื“ื•ืข ืžื•ืจื›ื‘ื•ืช ืฆื™ืงืœื•ืžื˜ื™ืช ื—ืฉื•ื‘ื”

ืžื•ืจื›ื‘ื•ืช ืฆื™ืงืœื•ืžื˜ื™ืช (CC) ื”ื™ื ืงืจื™ื˜ื™ืช ืžื›ื™ื•ื•ืŸ ืฉื”ื™ื ืžืฉืคื™ืขื” ื™ืฉื™ืจื•ืช ืขืœ ืื™ื›ื•ืช ื”ืชื•ื›ื ื”, ื”ืชื—ื–ื•ืงื” ื•ืžืืžืฅ ื”ื‘ื“ื™ืงื”. ืขืจื›ื™ CC ื’ื‘ื•ื”ื™ื ืžืฆื‘ื™ืขื™ื ืœืจื•ื‘ ืขืœ ืงื•ื“ ืžื•ืจื›ื‘ ืฉืงืฉื” ืœื”ื‘ื™ืŸ, ืžื•ืขื“ ื™ื•ืชืจ ืœืฉื’ื™ืื•ืช ื•ืžืืชื’ืจ ืœื‘ื“ื™ืงื” ื™ืกื•ื“ื™ืช. ืœืขื•ืžืช ื–ืืช, ืžื•ืจื›ื‘ื•ืช ื ืžื•ื›ื” ื™ื•ืชืจ ืžืงื“ืžืช ืงื•ื“ ืฉืงืœ ื™ื•ืชืจ ืœืชื—ื–ืง, ืžืคื—ื™ืชื” ื—ื•ื‘ื•ืช ื˜ื›ื ื™ื™ื ื•ืžืฉืคืจืช ืืช ื”ืืžื™ื ื•ืช ื”ื›ื•ืœืœืช. ืžื“ื™ื“ืช CC ืžืืคืฉืจืช ืœืฆื•ื•ืชื™ ืคื™ืชื•ื— ืœื”ืขืจื™ืš ืืช ื”ื™ืฆื™ื‘ื•ืช ืฉืœ ื‘ืกื™ืก ื”ืงื•ื“ ืฉืœื”ื, ื•ืžื‘ื˜ื™ื—ื” ืฉื”ืชื•ื›ื ื” ืชื™ืฉืืจ ืื™ืชื ื” ืขื ื”ื•ืกืคืช ืชื›ื•ื ื•ืช ื—ื“ืฉื•ืช.

ื™ืชืจ ืขืœ ื›ืŸ, CC ืžืžืœื ืชืคืงื™ื“ ืžื›ืจื™ืข ื‘ืชื›ื ื•ืŸ ื”ื‘ื“ื™ืงื•ืช. ื”ื•ื ืงื•ื‘ืข ืืช ื”ืžืกืคืจ ื”ืžื™ื ื™ืžืœื™ ืฉืœ ืžืงืจื™ ื‘ื“ื™ืงื” ื”ื ื“ืจืฉื™ื ืœื”ืฉื’ืช ื›ื™ืกื•ื™ ืกื ื™ืฃ ืžืœื. ื›ืœื™ื ืื•ื˜ื•ืžื˜ื™ื™ื ื”ืžืฉื•ืœื‘ื™ื ื‘ืฆื™ื ื•ืจื•ืช CI/CD ื™ื›ื•ืœื™ื ืœื ื˜ืจ ื‘ืื•ืคืŸ ืจืฆื™ืฃ ืงื˜ืขื™ CC ื•ืงื•ื“ ื“ื’ืœ ื”ื—ื•ืจื’ื™ื ืžืกืฃ ืžื•ื’ื“ืจ ืžืจืืฉ. ื’ื™ืฉื” ืคืจื•ืืงื˜ื™ื‘ื™ืช ื–ื• ืžื‘ื˜ื™ื—ื” ืฉื”ืžื•ืจื›ื‘ื•ืช ืžื ื•ื”ืœืช ื‘ืฉืœื‘ ืžื•ืงื“ื ื‘ืชื”ืœื™ืš ื”ืคื™ืชื•ื—, ืžื•ื ืขืช ืคื’ืžื™ื ืคื•ื˜ื ืฆื™ืืœื™ื™ื ื•ื”ืคื—ืชืช ืขืœื•ื™ื•ืช ืืจื•ื›ื•ืช ื˜ื•ื•ื—.

pipeline {
    agent any
    stages {
        stage('Cyclomatic Complexity Check') {
            steps {
                sh 'static-analysis-tool --check-complexity --threshold 10'
            }
            post {
                failure {
                    error 'Pipeline failed due to high cyclomatic complexity.'
                }
            }
        }
    }
}

ื”ื“ื•ื’ืžื” ืฉืœ Jenkins Pipeline ืœืขื™ืœ ืžื“ื’ื™ืžื” ื›ื™ืฆื“ ื ื™ืชืŸ ืœื‘ืฆืข ื‘ื“ื™ืงื•ืช CC ืื•ื˜ื•ืžื˜ื™ื•ืช, ืœืขืฆื•ืจ ืืช ื”ืคืจื™ืกื” ืฉืœ ืงื•ื“ ืžื•ืจื›ื‘ ืžื“ื™ ื•ืฉืžื™ืจื” ืขืœ ืชืงื ื™ ืื™ื›ื•ืช ืชื•ื›ื ื”.

ื›ื™ืฆื“ CC ืžืฉืคื™ืขื” ืขืœ ื‘ื“ื™ืงื•ืช ื•ืชื—ื–ื•ืงื”

ืžื•ืจื›ื‘ื•ืช ืฆื™ืงืœื•ืžื˜ื™ืช (CC) ืžืฉืคื™ืขื” ืขืœ ืชื”ืœื™ืš ื”ื‘ื“ื™ืงื” ืขืœ ื™ื“ื™ ืงื‘ื™ืขืช ืžืกืคืจ ืžืงืจื™ ื”ื‘ื“ื™ืงื” ื”ื“ืจื•ืฉื™ื ืœื›ื™ืกื•ื™ ื›ืœ ื ืชื™ื‘ ื‘ื™ืฆื•ืข. ืขืจื›ื™ CC ื’ื‘ื•ื”ื™ื ืคื™ืจื•ืฉื ืฉื ื“ืจืฉืช ื‘ื“ื™ืงื•ืช ืžืงื™ืคื•ืช ื™ื•ืชืจ, ืžื” ืฉืžื•ื‘ื™ืœ ืœืขืœื•ื™ื•ืช ืžื•ื’ื‘ืจื•ืช ื•ืœืžื—ื–ื•ืจื™ ื‘ื“ื™ืงื” ืืจื•ื›ื™ื ื™ื•ืชืจ. ื‘ื ื•ืกืฃ, ืงืฉื” ื™ื•ืชืจ ืœืชื—ื–ืง ืงื•ื“ ืžื•ืจื›ื‘ ืžื›ื™ื•ื•ืŸ ืฉื”ื•ื ืžื’ื“ื™ืœ ืืช ื”ืกื‘ื™ืจื•ืช ืœื”ื›ื ืกืช ืคื’ืžื™ื ื‘ืžื”ืœืš ืฉื™ื ื•ื™ื™ื ืขืชื™ื“ื™ื™ื. ื”ืคื—ืชืช CC ื‘ืืžืฆืขื•ืช Refactoring ืœื ืจืง ืžืคืฉื˜ืช ืืช ื”ื‘ื“ื™ืงื•ืช ืืœื ื’ื ื”ื•ืคื›ืช ืืช ื‘ืกื™ืก ื”ืงื•ื“ ืœื”ืชืืžื” ืœืฉื™ื ื•ื™ื™ื.

ืฉื™ื ื•ื™ ืืกื˜ืจื˜ื’ื™ื•ืช ื›ื’ื•ืŸ ืคื™ืจื•ืง ืคื•ื ืงืฆื™ื•ืช ื’ื“ื•ืœื•ืช, ืฉื™ืžื•ืฉ ื‘ืžื‘ื ื™ื ืžื•ืชื ื™ื ืคืฉื•ื˜ื™ื ื™ื•ืชืจ ื•ื™ื™ืฉื•ื ื“ืคื•ืกื™ ืขื™ืฆื•ื‘ ื›ืžื• ื“ืคื•ืก ื”ืืกื˜ืจื˜ื’ื™ื” ื™ื›ื•ืœื™ื ืœื”ืคื—ื™ืช ืžืฉืžืขื•ืชื™ืช ืืช ื”-CC. ืคืจืงื˜ื™ืงื•ืช ืืœื” ืžืฉืคืจื•ืช ืืช ื‘ื”ื™ืจื•ืช ื”ืงื•ื“ ื•ืžืžื–ืขืจื•ืช ืฉื’ื™ืื•ืช ืคื•ื˜ื ืฆื™ืืœื™ื•ืช. ื›ืœื™ ื ื™ืชื•ื— ืงื•ื“ ืกื˜ื˜ื™ ืื•ื˜ื•ืžื˜ื™ื™ื ื™ื›ื•ืœื™ื ืœื”ืžืœื™ืฅ โ€‹โ€‹ืขืœ ืฉื™ื ื•ื™ื™ื ืืœื”, ื•ืžื‘ื˜ื™ื—ื™ื ืฉื™ืคื•ืจ ืื™ื›ื•ืช ืžืชืžื™ื“ ืžื‘ืœื™ ืœืฉื‘ืฉ ืืช ื–ืจื™ืžื•ืช ื”ืขื‘ื•ื“ื” ืฉืœ ื”ืคื™ืชื•ื—.

public int determineShippingCost(boolean expedited, boolean international, boolean heavy) {
    if (expedited && international && heavy) return 100;
    if (expedited && international) return 80;
    if (international) return 60;
    if (expedited) return 40;
    return 20;
}

ืœืคื•ื ืงืฆื™ื” ืฉืœืขื™ืœ ื™ืฉ CC ืฉืœ 5, ื”ืžืฆื™ื™ืŸ ืืช ื”ืฆื•ืจืš ื‘ื—ืžื™ืฉื” ืžืงืจื™ ื‘ื“ื™ืงื” ืœืคื—ื•ืช. ื”ืคื™ื›ืช ืงื•ื“ ื–ื” ืœืฉื™ื˜ื•ืช ืงื˜ื ื•ืช ื™ื•ืชืจ ื™ืฆืžืฆื ืืช ื”-CC, ื•ื™ืคืฉื˜ ืืช ื”ื‘ื“ื™ืงื•ืช ื•ื”ืชื—ื–ื•ืงื” ื›ืื—ื“.

ื”ืชืคืงื™ื“ ืฉืœ ื ื™ืชื•ื— ืงื•ื“ ืกื˜ื˜ื™ ื‘ื ื™ื”ื•ืœ CC

ื›ืœื™ ื ื™ืชื•ื— ืงื•ื“ ืกื˜ื˜ื™ ื—ื™ื•ื ื™ื™ื ื‘ื ื™ื”ื•ืœ ืžื•ืจื›ื‘ื•ืช ืฆื™ืงืœื•ืžื˜ื™ืช (CC). ื›ืœื™ื ืืœื” ืžื—ืฉื‘ื™ื ืื•ื˜ื•ืžื˜ื™ืช CC ืขื‘ื•ืจ ื›ืœ ืคื•ื ืงืฆื™ื” ืื• ืžื•ื“ื•ืœ, ื•ืžืกืคืงื™ื ืชื•ื‘ื ื•ืช ืœื’ื‘ื™ ืชื—ื•ืžื™ื ืžื•ืจื›ื‘ื™ื ื”ื“ื•ืจืฉื™ื ืขื™ื‘ื•ื“ ืžื—ื“ืฉ. ืขืœ ื™ื“ื™ ืฉื™ืœื•ื‘ ื ื™ืชื•ื— ืกื˜ื˜ื™ ื‘ืฆื™ื ื•ืจื•ืช CI/CD, ืฆื•ื•ืชื™ ืคื™ืชื•ื— ื™ื›ื•ืœื™ื ืœื”ื‘ื˜ื™ื— ื ื™ื˜ื•ืจ ืจืฆื™ืฃ ืฉืœ CC ืœืื•ืจืš ื›ืœ ืžื—ื–ื•ืจ ื—ื™ื™ ื”ืชื•ื›ื ื”. ื”ืชืจืื•ืช ืื•ื˜ื•ืžื˜ื™ื•ืช ืžื•ื“ื™ืขื•ืช ืœืžืคืชื—ื™ื ืขืœ ื—ืจื™ื’ื” ืžืกืคื™ CC, ื•ืžืืคืฉืจื•ืช ืชื™ืงื•ื ื™ื ื‘ื–ืžืŸ ื•ืžืงื“ืžื™ื ืฉื™ื˜ื•ืช ืงื™ื“ื•ื“ ืžื•ืžืœืฆื•ืช.

ื‘ื ื•ืกืฃ, ื›ืœื™ ื ื™ืชื•ื— ืกื˜ื˜ื™ ืžืฆื™ืขื™ื ื”ืฆืขื•ืช ืœื”ืคื—ืชืช CC, ื›ื’ื•ืŸ ืคื™ืฉื•ื˜ ืžื‘ื ื™ ื‘ืงืจื”, ื™ื™ืฉื•ื ื“ืคื•ืกื™ ืขื™ืฆื•ื‘ ื•ืคื™ืจื•ืง ืคื•ื ืงืฆื™ื•ืช ื’ื“ื•ืœื•ืช. ืœื•ืœืืช ืžืฉื•ื‘ ื–ื• ืžืกื™ื™ืขืช ืœืฉืžื•ืจ ืขืœ ื‘ืกื™ืก ืงื•ื“ ื ืงื™, ืžืคื—ื™ืชื” ื—ื•ื‘ื•ืช ื˜ื›ื ื™ื™ื ื•ืžืฉืคืจืช ืืช ื™ื›ื•ืœืช ื”ืชื—ื–ื•ืงื” ื”ื›ื•ืœืœืช ืฉืœ ื”ืชื•ื›ื ื”. ืฉื™ืœื•ื‘ ื›ืœื™ื ืืœื” ื‘ืชื”ืœื™ื›ื™ ืคื™ืชื•ื— ืชื•ืžืš ื‘ื‘ืจื™ืื•ืช ื”ืคืจื•ื™ืงื˜ ืœื˜ื•ื•ื— ืืจื•ืš ื•ืžืฆืžืฆื ืžืืžืฆื™ ืชื—ื–ื•ืงื” ืขืชื™ื“ื™ื™ื.

pipeline {
    agent any
    stages {
        stage('CC Management') {
            steps {
                sh 'static-analysis-tool --generate-cc-report cc-report.html'
            }
            post {
                always {
                    archiveArtifacts artifacts: 'cc-report.html', fingerprint: true
                }
            }
        }
    }
}

ื”ืชืกืจื™ื˜ ืฉืœ Jenkins Pipeline ืœืขื™ืœ ืžืคืขื™ืœ ื ื™ืชื•ื— ืงื•ื“ ืกื˜ื˜ื™ ื›ื“ื™ ืœื”ืคื™ืง ื“ื•ื— CC, ืฉื•ืžืจ ืื•ืชื• ื‘ืืจื›ื™ื•ืŸ ืœื ื™ื˜ื•ืจ ืจืฆื™ืฃ. ื–ื” ืžื‘ื˜ื™ื— ืฉืงื™ืคื•ืช ื•ืื—ืจื™ื•ืช ื‘ื ื™ื”ื•ืœ ืžื•ืจื›ื‘ื•ืช ื”ืงื•ื“.

ื”ื‘ื ืช ื”ืžื•ืจื›ื‘ื•ืช ื”ืฆื™ืงืœื•ืžื˜ื™ืช (CC) ื”ื™ื ื‘ืกื™ืกื™ืช ืœืคื™ืชื•ื— ืชื•ื›ื ื” ื ื™ืชื ืช ืœืชื—ื–ื•ืงื”, ื—ื–ืงื” ื•ื™ืขื™ืœื”. ืขืœ ื™ื“ื™ ืžื™ื ื•ืฃ ื ื™ืชื•ื— ืงื•ื“ ืกื˜ื˜ื™ ื•ืฉื™ืœื•ื‘ ื ื™ื”ื•ืœ ืžื•ืจื›ื‘ื•ืช ื‘ืฆื™ื ื•ืจื•ืช CI/CD, ืฆื•ื•ืชื™ ืคื™ืชื•ื— ื™ื›ื•ืœื™ื ืœื”ืคื—ื™ืช ืกื™ื›ื•ื ื™ื, ืœื™ื™ืขืœ ืืช ื”ื‘ื“ื™ืงื•ืช ื•ืœืฉืžื•ืจ ืขืœ ื‘ืกื™ืก ืงื•ื“ ื ืงื™ ื•ื ื™ืชืŸ ืœื”ืจื—ื‘ื”.

ืžื”ื™ ืžื•ืจื›ื‘ื•ืช ืฆื™ืงืœื•ืžื˜ื™ืช ื•ืžื” ื”ื™ื ืžื•ื“ื“ืช?

ื”ื’ื“ืจื” ืฉืœ ืžื•ืจื›ื‘ื•ืช ืฆื™ืงืœื•ืžื˜ื™ืช

ืžื•ืจื›ื‘ื•ืช ืฆื™ืงืœื•ืžื˜ื™ืช ื”ื™ื ืžื“ื“ ืฉืžื•ื“ื“ ืืช ื”ืžื•ืจื›ื‘ื•ืช ืฉืœ ืชื•ื›ื ื™ืช ืขืœ ื™ื“ื™ ื›ื™ืžื•ืช ืžืกืคืจ ื”ื ืชื™ื‘ื™ื ื”ื‘ืœืชื™ ืชืœื•ื™ื™ื ื‘ืื•ืคืŸ ืœื™ื ื™ืืจื™ ื“ืจืš ืงื•ื“ ื”ืžืงื•ืจ. ืžื“ื“ ื–ื” ืคื•ืชื— ืขืœ ื™ื“ื™ Thomas J. McCabe ื‘ืฉื ืช 1976, ื•ืžืกื™ื™ืข ืœืžืคืชื—ื™ื ืœื”ื‘ื™ืŸ ืขื“ ื›ืžื” ืžื•ืจื›ื‘ืช ืชื•ื›ื ื” ื ืชื•ื ื” ืขืœ ืกืžืš ื–ืจื™ืžืช ื”ื‘ืงืจื” ืฉืœื”. ื›ื›ืœ ืฉื”ืžื•ืจื›ื‘ื•ืช ื”ืฆื™ืงืœื•ืžื˜ื™ืช ื’ื‘ื•ื”ื” ื™ื•ืชืจ, ื›ืš ื”ืงื•ื“ ืžืืชื’ืจ ื™ื•ืชืจ ืœื”ื‘ื™ืŸ, ืœืชื—ื–ืง ื•ืœื‘ื“ื•ืง. ืžื•ืจื›ื‘ื•ืช ืฆื™ืงืœื•ืžื˜ื™ืช ืจืœื•ื•ื ื˜ื™ืช ื‘ืžื™ื•ื—ื“ ื›ืืฉืจ ืžืขืจื™ื›ื™ื ืืช ื”ืกื™ื›ื•ืŸ ืœื”ื—ื“ืจืช ืคื’ืžื™ื ื‘ืžื”ืœืš ืฉื™ื ื•ื™ื™ื ืื• ืฉื™ืคื•ืจื™ื, ืžื›ื™ื•ื•ืŸ ืฉืงื•ื“ ืžื•ืจื›ื‘ ืžื•ื‘ื™ืœ ืœืจื•ื‘ ืœื™ื•ืชืจ ืฉื’ื™ืื•ืช.

ื”ืžื“ื“ ืžื—ื•ืฉื‘ ื‘ืืžืฆืขื•ืช ื’ืจืฃ ื–ืจื™ืžืช ื”ื‘ืงืจื” ืฉืœ ืชื•ื›ื ื™ืช, ื›ืืฉืจ ื”ืฆืžืชื™ื ืžื™ื™ืฆื’ื™ื ื‘ืœื•ืงื™ ืงื•ื“, ื•ื”ืงืฆื•ื•ืช ืžื™ื™ืฆื’ื™ื ื ืชื™ื‘ื™ ื–ืจื™ืžืช ื‘ืงืจื”. ื”ื ื•ืกื—ื” ืœืžื•ืจื›ื‘ื•ืช ืฆื™ืงืœื•ืžื˜ื™ืช ื”ื™ื: , ื›ืืฉืจ ื”ื•ื ืžืกืคืจ ื”ืงืฆื•ื•ืช, ื”ื•ื ืžืกืคืจ ื”ืฆืžืชื™ื ื•ืžื™ื™ืฆื’ ืืช ืžืกืคืจ ื”ืจื›ื™ื‘ื™ื ื”ืžื—ื•ื‘ืจื™ื. ืฆื™ื•ืŸ ืžื•ืจื›ื‘ื•ืช ืฆื™ืงืœื•ืžื˜ื™ ืฉืœ 10 ื•ืžื˜ื” ื ื—ืฉื‘ ื‘ื“ืจืš ื›ืœืœ ืœืื•ืคื˜ื™ืžืœื™ ืขื‘ื•ืจ ืงื•ื“ ื‘ืจ ืชื—ื–ื•ืงื”.

public void processOrder(boolean isMember, boolean isHoliday) {
    if (isMember) {
        System.out.println("Apply member discount");
    }
    if (isHoliday) {
        System.out.println("Apply holiday discount");
    }
    System.out.println("Process order");
}

ืœืคื•ื ืงืฆื™ื” ืฉืœืขื™ืœ ื™ืฉ ืฉืชื™ ื ืงื•ื“ื•ืช ื”ื—ืœื˜ื” ืขืฆืžืื™ื•ืช, ื•ื›ืชื•ืฆืื” ืžื›ืš ืžื•ืจื›ื‘ื•ืช ืฆื™ืงืœื•ืžื˜ื™ืช ืฉืœ ืฉืœื•ืฉ. ื–ื” ืžืฆื‘ื™ืข ืขืœ ืฉืœื•ืฉื” ื ืชื™ื‘ื™ ื‘ื™ืฆื•ืข ื™ื™ื—ื•ื“ื™ื™ื ืฉื™ืฉ ืœื‘ื“ื•ืง ืœื›ื™ืกื•ื™ ืžืœื.

ื—ืฉื™ื‘ื•ืช ืžื“ื™ื“ืช ื”ืžื•ืจื›ื‘ื•ืช ื”ืฆื™ืงืœื•ืžื˜ื™ืช

ืžื“ื™ื“ืช ืžื•ืจื›ื‘ื•ืช ืฆื™ืงืœื•ืžื˜ื™ืช ื—ื™ื•ื ื™ืช ืžืกื™ื‘ื•ืช ืฉื•ื ื•ืช, ื›ื•ืœืœ ืฉื™ืคื•ืจ ืื™ื›ื•ืช ื”ืงื•ื“, ืคื™ืฉื•ื˜ ื”ืชื—ื–ื•ืงื” ื•ืฉื™ืคื•ืจ ื›ื™ืกื•ื™ ื”ื‘ื“ื™ืงื•ืช. ืžื•ืจื›ื‘ื•ืช ื’ื‘ื•ื”ื” ืงืฉื•ืจื” ืœืขื™ืชื™ื ืงืจื•ื‘ื•ืช ืœืกื™ื›ื•ืŸ ืžื•ื’ื‘ืจ ืœืคื’ืžื™ื ื•ืœืขืœื•ื™ื•ืช ื‘ื“ื™ืงื” ื’ื‘ื•ื”ื•ืช ื™ื•ืชืจ. ืžืคืชื—ื™ื ืžืฉืชืžืฉื™ื ื‘ืžื•ืจื›ื‘ื•ืช ืฆื™ืงืœื•ืžื˜ื™ืช ื›ื“ื™ ืœืืžื•ื“ ื‘ืื™ื–ื• ืงืœื•ืช ื ื™ืชืŸ ืœื”ื‘ื™ืŸ ื•ืœืฉื ื•ืช ื‘ืกื™ืก ืงื•ื“ ืžื‘ืœื™ ืœื”ื›ื ื™ืก ืฉื’ื™ืื•ืช. ืงื•ื“ ืขื ืžื•ืจื›ื‘ื•ืช ื ืžื•ื›ื” ื™ื•ืชืจ ื”ื•ื ื‘ื“ืจืš ื›ืœืœ ืืžื™ืŸ ื™ื•ืชืจ, ืžื›ื™ื•ื•ืŸ ืฉื™ืฉ ืœื• ืคื—ื•ืช ื ืชื™ื‘ื™ื ืœื•ื’ื™ื™ื ืฉื™ื›ื•ืœื™ื ืœื™ื™ืฆืจ ืชื•ืฆืื•ืช ื‘ืœืชื™ ืฆืคื•ื™ื•ืช.

ื›ืœื™ ื ื™ืชื•ื— ืงื•ื“ ืกื˜ื˜ื™ ืžื—ืฉื‘ื™ื ื‘ืื•ืคืŸ ืื•ื˜ื•ืžื˜ื™ ืืช ื”ืžื“ื“ ื”ื–ื” ื‘ืžื”ืœืš ื”ืคื™ืชื•ื—, ื•ืžืกืคืงื™ื ืžืฉื•ื‘ ื‘ื–ืžืŸ ืืžืช ืขืœ ื”ืื•ืคืŸ ืฉื‘ื• ืฉื™ื ื•ื™ื™ื ื‘ืงื•ื“ ืžืฉืคื™ืขื™ื ืขืœ ื”ืžื•ืจื›ื‘ื•ืช. ืœื“ื•ื’ืžื”, ื‘ืกื‘ื™ื‘ืช ืื™ื ื˜ื’ืจืฆื™ื” ืจืฆื™ืคื”/ืคืจื™ืกื” ืจืฆื™ืคื” (CI/CD), ื›ืœื™ื ืืœื” ื™ื›ื•ืœื™ื ืœืขืฆื•ืจ ืืช ืชื”ืœื™ืš ื”ื‘ื ื™ื™ื” ืื ื”ืžื•ืจื›ื‘ื•ืช ื”ืฆื™ืงืœื•ืžื˜ื™ืช ื—ื•ืจื’ืช ืžืกืฃ ืžื•ื’ื“ืจ, ืžื” ืฉืžื‘ื˜ื™ื— ืฉืจืง ืงื•ื“ ื‘ืจ ืชื—ื–ื•ืงื” ืžืฉื•ืœื‘ ื‘ื‘ืกื™ืก ื”ืงื•ื“.

pipeline {
    agent any
    stages {
        stage('Check Cyclomatic Complexity') {
            steps {
                sh 'static-analysis-tool --complexity-threshold 10'
            }
            post {
                failure {
                    error 'Build failed due to high cyclomatic complexity.'
                }
            }
        }
    }
}

ืชืฆื•ืจืช Jenkins Pipeline ื–ื• ืžื“ื’ื™ืžื” ื›ื™ืฆื“ ื ื™ืชืŸ ืœื”ืคื•ืš ื‘ื“ื™ืงื•ืช ืžื•ืจื›ื‘ื•ืช ืฆื™ืงืœื•ืžื˜ื™ื•ืช ืœืื•ื˜ื•ืžื˜ื™ื•ืช, ื•ืœืžื ื•ืข ืžืงื•ื“ ืžื•ืจื›ื‘ ืžื“ื™ ืœื”ืชืงื“ื ื”ืœืื” ื‘ืžื—ื–ื•ืจ ื”ืคื™ืชื•ื—.

ื›ื™ืฆื“ ืžื•ืจื›ื‘ื•ืช ืฆื™ืงืœื•ืžื˜ื™ืช ืžืฉืคื™ืขื” ืขืœ ื‘ื“ื™ืงื•ืช

ืœืžื•ืจื›ื‘ื•ืช ืฆื™ืงืœื•ืžื˜ื™ืช ื™ืฉ ื”ืฉืคืขื” ื™ืฉื™ืจื” ืขืœ ื”ื‘ื“ื™ืงื•ืช ืžื›ื™ื•ื•ืŸ ืฉื”ื™ื ืงื•ื‘ืขืช ืืช ื”ืžืกืคืจ ื”ืžื™ื ื™ืžืœื™ ืฉืœ ืžืงืจื™ ื‘ื“ื™ืงื” ื”ื ื“ืจืฉื™ื ื›ื“ื™ ืœื›ืกื•ืช ืืช ื›ืœ ื”ื ืชื™ื‘ื™ื ื”ืืคืฉืจื™ื™ื ื‘ืชื•ืš ืชื•ื›ื ื™ืช. ื›ืœ ื ืชื™ื‘ ืขืฆืžืื™ ืžื™ื™ืฆื’ ืชืจื—ื™ืฉ ืฉืฆืจื™ืš ืœืืžืช ื›ื“ื™ ืœื”ื‘ื˜ื™ื— ื›ื™ืกื•ื™ ืชืคืงื•ื“ื™ ืžืœื. ื›ื›ืœ ืฉื”ืงื•ื“ ืžื•ืจื›ื‘ ื™ื•ืชืจ, ื™ืฉ ืฆื•ืจืš ื‘ื™ื•ืชืจ ืžืงืจื™ ื‘ื“ื™ืงื”, ืžื” ืฉืžื’ื“ื™ืœ ืืช ื”ื–ืžืŸ ื•ื”ืžืฉืื‘ื™ื ื”ื ื“ืจืฉื™ื ืœื‘ื“ื™ืงื” ื™ืกื•ื“ื™ืช.

ื”ืคื—ืชืช ื”ืžื•ืจื›ื‘ื•ืช ื”ืฆื™ืงืœื•ืžื˜ื™ืช ืžื™ื™ืขืœืช ืืช ืชื”ืœื™ืš ื”ื‘ื“ื™ืงื” ืขืœ ื™ื“ื™ ื”ืคื—ืชืช ืžืกืคืจ ืžืงืจื™ ื”ื‘ื“ื™ืงื” ื”ื“ืจื•ืฉื™ื. ืœื“ื•ื’ืžื”, ืคื•ื ืงืฆื™ื” ืขื ืฆื™ื•ืŸ ืžื•ืจื›ื‘ื•ืช ืฉืœ 15 ืชื“ืจื•ืฉ ืœืคื—ื•ืช 15 ืžืงืจื™ ืžื‘ื—ืŸ ื›ื“ื™ ืœื”ืฉื™ื’ 100% ื›ื™ืกื•ื™ ื ืชื™ื‘. ืฉื—ื–ื•ืจ ืฉืœ ืคื•ื ืงืฆื™ื” ื›ื–ื• ืขืœ ื™ื“ื™ ืคื™ืจื•ืงื” ืœืฉื™ื˜ื•ืช ืงื˜ื ื•ืช ื•ืคืฉื•ื˜ื•ืช ื™ื•ืชืจ ืžืคื—ื™ืช ืืช ืฆื™ื•ืŸ ื”ืžื•ืจื›ื‘ื•ืช, ื•ื‘ื›ืš ืžืงื˜ื™ืŸ ืืช ืžืืžืฅ ื”ื‘ื“ื™ืงื”.

public int calculateShippingCost(boolean isInternational, boolean isExpress, boolean isFragile) {
    if (isInternational && isExpress && isFragile) {
        return 50;
    } else if (isInternational && isExpress) {
        return 40;
    } else if (isInternational) {
        return 30;
    } else if (isExpress) {
        return 20;
    }
    return 10;
}

ืœืฉื™ื˜ื” ื”ื "ืœ ื™ืฉ ื ืงื•ื“ื•ืช ื”ื—ืœื˜ื” ืžืจื•ื‘ื•ืช, ื•ื›ืชื•ืฆืื” ืžื›ืš ืžื•ืจื›ื‘ื•ืช ืฆื™ืงืœื•ืžื˜ื™ืช ื’ื‘ื•ื”ื”. ืฉื™ื ื•ื™ ืงื•ื“ ื–ื” ืœืฉื™ืžื•ืฉ ื‘ื“ืคื•ืก ืืกื˜ืจื˜ื’ื™ื” ืื• ื‘ืžื‘ื ื™ื ืžื•ืชื ื™ื ืคืฉื•ื˜ื™ื ื™ื•ืชืจ ื™ืคื—ื™ืช ืืช ืฆื™ื•ืŸ ื”ืžื•ืจื›ื‘ื•ืช ื•ืืช ื”ืžืกืคืจ ื”ืžืชืื™ื ืฉืœ ืžืงืจื™ ืžื‘ื—ืŸ ื ื“ืจืฉื™ื.

ืงืฉืจ ื‘ื™ืŸ ืžื•ืจื›ื‘ื•ืช ืฆื™ืงืœื•ืžื˜ื™ืช ื•ืชื—ื–ื•ืงื”

ืžื•ืจื›ื‘ื•ืช ืฆื™ืงืœื•ืžื˜ื™ืช ืžืฉืคื™ืขื” ื‘ืื•ืคืŸ ืžืฉืžืขื•ืชื™ ืขืœ ืชื—ื–ื•ืง ื”ืงื•ื“. ืžื•ืจื›ื‘ื•ืช ื’ื‘ื•ื”ื” ื”ื•ืคื›ืช ืืช ื”ืงื•ื“ ืœืงืฉื” ื™ื•ืชืจ ืœื”ื‘ื ื”, ืžื” ืฉืžื•ื‘ื™ืœ ืœื™ื•ืชืจ ืฉื’ื™ืื•ืช ื‘ืžื”ืœืš ื”ืฉื™ื ื•ื™ื™ื. ื›ื›ืœ ืฉืคืจื•ื™ืงื˜ื™ื ื’ื“ืœื™ื, ื‘ืกื™ืกื™ ืงื•ื“ ืžืชื•ื—ื–ืงื™ื ื‘ืฆื•ืจื” ื’ืจื•ืขื” ื™ื›ื•ืœื™ื ืœืฆื‘ื•ืจ ื—ื•ื‘ื•ืช ื˜ื›ื ื™ื™ื, ื•ืœื”ืื˜ ืืช ื”ืคื™ืชื•ื— ื”ืขืชื™ื“ื™. ืขืœ ื™ื“ื™ ืฉืžื™ืจื” ืขืœ ืžื•ืจื›ื‘ื•ืช ืฆื™ืงืœื•ืžื˜ื™ืช ื ืžื•ื›ื”, ืฆื•ื•ืชื™ื ืžื‘ื˜ื™ื—ื™ื ืฉื”ืงื•ื“ ืฉืœื”ื ื™ื™ืฉืืจ ื ื’ื™ืฉ, ื’ืžื™ืฉ ื•ืงืœ ื™ื•ืชืจ ืœืฉื™ืคื•ืจ.

ื›ืœื™ื ืœื ื™ืชื•ื— ืงื•ื“ ืกื˜ื˜ื™ ืžืกืคืงื™ื ืชื•ื‘ื ื•ืช ื ื™ืชื ื•ืช ืœืคืขื•ืœื” ืœื’ื‘ื™ ืชื—ื•ืžื™ื ืžื•ืจื›ื‘ื™ื, ื•ืžืžืœื™ืฆื™ื ืขืœ ืืกื˜ืจื˜ื’ื™ื•ืช ืขื™ื‘ื•ื“ ืžื—ื“ืฉ ืœืฉื™ืคื•ืจ ื™ื›ื•ืœืช ื”ืชื—ื–ื•ืงื”. ื˜ื›ื ื™ืงื•ืช ื›ืžื• ืคื™ืจื•ืง ืคื•ื ืงืฆื™ื•ืช ื’ื“ื•ืœื•ืช, ืฉื™ืžื•ืฉ ื‘ืžื‘ื ื™ ื‘ืงืจื” ื‘ืจื•ืจื™ื ื•ื”ืงืคื“ื” ืขืœ ืขืงืจื•ื ื•ืช ืงื•ื“ ื ืงื™ื™ื ื™ื›ื•ืœื•ืช ืœื”ื•ืจื™ื“ ืžืฉืžืขื•ืชื™ืช ืืช ื”ืžื•ืจื›ื‘ื•ืช. ื“ื•ื—ื•ืช ืื•ื˜ื•ืžื˜ื™ื™ื ื”ืžื•ืคืงื™ื ืขืœ ื™ื“ื™ ื›ืœื™ื ืืœื” ืขื•ื–ืจื™ื ืœืฆื•ื•ืชื™ื ืœืชืขื“ืฃ ืชื—ื•ืžื™ื ืœืฉื™ืคื•ืจ, ืชื•ืš ื”ืคื—ืชืช ืขืœื•ื™ื•ืช ืชื—ื–ื•ืงื” ืืจื•ื›ื•ืช ื˜ื•ื•ื—.

pipeline {
    agent any
    stages {
        stage('Complexity and Maintainability Check') {
            steps {
                sh 'static-analysis-tool --output maintainability-report.html'
            }
            post {
                always {
                    archiveArtifacts artifacts: 'maintainability-report.html', fingerprint: true
                }
            }
        }
    }
}

ืชืกืจื™ื˜ Jenkins Pipeline ื–ื” ื™ื•ืฆืจ ื•ืžืื—ืกืŸ ื“ื•ื— ืชื—ื–ื•ืงื”, ื”ืžืฆื™ืข ืชื•ื‘ื ื•ืช ืžืชืžืฉื›ื•ืช ืœื’ื‘ื™ ื”ืื•ืคืŸ ืฉื‘ื• ืžื•ืจื›ื‘ื•ืช ืฆื™ืงืœื•ืžื˜ื™ืช ืžืฉืคื™ืขื” ืขืœ ื”ื‘ืจื™ืื•ืช ืืจื•ื›ืช ื”ื˜ื•ื•ื— ืฉืœ ื‘ืกื™ืก ื”ืงื•ื“.

ื”ื‘ื ืช ื”ืžื•ืจื›ื‘ื•ืช ื”ืฆื™ืงืœื•ืžื˜ื™ืช ื•ืื™ืš ื”ื™ื ืžืฉืคื™ืขื” ืขืœ ื”ื™ื‘ื˜ื™ื ืฉื•ื ื™ื ืฉืœ ืคื™ืชื•ื— ื—ื™ื•ื ื™ืช ืœื‘ื ื™ื™ืช ืชื•ื›ื ื” ื‘ืื™ื›ื•ืช ื’ื‘ื•ื”ื”. ืขืœ ื™ื“ื™ ืžื™ื ื•ืฃ ื›ืœื™ ื ื™ืชื•ื— ืงื•ื“ ืกื˜ื˜ื™, ืฆื•ื•ืชื™ ืคื™ืชื•ื— ื™ื›ื•ืœื™ื ืœื ื”ืœ ื‘ืื•ืคืŸ ื™ื–ื•ื ืืช ื”ืžื•ืจื›ื‘ื•ืช, ื•ืœื”ื‘ื˜ื™ื— ืฉื”ื™ื™ืฉื•ืžื™ื ืฉืœื”ื ื™ื™ืฉืืจื• ืืžื™ื ื™ื, ื ื™ืชื ื™ื ืœืชื—ื–ื•ืงื” ื•ืงืœื™ื ืœื‘ื“ื™ืงื”.

ื›ื™ืฆื“ ื ื™ืชื•ื— ืงื•ื“ ืกื˜ื˜ื™ ืžืกื™ื™ืข ื‘ื”ืคื—ืชืช ื”ืžื•ืจื›ื‘ื•ืช ื”ืฆื™ืงืœื•ืžื˜ื™ืช

ื–ื™ื”ื•ื™ ืคืœื—ื™ ืงื•ื“ ืžื•ืจื›ื‘ื™ื

ื›ืœื™ ื ื™ืชื•ื— ืงื•ื“ ืกื˜ื˜ื™ ืžืฆื˜ื™ื™ื ื™ื ื‘ื–ื™ื”ื•ื™ ืงื˜ืขื™ ืงื•ื“ ื‘ืขืœื™ ืžื•ืจื›ื‘ื•ืช ืฆื™ืงืœื•ืžื˜ื™ืช ื’ื‘ื•ื”ื”. ืžื•ืจื›ื‘ื•ืช ืฆื™ืงืœื•ืžื˜ื™ืช ืžื•ื“ื“ืช ืืช ืžืกืคืจ ื”ื ืชื™ื‘ื™ื ื”ื‘ืœืชื™ ืชืœื•ื™ื™ื ื‘ืื•ืคืŸ ืœื™ื ื™ืืจื™ ื“ืจืš ืชื•ื›ื ื™ืช, ืืฉืจ ืชื•ืืžืช ื™ืฉื™ืจื•ืช ืœืžื•ืจื›ื‘ื•ืช ื”ืงื•ื“ ื•ืœืชื—ื–ื•ืงื”. ืฆื™ื•ืŸ ืžื•ืจื›ื‘ื•ืช ื’ื‘ื•ื” ื™ื•ืชืจ ืคื™ืจื•ืฉื• ื™ื•ืชืจ ื ืชื™ื‘ื™ื ืœื‘ื“ื™ืงื”, ืžื” ืฉื”ื•ืคืš ืืช ื”ืงื•ื“ ืœืงืฉื” ื™ื•ืชืจ ืœื”ื‘ื ื” ื•ืœืชื—ื–ื•ืงื”. ื›ืœื™ ื ื™ืชื•ื— ืกื˜ื˜ื™ ืžืžื›ื•ื ื™ื ืืช ืชื”ืœื™ืš ืกืจื™ืงืช ื‘ืกื™ืกื™ ื”ืงื•ื“ ื›ื“ื™ ืœืืชืจ ืคื•ื ืงืฆื™ื•ืช, ืฉื™ื˜ื•ืช ืื• ืžื—ืœืงื•ืช ืฉื‘ื”ืŸ ื”ืžื•ืจื›ื‘ื•ืช ื—ื•ืจื’ืช ืžืกืฃ ืžื•ื’ื“ืจ ืžืจืืฉ.

ืœื“ื•ื’ืžื”, ืฉืงื•ืœ ืคื•ื ืงืฆื™ื” ืขื ืœื•ืœืื•ืช ืžืงื•ื ื ื•ืช ืžืจื•ื‘ื•ืช ื•ื”ืฆื”ืจื•ืช ืžื•ืชื ื•ืช. ื›ืœื™ ื ื™ืชื•ื— ืงื•ื“ ืกื˜ื˜ื™ ื™ื—ืฉื‘ ืืช ื”ืžื•ืจื›ื‘ื•ืช ื”ืฆื™ืงืœื•ืžื˜ื™ืช ื‘ื”ืชื‘ืกืก ืขืœ ื ืงื•ื“ื•ืช ื”ื”ื—ืœื˜ื” ื”ืœืœื• ื•ื™ืกืžืŸ ื›ืœ ืคื•ื ืงืฆื™ื” ื”ื—ื•ืจื’ืช ืžื”ืžื’ื‘ืœื” ื”ืžื•ืžืœืฆืช. ืขืœ ื™ื“ื™ ืžืชืŸ ืคื™ืจื•ื˜ ื—ื–ื•ืชื™ ืฉืœ ืื–ื•ืจื™ื ืžื•ืจื›ื‘ื™ื, ื›ืœื™ื ืืœื” ืขื•ื–ืจื™ื ืœืžืคืชื—ื™ื ืœืืชืจ ืงื˜ืขื™ื ื‘ืขื™ื™ืชื™ื™ื ื‘ืžื”ื™ืจื•ืช.

public int calculateDiscount(int price, boolean isMember, boolean isHoliday) {
    if (isMember) {
        if (isHoliday) {
            return price * 80 / 100; // 20% discount
        } else {
            return price * 90 / 100; // 10% discount
        }
    } else {
        if (isHoliday) {
            return price * 95 / 100; // 5% discount
        }
    }
    return price;
}

ืœืคื•ื ืงืฆื™ื” ืฉืœืขื™ืœ ื™ืฉ ื ืงื•ื“ื•ืช ื”ื—ืœื˜ื” ืžืจื•ื‘ื•ืช, ืžื” ืฉืžื•ื‘ื™ืœ ืœืžื•ืจื›ื‘ื•ืช ืฆื™ืงืœื•ืžื˜ื™ืช ื’ื‘ื•ื”ื” ื™ื•ืชืจ. ื›ืœื™ ื ื™ืชื•ื— ืกื˜ื˜ื™ ื™ื“ื’ื™ืฉื• ืืช ื”ืคื•ื ืงืฆื™ื” ื”ื–ื• ืœ-refactoring ื›ื“ื™ ืœืฉืคืจ ืืช ื”ืงืจื™ืื” ื•ื”ืชื—ื–ื•ืงื”.

ืžืชืŸ ื”ืฆืขื•ืช ืœืฉื—ื–ื•ืจ

ืžืขื‘ืจ ืœื–ื™ื”ื•ื™ ืงื•ื“ ืžื•ืจื›ื‘, ื›ืœื™ ื ื™ืชื•ื— ืงื•ื“ ืกื˜ื˜ื™ ืžืฆื™ืขื™ื ื’ื ืืกื˜ืจื˜ื’ื™ื•ืช ืฉืœ ืขื™ื‘ื•ื“ ืžื—ื“ืฉ ืœื”ืคื—ืชืช ื”ืžื•ืจื›ื‘ื•ืช ื”ืฆื™ืงืœื•ืžื˜ื™ืช. Refactoring ืฉื•ืืคืช ืœื‘ื ื•ืช ืžื—ื“ืฉ ืงื•ื“ ืงื™ื™ื ืžื‘ืœื™ ืœืฉื ื•ืช ืืช ื”ื”ืชื ื”ื’ื•ืช ื”ื—ื™ืฆื•ื ื™ืช ืฉืœื•, ืœืฉืคืจ ืืช ื”ืงืจื™ืื” ื•ืœื”ืคื—ื™ืช ืืช ื”ืžื•ืจื›ื‘ื•ืช. ื”ืฆืขื•ืช ื ืคื•ืฆื•ืช ื›ื•ืœืœื•ืช ืคื™ืจื•ืง ืคื•ื ืงืฆื™ื•ืช ื’ื“ื•ืœื•ืช ืœืงื˜ื ื•ืช ื™ื•ืชืจ ื ื™ืชื ื•ืช ืœืฉื™ืžื•ืฉ ื—ื•ื–ืจ, ื”ื—ืœืคืช ืชื ืื™ื ืžืงื•ื ื ื™ื ื‘ืฉื™ื˜ื•ืช ืคื•ืœื™ืžื•ืจืคื™ื•ืช ื•ืฉื™ืžื•ืฉ ื‘ืกืขื™ืคื™ื ืฉืžื™ืจื” ืœื”ื—ื–ืจื•ืช ืžื•ืงื“ืžื•ืช.

ืœืžืฉืœ, ื›ืžื” ืฉื™ื•ืชืจ ืžื•ืงื“ื calculateDiscount ื ื™ืชืŸ ืœืฉื ื•ืช ืืช ื”ืคื•ื ืงืฆื™ื” ื‘ืืžืฆืขื•ืช ืกืขื™ืคื™ ืฉืžื™ืจื” ื›ื“ื™ ืœื”ืคื—ื™ืช ืืช ื”ืงื™ื ื•ืŸ ื•ืœืฉืคืจ ืืช ื”ื‘ื”ื™ืจื•ืช:

public int calculateDiscount(int price, boolean isMember, boolean isHoliday) {
    if (isMember && isHoliday) return price * 80 / 100;
    if (isMember) return price * 90 / 100;
    if (isHoliday) return price * 95 / 100;
    return price;
}

ื’ืจืกื” ืžื—ื•ื“ืฉืช ื–ื• ืžืคื—ื™ืชื” ืืช ืžืกืคืจ ื ืงื•ื“ื•ืช ื”ื”ื—ืœื˜ื”, ื•ื‘ื›ืš ืžืคื—ื™ืชื” ืืช ื”ืžื•ืจื›ื‘ื•ืช ื”ืฆื™ืงืœื•ืžื˜ื™ืช. ื›ืœื™ ื ื™ืชื•ื— ืกื˜ื˜ื™ ื™ื›ื•ืœื™ื ืœื”ืžืœื™ืฅ โ€‹โ€‹ื‘ืื•ืคืŸ ืื•ื˜ื•ืžื˜ื™ ืขืœ ื“ืคื•ืกื™ื ื›ืืœื”, ื•ืœืขื–ื•ืจ ืœืžืคืชื—ื™ื ืœืฉืžื•ืจ ืขืœ ื‘ืกื™ืกื™ ืงื•ื“ ื ืงื™ื™ื ื™ื•ืชืจ.

ืื›ื™ืคืช ืชืงื ื™ ืงื™ื“ื•ื“

ื ื™ืชื•ื— ืงื•ื“ ืกื˜ื˜ื™ ืžืžืœื ืชืคืงื™ื“ ืžื›ืจื™ืข ื‘ืื›ื™ืคืช ืชืงื ื™ ืงื™ื“ื•ื“ ื”ืฉื•ืžืจื™ื ืขืœ ื”ืžื•ืจื›ื‘ื•ืช ื”ืฆื™ืงืœื•ืžื˜ื™ืช. ืฆื•ื•ืชื™ ืคื™ืชื•ื— ื™ื›ื•ืœื™ื ืœื”ื’ื“ื™ืจ ื›ืœื™ ื ื™ืชื•ื— ื›ื“ื™ ืœืกืžืŸ ืงื•ื“ ื”ืขื•ืœื” ืขืœ ืกืคื™ ืžื•ืจื›ื‘ื•ืช ืžื•ื’ื“ืจื™ื ืžืจืืฉ. ืื›ื™ืคื” ื–ื• ืžื‘ื˜ื™ื—ื” ืฉืจืง ืงื•ื“ ื‘ืจ ืชื—ื–ื•ืงื” ื•ื ื™ืชืŸ ืœื‘ื“ื™ืงื” ืขื•ื‘ืจ ื“ืจืš ืฆื™ื ื•ืจื•ืช ื”ื‘ื ื™ื™ื”.

ืœื“ื•ื’ืžื”, ื ื™ืชืŸ ืœื”ื’ื“ื™ืจ ืฆื™ื ื•ืจ ืฉืœ Jenkins ืœื›ืฉืœ ื‘ื‘ื ื™ื™ื” ืื ื“ื•ื—ื•ืช ื ื™ืชื•ื— ืกื˜ื˜ื™ ืžืฆื‘ื™ืขื™ื ืขืœ ืžื•ืจื›ื‘ื•ืช ืฆื™ืงืœื•ืžื˜ื™ืช ื’ื‘ื•ื”ื”. ืชืจื’ื•ืœ ื–ื” ืžื‘ื˜ื™ื— ืฉืžืคืชื—ื™ื ืžื˜ืคืœื™ื ื‘ื‘ืขื™ื•ืช ืžื•ืจื›ื‘ื•ืช ืœืคื ื™ ืฉื”ืงื•ื“ ืžืชืžื–ื’ ืœืขื ืฃ ื”ืจืืฉื™.

pipeline {
    agent any
    stages {
        stage('Static Code Analysis') {
            steps {
                sh 'static-analysis-tool --check-complexity --threshold 10'
            }
            post {
                failure {
                    error 'Build failed due to high cyclomatic complexity.'
                }
            }
        }
    }
}

ื“ื•ื’ืžื” ื–ื• ืžื“ื’ื™ืžื” ืื›ื™ืคื” ืื•ื˜ื•ืžื˜ื™ืช ืฉืœ ืกืคื™ ืžื•ืจื›ื‘ื•ืช ื‘ืฆื™ื ื•ืจื•ืช CI/CD, ืžื” ืฉืžื‘ื˜ื™ื— ืขืžื™ื“ื” ืขืงื‘ื™ืช ื‘ืชืงื ื™ ืงื™ื“ื•ื“.

ืชืžื™ื›ื” ื‘ืฉื™ืคื•ืจ ืžืชืžื™ื“

ืฉื™ืคื•ืจ ืžืชืžื™ื“ ื‘ืคื™ืชื•ื— ืชื•ื›ื ื” ืžืกืชืžืš ืขืœ ืžืฉื•ื‘ ืงื‘ื•ืข ื•ืฉื™ืคื•ืจื™ื ืžืฆื˜ื‘ืจื™ื. ื›ืœื™ ื ื™ืชื•ื— ืงื•ื“ ืกื˜ื˜ื™ ืžืกืคืงื™ื ืชื•ื‘ื ื•ืช ื‘ื–ืžืŸ ืืžืช ืœื’ื‘ื™ ื”ืžื•ืจื›ื‘ื•ืช ื”ืฆื™ืงืœื•ืžื˜ื™ืช, ื•ืžืืคืฉืจื™ื ืœืžืคืชื—ื™ื ืœืงื‘ืœ ื”ื—ืœื˜ื•ืช ืžื•ืฉื›ืœื•ืช ืœื’ื‘ื™ ืขื™ื‘ื•ื“ ืžื—ื“ืฉ ืฉืœ ืงื•ื“ ื•ืื•ืคื˜ื™ืžื™ื–ืฆื™ื”. ืฉื™ืœื•ื‘ ื›ืœื™ื ืืœื” ื‘ืฆื™ื ื•ืจื•ืช CI/CD ืžื‘ื˜ื™ื— ืฉื‘ื“ื™ืงื•ืช ืžื•ืจื›ื‘ื•ืช ืžืชืจื—ืฉื•ืช ืขื ื›ืœ ื”ืชื—ื™ื™ื‘ื•ืช, ื•ืžื•ื ืขืช ื–ื—ื™ืœืช ืžื•ืจื›ื‘ื•ืช ืœืื•ืจืš ื–ืžืŸ.

ืœื“ื•ื’ืžื”, ื ื™ืชืŸ ืœื”ื’ื“ื™ืจ ื›ืœื™ื ืœื”ืคืงืช ื“ื•ื—ื•ืช ืžืคื•ืจื˜ื™ื ืœืื—ืจ ื›ืœ ื‘ื ื™ื™ื”, ืชื•ืš ื”ื“ื’ืฉืช ืื–ื•ืจื™ื ืฉื‘ื”ื ื”ืžื•ืจื›ื‘ื•ืช ื’ื•ื‘ืจืช. ืฆื•ื•ืชื™ื ื™ื›ื•ืœื™ื ืœื”ืฉืชืžืฉ ื‘ืชื•ื‘ื ื•ืช ื”ืœืœื• ื›ื“ื™ ืœืชื–ืžืŸ ื”ืคืขืœื•ืช ืฉืœ ืขื™ื‘ื•ื“ ืžื—ื“ืฉ ืื• ืกืงื™ืจื•ืช ืงื•ื“ ื”ืžืชืžืงื“ื•ืช ื‘ื”ืคื—ืชืช ื”ืžื•ืจื›ื‘ื•ืช, ืชื•ืš ื”ื‘ื˜ื—ืช ืชื—ื–ื•ืงื” ืœื˜ื•ื•ื— ืืจื•ืš.

pipeline {
    agent any
    stages {
        stage('Generate Complexity Report') {
            steps {
                sh 'static-analysis-tool --report complexity-report.html'
            }
        }
        stage('Archive Report') {
            steps {
                archiveArtifacts artifacts: 'complexity-report.html', fingerprint: true
            }
        }
    }
}

ืฆื™ื ื•ืจ ื–ื” ืœื ืจืง ืžื™ื™ืฆืจ ื“ื•ื— ืžื•ืจื›ื‘ื•ืช ืืœื ื’ื ืฉื•ืžืจ ืื•ืชื• ื‘ืืจื›ื™ื•ืŸ ืœืขื™ื•ืŸ ืขืชื™ื“ื™, ื•ืชื•ืžืš ื‘ืžืขืงื‘ ื•ืฉื™ืคื•ืจ ืžืชืžืฉื›ื™ื.

ืฉื™ืคื•ืจ ื›ื™ืกื•ื™ ื”ื‘ื“ื™ืงื”

ืžื•ืจื›ื‘ื•ืช ืฆื™ืงืœื•ืžื˜ื™ืช ื’ื‘ื•ื”ื” ืžืฉืคื™ืขื” ื™ืฉื™ืจื•ืช ืขืœ ืžืกืคืจ ืžืงืจื™ ื”ื‘ื“ื™ืงื” ื”ื ื“ืจืฉื™ื ืœื”ืฉื’ืช ื›ื™ืกื•ื™ ืžืœื. ื›ืœ ื ืชื™ื‘ ืขืฆืžืื™ ื‘ืงื•ื“ ืžืชืื™ื ืœืžืงืจื” ื‘ื“ื™ืงื” ืื—ื“ ืœืคื—ื•ืช. ื›ืœื™ ื ื™ืชื•ื— ืงื•ื“ ืกื˜ื˜ื™ ืžืกื™ื™ืขื™ื ื‘ื–ื™ื”ื•ื™ ื ืชื™ื‘ื™ื ืฉืœื ื ื‘ื“ืงื• ื•ื”ืฆืขืช ืžืงืจื™ ื‘ื“ื™ืงื” ื ื•ืกืคื™ื, ื•ืžื‘ื˜ื™ื—ื™ื ืฉื›ืœ ื”ืขื ืคื™ื ื”ืœื•ื’ื™ื™ื ืžืื•ืžืชื™ื.

ื”ืคื—ืชืช ื”ืžื•ืจื›ื‘ื•ืช ื”ืฆื™ืงืœื•ืžื˜ื™ืช ืžืคืฉื˜ืช ืืช ื”ื‘ื“ื™ืงื•ืช ืขืœ ื™ื“ื™ ื”ืคื—ืชืช ืžืกืคืจ ืžืงืจื™ ื”ื‘ื“ื™ืงื” ื”ื ื“ืจืฉื™ื. ืœื“ื•ื’ืžื”, ืคื•ื ืงืฆื™ื” ืขื ืขืฉืจ ื ืงื•ื“ื•ืช ื”ื—ืœื˜ื” ืขืฉื•ื™ื” ืœื“ืจื•ืฉ ื™ื•ืชืจ ืž-100 ืžืงืจื™ ื‘ื“ื™ืงื” ื›ื“ื™ ืœื›ืกื•ืช ืืช ื›ืœ ื”ื ืชื™ื‘ื™ื. ืฉื™ื ื•ื™ ืคื•ื ืงืฆื™ื” ื–ื• ื›ื“ื™ ืœื”ืคื—ื™ืช ืืช ื ืงื•ื“ื•ืช ื”ื”ื—ืœื˜ื” ืžื•ืจื™ื“ ืžืฉืžืขื•ืชื™ืช ืืช ื ื˜ืœ ื”ื‘ื“ื™ืงื”.

public int calculateScore(boolean conditionA, boolean conditionB, boolean conditionC) {
    if (conditionA && conditionB && conditionC) {
        return 100;
    } else if (conditionA && conditionB) {
        return 80;
    } else if (conditionA) {
        return 50;
    }
    return 0;
}

ืœืคื•ื ืงืฆื™ื” ื–ื• ื™ืฉ ืžืกืคืจ ืชื ืื™ื ื”ืžื•ื‘ื™ืœื™ื ืœืžื•ืจื›ื‘ื•ืช ืฆื™ืงืœื•ืžื˜ื™ืช ื’ื‘ื•ื”ื”. ื›ืœื™ ื ื™ืชื•ื— ืกื˜ื˜ื™ ื™ืžืœื™ืฆื• ืœืคืฉื˜ ืืช ื”ื”ื™ื’ื™ื•ืŸ ืื• ืœื—ืœืง ืื•ืชื• ืœืคื•ื ืงืฆื™ื•ืช ืงื˜ื ื•ืช ื™ื•ืชืจ, ื•ื‘ื›ืš ืœืฉืคืจ ืืช ื™ื›ื•ืœืช ื”ื‘ื“ื™ืงื”. ืขืœ ื™ื“ื™ ื”ืชืืžื” ืฉืœ ืืกื˜ืจื˜ื’ื™ื•ืช ื‘ื“ื™ืงื” ืœืžืืžืฆื™ ื”ืคื—ืชืช ืžื•ืจื›ื‘ื•ืช, ืฆื•ื•ืชื™ ืคื™ืชื•ื— ื™ื›ื•ืœื™ื ืœื”ื‘ื˜ื™ื— ื›ื™ืกื•ื™ ืžืงื™ืฃ ืขื ื™ืชื™ืจื•ืช ืžื™ื ื™ืžืœื™ืช.

ืกื™ื‘ื•ืช ืžื“ื•ืข ืœืžืชื›ื ืชื™ื ืฆืจื™ืš ืœื”ื™ื•ืช ืื›ืคืช ืžืžื•ืจื›ื‘ื•ืช ืฆื™ืงืœื•ืžื˜ื™ืช (CC) ื•ื–ื™ื”ื•ื™ ืžื•ืงื“ื ืฉืœ ื‘ืขื™ื•ืช ืคื•ื˜ื ืฆื™ืืœื™ื•ืช

ืžื“ื•ืข ืœืžืชื›ื ืชื™ื ืฆืจื™ืš ืœื”ื™ื•ืช ืื›ืคืช ืžืžื•ืจื›ื‘ื•ืช ืฆื™ืงืœื•ืžื˜ื™ืช (CC)

ืžื•ืจื›ื‘ื•ืช ืฆื™ืงืœื•ืžื˜ื™ืช (CC) ื”ื™ื ื™ื•ืชืจ ืžืกืชื ืžื•ืฉื’ ืชื™ืื•ืจื˜ื™ - ื™ืฉ ืœื” ื”ืฉืœื›ื•ืช ืžืขืฉื™ื•ืช ื”ืžืฉืคื™ืขื•ืช ืขืœ ื›ืœ ืฉืœื‘ ื‘ืžื—ื–ื•ืจ ื”ื—ื™ื™ื ืฉืœ ืคื™ืชื•ื— ื”ืชื•ื›ื ื”. ืœืžืชื›ื ืชื™ื ืฆืจื™ืš ืœื”ื™ื•ืช ืื›ืคืช ืž-CC ืžื›ื™ื•ื•ืŸ ืฉื”ื•ื ืžืฉืคื™ืข ื™ืฉื™ืจื•ืช ืขืœ ื™ื›ื•ืœืช ื”ืชื—ื–ื•ืงื”, ื”ืงืจื™ืื” ื•ื”ืืžื™ื ื•ืช ืฉืœ ื”ืงื•ื“ ืฉืœื”ื. ืฆื™ื•ื ื™ CC ื’ื‘ื•ื”ื™ื ืžืฆื‘ื™ืขื™ื ืขืœ ืžื‘ื ื™ ืงื•ื“ ืžื•ืจื›ื‘ื™ื, ืฉื™ื›ื•ืœื™ื ืœื”ืงืฉื•ืช ืขืœ ื”ื‘ื ื”, ื ื™ืคื•ื™ ื‘ืื’ื™ื ื•ืฉื™ื ื•ื™. ืžื•ืจื›ื‘ื•ืช ื–ื• ืžื’ื“ื™ืœื” ืืช ื”ืกื‘ื™ืจื•ืช ืœื”ื›ื ืกืช ื‘ืื’ื™ื ื‘ืžื”ืœืš ื”ืคื™ืชื•ื— ื•ืขื“ื›ื•ื ื™ื ืขืชื™ื“ื™ื™ื. ืขืจื›ื™ CC ื ืžื•ื›ื™ื ื™ื•ืชืจ ืคื™ืจื•ืฉื ื‘ื“ืจืš ื›ืœืœ ืฉื”ืงื•ื“ ืคืฉื•ื˜ ื™ื•ืชืจ, ืงืœ ื™ื•ืชืจ ืœื‘ื“ื™ืงื” ื•ืคื—ื•ืช ื ื•ื˜ื” ืœืฉื’ื™ืื•ืช.

ื”ื‘ื ืช CC ื’ื ืžืกืžื™ื›ื” ืžืคืชื—ื™ื ืœืงื‘ืœ ื”ื—ืœื˜ื•ืช ืขื™ืฆื•ื‘ ืžื•ืฉื›ืœื•ืช. ืœื“ื•ื’ืžื”, ื‘ืขืช ื”ื˜ืžืขืช ืชื›ื•ื ื•ืช ื—ื“ืฉื•ืช ืื• ืขื™ื‘ื•ื“ ืžื—ื“ืฉ ืฉืœ ืงื•ื“ ืงื™ื™ื, ืžืคืชื—ื™ื ื”ืฉื•ืงืœื™ื CC ื ื•ื˜ื™ื ื™ื•ืชืจ ืœื™ื™ืฆืจ ืงื•ื“ ืžื•ื“ื•ืœืจื™ ืœืฉื™ืžื•ืฉ ื—ื•ื–ืจ. ื–ื” ืžื•ื‘ื™ืœ ืœื”ืคื—ืชืช ื”ื—ื•ื‘ ื”ื˜ื›ื ื™ ื•ืœื”ืฆื˜ืจืคื•ืช ืžื”ื™ืจื” ื™ื•ืชืจ ืœื—ื‘ืจื™ ืฆื•ื•ืช ื—ื“ืฉื™ื. ื‘ื ื•ืกืฃ, ืžื›ื™ื•ื•ืŸ ืฉ-CC ืžืชืื ืœืžืกืคืจ ืžืงืจื™ ื”ื‘ื“ื™ืงื” ื”ื ื“ืจืฉื™ื, ื ื™ื”ื•ืœื• ืžื•ื‘ื™ืœ ื‘ื™ืขื™ืœื•ืช ืœืืกื˜ืจื˜ื’ื™ื•ืช ื‘ื“ื™ืงื” ื™ืขื™ืœื•ืช ื™ื•ืชืจ. ืขืœ ื™ื“ื™ ืฉืžื™ืจื” ืขืœ CC ื ืžื•ืš, ืžืคืชื—ื™ื ื™ื›ื•ืœื™ื ืœืฆืžืฆื ืืช ืžืืžืฆื™ ื”ื‘ื“ื™ืงื”, ืœื™ื™ืขืœ ืืช ืกืงื™ืจื•ืช ื”ืงื•ื“ ื•ืœืฉืคืจ ืืช ืœื•ื—ื•ืช ื”ื–ืžื ื™ื ื”ื›ื•ืœืœื™ื ืฉืœ ื”ืคืจื•ื™ืงื˜.

public int calculateUserScore(boolean isAdmin, boolean isPremium, boolean isActive) {
    if (isAdmin && isPremium && isActive) return 100;
    if (isAdmin && isPremium) return 80;
    if (isPremium && isActive) return 70;
    if (isActive) return 50;
    return 10;
}

ืœืคื•ื ืงืฆื™ื” ื–ื• ื™ืฉ CC ืฉืœ 5. ื”ืคื—ืชืช ืžื•ืจื›ื‘ื•ืช ื›ื–ื• ืขืœ ื™ื“ื™ ืคื™ืจื•ืงื” ืœืฉื™ื˜ื•ืช ืงื˜ื ื•ืช ื™ื•ืชืจ ื•ืžืžื•ืงื“ื•ืช ื™ื•ืชืจ ืžืคืฉื˜ืช ืืช ื”ื‘ื“ื™ืงื•ืช ื•ื”ืชื—ื–ื•ืงื”, ืžื” ืฉื”ื•ืคืš ืืช ื‘ืกื™ืก ื”ืงื•ื“ ืœื”ืชืืžื” ื™ื•ืชืจ ืœืฉื™ื ื•ื™ื™ื ืขืชื™ื“ื™ื™ื.

ื”ื—ืฉื™ื‘ื•ืช ืฉืœ ื–ื™ื”ื•ื™ ืžื•ืงื“ื ืฉืœ ื‘ืขื™ื•ืช ืคื•ื˜ื ืฆื™ืืœื™ื•ืช

ื’ื™ืœื•ื™ ืžื•ืงื“ื ืฉืœ ื‘ืขื™ื•ืช ืคื•ื˜ื ืฆื™ืืœื™ื•ืช ื”ืงืฉื•ืจื•ืช ืœืžื•ืจื›ื‘ื•ืช ืฆื™ืงืœื•ืžื˜ื™ืช (CC) ื™ื›ื•ืœ ืœื”ืฉืคื™ืข ื‘ืื•ืคืŸ ืžืฉืžืขื•ืชื™ ืขืœ ื”ืื™ื›ื•ืช ื•ื”ืงื™ื™ืžื•ืช ืฉืœ ืคืจื•ื™ืงื˜ื™ ืชื•ื›ื ื”. ื›ืœื™ ื ื™ืชื•ื— ืงื•ื“ ืกื˜ื˜ื™ ืžืžืœืื™ื ืชืคืงื™ื“ ื—ื™ื•ื ื™ ื‘ื–ื™ื”ื•ื™ ื‘ืขื™ื•ืช ื”ืงืฉื•ืจื•ืช ืœืžื•ืจื›ื‘ื•ืช ื‘ืฉืœื‘ ืžื•ืงื“ื ื‘ืชื”ืœื™ืš ื”ืคื™ืชื•ื—. ื›ืืฉืจ CC ืžื ื•ื˜ืจ ื‘ืจืฆื™ืคื•ืช, ืฆื•ื•ืชื™ื ื™ื›ื•ืœื™ื ืœื–ื”ื•ืช ืงื˜ืขื™ ืงื•ื“ ืฉืขืœื•ืœื™ื ืœื”ืคื•ืš ืœื‘ืขื™ื™ืชื™ื™ื ื›ื›ืœ ืฉื”ืคืจื•ื™ืงื˜ ืžืชืจื—ื‘. ื’ื™ืฉื” ืคืจื•ืืงื˜ื™ื‘ื™ืช ื–ื• ืžืคื—ื™ืชื” ืืช ื”ืกื™ื›ื•ืŸ ืœื”ื—ื“ืจืช ื‘ืื’ื™ื ืงืจื™ื˜ื™ื™ื ื‘ืฉืœื‘ื™ื ืžืื•ื—ืจื™ื ื™ื•ืชืจ ืฉืœ ื”ืคื™ืชื•ื— ื›ืืฉืจ ื”ืชื™ืงื•ื ื™ื ื™ืงืจื™ื ื™ื•ืชืจ ื•ื’ื•ื–ืœื™ื ื–ืžืŸ ืจื‘ ื™ื•ืชืจ.

ื’ื™ืœื•ื™ ืžื•ืงื“ื ื’ื ืžืงืœ ืขืœ ื”ืงืฆืืช ืžืฉืื‘ื™ื ื˜ื•ื‘ื” ื™ื•ืชืจ. ืฆื•ื•ืชื™ื ื™ื›ื•ืœื™ื ืœืชืขื“ืฃ ืžืืžืฆื™ ืขื™ื‘ื•ื“ ืžื—ื“ืฉ ื‘ืื–ื•ืจื™ื ื‘ืขืœื™ ืžื•ืจื›ื‘ื•ืช ื’ื‘ื•ื”ื”, ื•ืœื”ื‘ื˜ื™ื— ืฉืจื›ื™ื‘ื™ื ืงืจื™ื˜ื™ื™ื ื™ื™ืฉืืจื• ื ื™ืชื ื™ื ืœืชื—ื–ื•ืงื” ื•ืงืœื™ื ืœื‘ื“ื™ืงื”. ื™ืชืจ ืขืœ ื›ืŸ, ืงืœื™ื˜ืช ื‘ืขื™ื•ืช ืžื•ืจื›ื‘ื•ืช ืžื•ืงื“ื ืžืืคืฉืจืช ืฉื™ืคื•ืจื™ื ืื™ื˜ืจื˜ื™ื‘ื™ื™ื, ื•ืžื•ื ืขืช ื”ืฆื˜ื‘ืจื•ืช ืฉืœ ื—ื•ื‘ ื˜ื›ื ื™. ื–ื” ืžื•ื‘ื™ืœ ืœืžื—ื–ื•ืจื™ ืฉื—ืจื•ืจ ืžื”ื™ืจื™ื ื™ื•ืชืจ ื•ืœืคื—ื•ืช ื”ืคืชืขื•ืช ื‘ืžื”ืœืš ื‘ื™ืงื•ืจื•ืช ืงื•ื“ ืื• ืคืจื™ืกื•ืช ื™ื™ืฆื•ืจ. ื‘ื“ื™ืงื•ืช ืžื•ืจื›ื‘ื•ืช ืื•ื˜ื•ืžื˜ื™ื•ืช ื”ืžืฉื•ืœื‘ื•ืช ื‘ืฆื™ื ื•ืจื•ืช CI/CD ืžื‘ื˜ื™ื—ื•ืช ืฉืงื•ื“ ื—ื“ืฉ ืขื•ืžื“ ื‘ืชืงื ื™ ื”ืžื•ืจื›ื‘ื•ืช ืฉื ืงื‘ืขื•, ื•ืžืงื“ื ืืช ื‘ืจื™ืื•ืช ื”ืคืจื•ื™ืงื˜ ืœื˜ื•ื•ื— ืืจื•ืš.

pipeline {
    agent any
    stages {
        stage('Early Complexity Detection') {
            steps {
                sh 'static-analysis-tool --complexity-threshold 10 --early-detection'
            }
            post {
                failure {
                    error 'Build failed: Early detection of high cyclomatic complexity.'
                }
            }
        }
    }
}

ืชืฆื•ืจื” ื–ื• ืฉืœ Jenkins Pipeline ืžื“ื’ื™ืžื” ื›ื™ืฆื“ ื‘ื“ื™ืงื•ืช ืžื•ืจื›ื‘ื•ืช ื™ื›ื•ืœื•ืช ืœื”ื™ื•ืช ืื•ื˜ื•ืžื˜ื™ื•ืช ื›ื“ื™ ืœื”ื‘ื˜ื™ื— ื–ื™ื”ื•ื™ ืžื•ืงื“ื. ืื ื—ืจื™ื’ื” ืžืกืฃ ื”-CC, ื”ืฆื™ื ื•ืจ ื ื›ืฉืœ, ืžื” ืฉืžื‘ืงืฉ ืคืขื•ืœื” ืžื™ื™ื“ื™ืช. ืขืœ ื™ื“ื™ ืื™ืžื•ืฅ ืคืจืงื˜ื™ืงื•ืช ื›ืืœื”, ืฆื•ื•ืชื™ ืคื™ืชื•ื— ื™ื›ื•ืœื™ื ืœืžื ื•ืข ืžื‘ืขื™ื•ืช ื”ืงืฉื•ืจื•ืช ืœืžื•ืจื›ื‘ื•ืช ืœื”ืฉืคื™ืข ืขืœ ืฉืœื‘ื™ ืคื™ืชื•ื— ืžืื•ื—ืจื™ื ื™ื•ืชืจ, ื•ืœื”ื‘ื˜ื™ื— ืฉื”ืชื•ื›ื ื” ืชื™ืฉืืจ ืืžื™ื ื”, ื ื™ืชื ืช ืœืชื—ื–ื•ืงื” ื•ืงืœื” ืœื”ืจื—ื‘ื”.

ืžืชื›ื ืชื™ื ื”ืžื ื˜ืจื™ื ื•ืžื ื”ืœื™ื ื‘ืื•ืคืŸ ืคืขื™ืœ ืืช ื”-Cyclomatic Complexity (CC) ืชื•ืจืžื™ื ืœื™ืฆื™ืจืช ื‘ืกื™ืกื™ ืงื•ื“ ืื™ื›ื•ืชื™ื™ื ื”ื ื™ืชื ื™ื ืœืชื—ื–ื•ืงื”. ื–ื™ื”ื•ื™ ืžื•ืงื“ื ืฉืœ ื‘ืขื™ื•ืช ืคื•ื˜ื ืฆื™ืืœื™ื•ืช ืžื‘ื˜ื™ื— ืฉื”ืžื•ืจื›ื‘ื•ืช ื ืฉืืจืช ื‘ืฉืœื™ื˜ื”, ืžืคื—ื™ืช ืืช ื”ืกื™ื›ื•ืŸ ืœื‘ืื’ื™ื, ืžืคื—ื™ืช ืืช ืขืœื•ื™ื•ืช ื”ืชื—ื–ื•ืงื” ื•ืžืฉืคืจ ืืช ื‘ื™ืฆื•ืขื™ ื”ืชื•ื›ื ื” ื”ื›ื•ืœืœื™ื. ืฉื™ืœื•ื‘ ื‘ื“ื™ืงื•ืช CC ืื•ื˜ื•ืžื˜ื™ื•ืช ื‘ืฆื™ื ื•ืจื•ืช CI/CD ืžืกืคืงืช ืžืกื’ืจืช ื—ื–ืงื” ืœืื™ื›ื•ืช ืงื•ื“ ืืจื•ื›ืช ื˜ื•ื•ื— ื•ื”ืฆืœื—ืช ืคืจื•ื™ืงื˜.

ื›ื™ืฆื“ ืœืžืฆื•ื ืžื•ืจื›ื‘ื•ืช ืฆื™ืงืœื•ืžื˜ื™ืช ื‘ืงื•ื“ ืฉืœืš

ื”ื‘ื ืช ื”ื™ืกื•ื“ื•ืช ืฉืœ ื—ื™ืฉื•ื‘ ืžื•ืจื›ื‘ื•ืช ืฆื™ืงืœื•ืžื˜ื™ืช

ืกื™ืงืœื•ืžื˜ื™ืช ืžื•ืจื›ื‘ื•ืช (CC) ืžื•ื“ื“ืช ืืช ืžืกืคืจ ื”ื ืชื™ื‘ื™ื ื”ืขืฆืžืื™ื™ื ื“ืจืš ืงื•ื“ ื”ืžืงื•ืจ ืฉืœ ืชื•ื›ื ื™ืช. ื›ื“ื™ ืœืžืฆื•ื CC ื‘ืื•ืคืŸ ื™ื“ื ื™, ืžืคืชื—ื™ื ื™ื›ื•ืœื™ื ืœื”ืฉืชืžืฉ ื‘ื ื•ืกื—ื” ืฉืœ McCabe: , ื›ืืฉืจ ืžื™ื™ืฆื’ ืืช ืžืกืคืจ ื”ืงืฆื•ื•ืช ื‘ื’ืจืฃ ื–ืจื™ืžืช ื”ื‘ืงืจื”, ืžืกืคืจ ื”ืฆืžืชื™ื ื•ืžืกืคืจ ื”ืจื›ื™ื‘ื™ื ื”ืžื—ื•ื‘ืจื™ื. ืขื‘ื•ืจ ืคื•ื ืงืฆื™ื•ืช ืงื˜ื ื•ืช, ื—ื™ืฉื•ื‘ ื™ื“ื ื™ ืฉืœ CC ืืคืฉืจื™, ืืš ื›ื›ืœ ืฉื‘ืกื™ืกื™ ืงื•ื“ ื’ื“ืœื™ื, ื–ื” ื”ื•ืคืš ืœื‘ืœืชื™ ืžืขืฉื™. ื”ื”ื‘ื ื” ื›ื™ืฆื“ ื›ืœ ื”ืฆื”ืจื” ืžื•ืชื ื™ืช, ืœื•ืœืื” ื•ืžื‘ื ื” ื‘ืงืจื” ืชื•ืจืžื™ื ืœ-CC ื—ื™ื•ื ื™ืช ืœืžื“ื™ื“ื” ืžื“ื•ื™ืงืช. ื›ืœ ื ืงื•ื“ืช ื”ื—ืœื˜ื”, ื›ื’ื•ืŸ if, else, while, for, ื• case ื”ืฆื”ืจื•ืช, ืžื•ืกื™ืฃ ืื—ื“ ืœืขืจืš CC.

ืœื“ื•ื’ืžื”:

public void exampleFunction(boolean conditionA, boolean conditionB) {
    if (conditionA) {
        System.out.println("Condition A is true");
    }
    if (conditionB) {
        System.out.println("Condition B is true");
    }
}

ืœืคื•ื ืงืฆื™ื” ื–ื• ื™ืฉ ืฉืชื™ ื ืงื•ื“ื•ืช ื”ื—ืœื˜ื” (if ื”ืฆื”ืจื•ืช), ื•ื›ืชื•ืฆืื” ืžื›ืš CC ืฉืœ 3 (2 ืชื ืื™ื + 1 ืขื‘ื•ืจ ื ืชื™ื‘ ื‘ืจื™ืจืช ื”ืžื—ื“ืœ). ืขืœ ื™ื“ื™ ื”ื‘ื ืช ื”ื—ื™ืฉื•ื‘ื™ื ื”ืœืœื•, ืžืคืชื—ื™ื ืžืงื‘ืœื™ื ืชื•ื‘ื ื” ื›ื™ืฆื“ ื›ืœ ื—ืœืง ื‘ืงื•ื“ ืฉืœื”ื ืžืฉืคื™ืข ืขืœ ื”ืžื•ืจื›ื‘ื•ืช ื”ื›ื•ืœืœืช.

ืฉื™ืžื•ืฉ ื‘ื›ืœื™ื ืœื ื™ืชื•ื— ืงื•ื“ ืกื˜ื˜ื™

ื›ืœื™ ื ื™ืชื•ื— ืงื•ื“ ืกื˜ื˜ื™ ืžืกืคืงื™ื ื’ื™ืฉื” ืื•ื˜ื•ืžื˜ื™ืช ืœื—ื™ืฉื•ื‘ ืžื•ืจื›ื‘ื•ืช ืฆื™ืงืœื•ืžื˜ื™ืช. ื›ืœื™ื ืืœื” ืกื•ืจืงื™ื ืืช ื›ืœ ื‘ืกื™ืก ื”ืงื•ื“, ืžื“ื•ื•ื—ื™ื ืขืœ ืขืจื›ื™ CC ืขื‘ื•ืจ ื›ืœ ืคื•ื ืงืฆื™ื” ืื• ืžื•ื“ื•ืœ, ื•ืžื“ื’ื™ืฉื™ื ืื–ื•ืจื™ื ื”ื—ื•ืจื’ื™ื ืžืกืฃ ื”ืžื•ืจื›ื‘ื•ืช ื”ืžืงื•ื‘ืœ. ื›ืœื™ ื ื™ืชื•ื— ืกื˜ื˜ื™ ืคื•ืคื•ืœืจื™ื™ื ืžืฉืชืœื‘ื™ื ืขื ืกื‘ื™ื‘ื•ืช ืคื™ืชื•ื—, ื•ืžืฆื™ืขื™ื ืžืฉื•ื‘ ื‘ื–ืžืŸ ืืžืช. ื”ื ืžืฆื™ื’ื™ื ืฆื™ื•ื ื™ ืžื•ืจื›ื‘ื•ืช ืœืฆื“ ื”ืฆืขื•ืช ื ื™ืชื ื•ืช ืœืคืขื•ืœื”, ืžื” ืฉืžืงืœ ืขืœ ืžืคืชื—ื™ื ืœืฉืžื•ืจ ืขืœ ืื™ื›ื•ืช ืงื•ื“ ืื•ืคื˜ื™ืžืœื™ืช.

ืœื“ื•ื’ืžื”, ื”ืคืขืœืช ื›ืœื™ ื ื™ืชื•ื— ืงื•ื“ ืกื˜ื˜ื™ ืขืฉื•ื™ื” ืœื™ื™ืฆืจ ืคืœื˜ ื›ืžื•:

Function: processOrder
Cyclomatic Complexity: 12
Recommendation: Consider refactoring to reduce nested conditionals and loops.

ืขืœ ื™ื“ื™ ืžืชืŸ ืชื•ื‘ื ื•ืช ื›ืืœื”, ื”ื›ืœื™ื ื”ืœืœื• ืžื•ื ืขื™ื ื ื™ื—ื•ืฉื™ื, ื•ืžืืคืฉืจื™ื ืœืžืคืชื—ื™ื ืœื”ืชืžืงื“ ื‘ืฉื—ื–ื•ืจ ื”ืงื˜ืขื™ื ื”ืžื•ืจื›ื‘ื™ื ื‘ื™ื•ืชืจ ื‘ืงื•ื“ ืฉืœื”ื. ืชื”ืœื™ืš ื–ื” ื—ื™ื•ื ื™ ื›ื“ื™ ืœื”ื‘ื˜ื™ื— ืฉืคืจื•ื™ืงื˜ื™ื ื™ื™ืฉืืจื• ื ื™ืชื ื™ื ืœืชื—ื–ื•ืงื” ื•ื ื™ืชื ื™ื ืœื”ืจื—ื‘ื” ืชื•ืš ื›ื“ื™ ื”ืชืคืชื—ื•ืชื.

ืžื™ื ื•ืฃ ืชื•ืกืคื™ื ืฉืœ IDE ืœื ื™ืชื•ื— ืžื•ืจื›ื‘ื•ืช

ืกื‘ื™ื‘ื•ืช ืคื™ืชื•ื— ืžืฉื•ืœื‘ื•ืช ืžื•ื“ืจื ื™ื•ืช (IDE) ืžืฆื™ืขื•ืช ืชื•ืกืคื™ื ื”ืžืคืฉื˜ื™ื ืืช ื–ื™ื”ื•ื™ ื”-CC. ืชื•ืกืคื™ื ืืœื” ืžืฉืชืœื‘ื™ื ื‘ืฆื•ืจื” ื—ืœืงื” ื‘ื–ืจื™ืžื•ืช ืขื‘ื•ื“ื” ืฉืœ ืคื™ืชื•ื—, ื•ืžืกืคืงื™ื ืฆื™ื•ื ื™ ืžื•ืจื›ื‘ื•ืช ื‘ื–ืžืŸ ืืžืช ื‘ื–ืžืŸ ืฉืžืคืชื—ื™ื ื›ื•ืชื‘ื™ื ืงื•ื“. ื›ืœื™ ื ื™ืชื•ื— ืžื•ืจื›ื‘ื•ืช ืžื‘ื•ืกืกื™ IDE ืžื“ื’ื™ืฉื™ื ืงื˜ืขื™ ืงื•ื“ ื‘ืขื™ื™ืชื™ื™ื ื™ืฉื™ืจื•ืช ื‘ืชื•ืš ื”ืขื•ืจืš, ื•ืžืืคืฉืจื™ื ืคืขื•ืœื•ืช ืžืชืงื ื•ืช ืžื™ื™ื“ื™ื•ืช.

ืœื“ื•ื’ืžื”, ื‘ืขืช ืขืจื™ื›ืช ืคื•ื ืงืฆื™ื”, ืชื•ืกืฃ ืขืฉื•ื™ ืœื”ืฆื™ื’ ืื–ื”ืจื” ืื CC ื—ื•ืจื’ ืžืกืฃ ืฉืฆื•ื™ืŸ. ืžืคืชื—ื™ื ื™ื›ื•ืœื™ื ืื– ืœื™ื™ืฉื ืฉื™ื˜ื•ืช ืขื‘ื•ื“ื” ืžื•ืžืœืฆื•ืช ื›ื’ื•ืŸ ื—ื™ืœื•ืฅ ืฉื™ื˜ื•ืช, ืฆืžืฆื•ื ืชื ืื™ื ืžืงื•ื ื ื™ื ืื• ืฉื™ืžื•ืฉ ื‘ืžื‘ื ื™ ื‘ืงืจื” ืคืฉื•ื˜ื™ื ื™ื•ืชืจ. ืชื•ื‘ื ื•ืช ืืœื• ื‘ื–ืžืŸ ืืžืช ืžืคื—ื™ืชื•ืช ืืช ื”ืกื‘ื™ืจื•ืช ืฉื™ื•ืฆื’ื• ื‘ืขื™ื•ืช ื”ืงืฉื•ืจื•ืช ืœืžื•ืจื›ื‘ื•ืช ื‘ืžื”ืœืš ื”ืคื™ืชื•ื—.

public int calculateDiscount(int price, boolean isMember, boolean isHoliday) {
    if (isMember) {
        if (isHoliday) {
            return price * 80 / 100;
        } else {
            return price * 90 / 100;
        }
    } else if (isHoliday) {
        return price * 95 / 100;
    }
    return price;
}

ืœืคื•ื ืงืฆื™ื” ื–ื• ื™ืฉ ืžืกืคืจ ืชื ืื™ื ืžืงื•ื ื ื™ื, ืžื” ืฉืžื•ื‘ื™ืœ ืœ-CC ื’ื‘ื•ื” ื™ื•ืชืจ. ืชื•ืกืคื™ื ืฉืœ IDE ื™ืกืžื ื• ืืช ื–ื” ืœ-refactoring, ื”ืžืฆื™ืขื™ื ืžื‘ื ื” ืฉื˜ื•ื— ื™ื•ืชืจ ืื• ืคื™ืฆื•ืœ ื”ืคื•ื ืงืฆื™ื” ืœื™ื—ื™ื“ื•ืช ืงื˜ื ื•ืช ื™ื•ืชืจ.

ื‘ื™ืฆื•ืข ื‘ื™ืงื•ืจื•ืช ืงื•ื“ ื™ื“ื ื™ื•ืช ืขื ื”ืชืžืงื“ื•ืช ื‘-CC

ื‘ืขื•ื“ ืฉื›ืœื™ื ืื•ื˜ื•ืžื˜ื™ื™ื ืžืกืคืงื™ื ื—ื™ืฉื•ื‘ื™ CC ืžื”ื™ืจื™ื, ืกืงื™ืจื•ืช ืงื•ื“ ื™ื“ื ื™ื•ืช ืžืฆื™ืขื•ืช ืชื•ื‘ื ื•ืช ื—ืฉื•ื‘ื•ืช ืกืคืฆื™ืคื™ื•ืช ืœื”ืงืฉืจ. ื‘ืžื”ืœืš ืกืงื™ืจื•ืช ืงื•ื“, ืžืคืชื—ื™ื ืฆืจื™ื›ื™ื ืœื‘ื—ื•ืŸ ืžื‘ื ื™ ื–ืจื™ืžืช ื‘ืงืจื”, ืœื–ื”ื•ืช ื”ื–ื“ืžื ื•ื™ื•ืช ืœืคืฉื˜ ืืช ื”ื”ื™ื’ื™ื•ืŸ ื•ืœื”ืคื—ื™ืช ืืช ื ืงื•ื“ื•ืช ื”ื”ื—ืœื˜ื”. ื”ื“ื’ืฉืช ื”ืžื•ืจื›ื‘ื•ืช ื”ืฆื™ืงืœื•ืžื˜ื™ืช ื‘ืกืงื™ืจื•ืช ืงื•ื“ ืžื‘ื˜ื™ื—ื” ืฉื ื™ื”ื•ืœ ื”ืžื•ืจื›ื‘ื•ืช ื”ื•ืคืš ืœื—ืœืง ื‘ืœืชื™ ื ืคืจื“ ืžืชื”ืœื™ืš ื”ืคื™ืชื•ื—.

ืกื•ืงืจื™ื ื™ื›ื•ืœื™ื ืœื—ืคืฉ:

  • ืงื™ื ื•ืŸ ืžื•ื’ื–ื ืฉื ื™ืชืŸ ืœืฉื˜ื—.

  • ืคื•ื ืงืฆื™ื•ืช ืฉืžื‘ืฆืขื•ืช ืžืฉื™ืžื•ืช ืžืจื•ื‘ื•ืช ื•ื™ื›ื•ืœื•ืช ืœื”ืชืคืจืง.

  • ื”ื–ื“ืžื ื•ื™ื•ืช ืœื”ื—ืœื™ืฃ ืืช ื”ื”ื™ื’ื™ื•ืŸ ื”ืžื•ืชื ื” ื‘ืคื•ืœื™ืžื•ืจืคื™ื–ื.


ืขืœ ื™ื“ื™ ื˜ื™ืคื•ื— ืชืจื‘ื•ืช ืฉื‘ื” ืฉื™ืงื•ืœื™ ืžื•ืจื›ื‘ื•ืช ื”ื ื—ืœืง ืžืกืงื™ืจื•ืช ืฉื’ืจืชื™ื•ืช, ืฆื•ื•ืชื™ื ืฉื•ืžืจื™ื ืขืœ ื‘ืกื™ืกื™ ืงื•ื“ ื ืงื™ื™ื ื™ื•ืชืจ ื•ื ื™ืชื ื™ื ืœื ื™ื”ื•ืœ.

ืฉื™ืœื•ื‘ ื ื™ืชื•ื— ืžื•ืจื›ื‘ื•ืช ื‘ื‘ื“ื™ืงืช ื™ื—ื™ื“ื•ืช

ืืกื˜ืจื˜ื’ื™ื•ืช ืœื‘ื“ื™ืงืช ื™ื—ื™ื“ื•ืช ื™ื›ื•ืœื•ืช ื’ื ืœื—ืฉื•ืฃ ืชื•ื‘ื ื•ืช ืœื’ื‘ื™ CC. ืžื›ื™ื•ื•ืŸ ืฉื›ืœ ื ืชื™ื‘ ืขืฆืžืื™ ื“ื•ืจืฉ ื‘ื“ื™ืงื”, ืžืกืคืจ ื’ื‘ื•ื” ืฉืœ ืžืงืจื™ ื‘ื“ื™ืงื” ื ื“ืจืฉื™ื ืžืฆื‘ื™ืข ืขืœ ืžื•ืจื›ื‘ื•ืช ืžื•ื’ื‘ืจืช. ื ื™ืชื•ื— ื›ื™ืกื•ื™ ืžื‘ื—ืŸ ื™ื—ื™ื“ื” ืœืฆื“ ืฆื™ื•ื ื™ CC ืขื•ื–ืจ ืœื–ื”ื•ืช ืงื•ื“ ืฉืขืฉื•ื™ ืœื”ืคื™ืง ืชื•ืขืœืช ืžืคื™ืฉื•ื˜. ืžืคืชื—ื™ื ื™ื›ื•ืœื™ื ืœืฆืžืฆื ืืช ื”-CC ืขืœ ื™ื“ื™ ืฉื™ื ื•ื™ ืžืืคื™ื™ืŸ ื›ื“ื™ ืœื”ืงื˜ื™ืŸ ืืช ืžืกืคืจ ื ืชื™ื‘ื™ ื”ื‘ื™ืฆื•ืข, ื•ื‘ื›ืš ืœื™ื™ืขืœ ืืช ืชื”ืœื™ืš ื”ื‘ื“ื™ืงื”.

ืœื“ื•ื’ืžื”:

public int computeShippingCost(boolean isExpress, boolean isInternational, boolean hasInsurance) {
    if (isExpress && isInternational) return 100;
    if (isInternational) return 80;
    if (isExpress) return 50;
    if (hasInsurance) return 30;
    return 20;
}

ืœืคื•ื ืงืฆื™ื” ื–ื• ื™ืฉ ืืจื‘ืข ื ืงื•ื“ื•ืช ื”ื—ืœื˜ื”, ื•ื›ืชื•ืฆืื” ืžื›ืš CC ืฉืœ 5. Refactoring ืขืœ ื™ื“ื™ ื”ืคืจื“ืช ืœื•ื’ื™ืงื” ืœืฉื™ื˜ื•ืช ืงื˜ื ื•ืช ื™ื•ืชืจ ืžืคื—ื™ืช ืืช ื”ืžื•ืจื›ื‘ื•ืช ื•ืืช ื”ืžืกืคืจ ื”ืžืชืื™ื ืฉืœ ืžืงืจื™ ื‘ื“ื™ืงื”, ืžื” ืฉื”ื•ืคืš ืืช ื”ื‘ื“ื™ืงื” ืœื™ืขื™ืœื” ื™ื•ืชืจ.

ื”ื‘ื ื” ื•ื–ื™ื”ื•ื™ ืฉืœ ืžื•ืจื›ื‘ื•ืช ืฆื™ืงืœื•ืžื˜ื™ืช ื‘ืงื•ื“ ื“ื•ืจืฉืช ืฉื™ืœื•ื‘ ืฉืœ ื›ืœื™ื ืื•ื˜ื•ืžื˜ื™ื™ื, ืกืงื™ืจื•ืช ื™ื“ื ื™ื•ืช ื•ืฉื™ื˜ื•ืช ืขื™ืฆื•ื‘ ืžืชื—ืฉื‘ื•ืช. ืขืœ ื™ื“ื™ ืฉื™ืœื•ื‘ ืฉื™ื˜ื•ืช ืืœื• ื‘ืชื”ืœื™ื›ื™ ืขื‘ื•ื“ื” ืจื’ื™ืœื™ื ืฉืœ ืคื™ืชื•ื—, ืžืชื›ื ืชื™ื ื™ื›ื•ืœื™ื ืœื”ื‘ื˜ื™ื— ื‘ืกื™ืกื™ ืงื•ื“ ืื™ื›ื•ืชื™ื™ื, ื ื™ืชื ื™ื ืœืชื—ื–ื•ืงื” ื•ื ื™ืชื ื™ื ืœื‘ื“ื™ืงื” ื”ืชื•ืžื›ื™ื ื‘ืคื™ืชื•ื— ืชื•ื›ื ื” ื‘ืจ-ืงื™ื™ืžื.

ื›ื™ืฆื“ ืœื”ืคื—ื™ืช ืืช ื”ืžื•ืจื›ื‘ื•ืช ื‘ื›ืœ ืชื•ื›ื ื™ืช

ืคื™ืฉื•ื˜ ืžื‘ื ื™ ื‘ืงืจื”

ืื—ืช ื”ื“ืจื›ื™ื ื”ื™ืขื™ืœื•ืช ื‘ื™ื•ืชืจ ืœื”ืคื—ืชืช ื”ืžื•ืจื›ื‘ื•ืช ื”ืฆื™ืงืœื•ืžื˜ื™ืช ื‘ื›ืœ ืชื•ื›ื ื™ืช ื”ื™ื ืขืœ ื™ื“ื™ ืคื™ืฉื•ื˜ ืžื‘ื ื™ ื‘ืงืจื”. ืžื‘ื ื™ ื‘ืงืจื” ืžื•ืจื›ื‘ื™ื ืขื ืžืกืคืจ ืขื ืคื™ื ืžื•ืชื ื™ื ืžื’ื“ื™ืœื™ื ืžืฉืžืขื•ืชื™ืช ืืช ืžื•ืจื›ื‘ื•ืช ื”ืงื•ื“. ื”ืคื—ืชืช ืžืงื•ื ื ื™ื if ื”ืฆื”ืจื•ืช, switch ืžืงืจื™ื, ื•ืœื•ืœืื•ืช ื™ื›ื•ืœื•ืช ืœืขื–ื•ืจ ืœื™ื™ืขืœ ืืช ื–ืจื™ืžืช ื”ื‘ืงืจื”. ื”ื—ื–ืจื•ืช ืžื•ืงื“ืžื•ืช, ื”ืžื›ื•ื ื” ื’ื ืกืขื™ืคื™ ืฉืžื™ืจื”, ื™ื›ื•ืœื•ืช ืœื”ืคื—ื™ืช ืงื™ื ื•ืŸ ืžื™ื•ืชืจ ืขืœ ื™ื“ื™ ื˜ื™ืคื•ืœ ื‘ืžืงืจื™ื ื—ืจื™ื’ื™ื ืžืจืืฉ.

ืœื“ื•ื’ืžื”:

public int calculateBonus(int yearsOfService, boolean isManager) {
    if (yearsOfService < 1) return 0;
    if (isManager) return 5000;
    return 2000;
}

ื”ืงื•ื“ ืฉืœืžืขืœื” ืžืฉืชืžืฉ ื‘ืกืขื™ืคื™ื ืฉืžื™ืจื” ื›ื“ื™ ืœืคืฉื˜ ืืช ื”ื”ื™ื’ื™ื•ืŸ, ืœื”ืคื—ื™ืช ืืช ื”ืงื™ื ื•ืŸ ื•ืœืฉืคืจ ืืช ื”ืงืจื™ืื”. ืคื™ืฉื•ื˜ ืžื‘ื ื™ ื”ื‘ืงืจื” ื’ื ืžืงื˜ื™ืŸ ืืช ืžืกืคืจ ืžืงืจื™ ื”ื‘ื“ื™ืงื” ื”ื ื“ืจืฉื™ื, ืžื” ืฉื”ื•ืคืš ืืช ื”ืงื•ื“ ืœืงืœ ื™ื•ืชืจ ืœื‘ื“ื™ืงื” ื•ืœืชื—ื–ื•ืงื”.

ื”ืคื™ื›ืช ืคื•ื ืงืฆื™ื•ืช ื’ื“ื•ืœื•ืช ืœืงื˜ื ื•ืช ื™ื•ืชืจ

ืคื™ืจื•ืง ืคื•ื ืงืฆื™ื•ืช ื’ื“ื•ืœื•ืช ืœืคื•ื ืงืฆื™ื•ืช ืงื˜ื ื•ืช ื™ื•ืชืจ ื•ืžืžื•ืงื“ื•ืช ื™ื•ืชืจ ื”ื™ื ื˜ื›ื ื™ืงื” ื—ื™ื•ื ื™ืช ื ื•ืกืคืช ืœื”ืคื—ืชืช ื”ืžื•ืจื›ื‘ื•ืช. ืคื•ื ืงืฆื™ื•ืช ื’ื“ื•ืœื•ืช ื”ืžื˜ืคืœื•ืช ื‘ืžืฉื™ืžื•ืช ืžืจื•ื‘ื•ืช ื™ื›ื•ืœื•ืช ืœื”ื™ื•ืช ืžืืชื’ืจื•ืช ืœืงืจื™ืื”, ื”ื‘ื ื” ื•ืชื—ื–ื•ืงื”. ื”ืคื™ื›ืชื ืžื—ื“ืฉ ืœืคื•ื ืงืฆื™ื•ืช ืงื˜ื ื•ืช ื™ื•ืชืจ, ืฉื›ืœ ืื—ืช ืื—ืจืื™ืช ืœืžืฉื™ืžื” ืื—ืช, ืžืคื—ื™ืชื” ืืช ื”ืžื•ืจื›ื‘ื•ืช ื”ืฆื™ืงืœื•ืžื˜ื™ืช ื•ืžืขื•ื“ื“ืช ืฉื™ืžื•ืฉ ื—ื•ื–ืจ.

public void processOrder(boolean isPriority, boolean isInternational) {
    if (isPriority) handlePriority();
    if (isInternational) handleInternational();
    finalizeOrder();
}
private void handlePriority() {
    System.out.println("Priority handling");
}
private void handleInternational() {
    System.out.println("International shipping");
}
private void finalizeOrder() {
    System.out.println("Order finalized");
}

ื‘ื“ื•ื’ืžื” ื–ื•, refactoring ืžืคื—ื™ืช ืืช ื”ืžื•ืจื›ื‘ื•ืช ืฉืœ processOrder ืคื•ึผื ืงืฆึดื™ึธื”. ืคื•ื ืงืฆื™ื•ืช ืงื˜ื ื•ืช ื™ื•ืชืจ ื”ื•ืคื›ื•ืช ืืช ื”ื‘ื“ื™ืงื•ืช ื•ื”ืชื—ื–ื•ืงื” ืœื ื™ืชื ื•ืช ืœื ื™ื”ื•ืœ, ื•ืžืฉืคืจื•ืช ืืช ื‘ื”ื™ืจื•ืช ื”ืงื•ื“ ื”ื›ื•ืœืœืช.

ื”ื—ืœืช ื“ืคื•ืกื™ ืขื™ืฆื•ื‘

ื“ืคื•ืกื™ ืขื™ืฆื•ื‘ ื›ื’ื•ืŸ ืืกื˜ืจื˜ื’ื™ื”, ืžื“ื™ื ื” ื•ืฉื™ื˜ืช ืชื‘ื ื™ืช ื™ื›ื•ืœื™ื ืœื”ืคื—ื™ืช ืืช ื”ืžื•ืจื›ื‘ื•ืช ืขืœ ื™ื“ื™ ืงื™ื“ื•ื ืงื•ื“ ืžื•ื“ื•ืœืจื™ ื•ื’ืžื™ืฉ. ื“ืคื•ืกื™ื ืืœื• ืขื•ื–ืจื™ื ืœื‘ื˜ืœ ืืช ื”ื”ื™ื’ื™ื•ืŸ ื”ืžื•ืชื ื” ื”ืžื•ืจื›ื‘ ืขืœ ื™ื“ื™ ื”ืืฆืœืช ืื—ืจื™ื•ืช ืœืžื—ืœืงื•ืช ืื—ืจื•ืช. ืœื“ื•ื’ืžื”, ื“ืคื•ืก ื”ืืกื˜ืจื˜ื’ื™ื” ืžืืคืฉืจ ื‘ื—ื™ืจื” ืฉืœ ืืœื’ื•ืจื™ืชื ื‘ื–ืžืŸ ืจื™ืฆื”, ื•ืžืกื™ืจ ื”ืกืชืขืคื•ืช ืžื•ืชื ื™ืช ืขืœ ืกืžืš ืกื•ื’.

interface PaymentStrategy {
    void pay(int amount);
}
class CreditCardPayment implements PaymentStrategy {
    public void pay(int amount) {
        System.out.println("Paid " + amount + " using Credit Card");
    }
}
class PayPalPayment implements PaymentStrategy {
    public void pay(int amount) {
        System.out.println("Paid " + amount + " using PayPal");
    }
}
public class ShoppingCart {
    private PaymentStrategy paymentStrategy;
    public ShoppingCart(PaymentStrategy paymentStrategy) {
        this.paymentStrategy = paymentStrategy;
    }
    public void checkout(int amount) {
        paymentStrategy.pay(amount);
    }
}

ื”ืฉื™ืžื•ืฉ ื‘ืชื‘ื ื™ืช ื”ืืกื˜ืจื˜ื’ื™ื” ื‘ื“ื•ื’ืžื” ื–ื• ืžื‘ื˜ืœ ืืช ื”ืฆื•ืจืš ื‘ื‘ื“ื™ืงื•ืช ืžื•ืชื ื•ืช ืžืจื•ื‘ื•ืช, ื•ื›ืชื•ืฆืื” ืžื›ืš ืงื•ื“ ื ืงื™ ื™ื•ืชืจ ื•ื ื™ืชืŸ ืœืชื—ื–ื•ืงื” ืขื ืžื•ืจื›ื‘ื•ืช ืฆื™ืงืœื•ืžื˜ื™ืช ืžื•ืคื—ืชืช.

ื”ืคื—ืชืช ืžื•ืจื›ื‘ื•ืช ื”ืœื•ืค

ืœืขืชื™ื ืงืจื•ื‘ื•ืช ืœื•ืœืื•ืช ืชื•ืจืžื•ืช ื‘ืื•ืคืŸ ืžืฉืžืขื•ืชื™ ืœืžื•ืจื›ื‘ื•ืช ื”ืฆื™ืงืœื•ืžื˜ื™ืช, ื‘ืžื™ื•ื—ื“ ื›ืฉื”ืŸ ืžืงื•ื ืŸ. ืฆืžืฆื•ื ื”ืขื•ืžืง ืฉืœ ืœื•ืœืื•ืช ืžืงื•ื ื ื•ืช ืื• ื”ื—ืœืคืชืŸ ื‘ืžื‘ื ื™ื ื™ืขื™ืœื™ื ื™ื•ืชืจ ื›ืžื• ืคืขื•ืœื•ืช ื–ืจื ื‘ืฉืคื•ืช ืžื•ื“ืจื ื™ื•ืช ื™ื›ื•ืœ ืœืคืฉื˜ ืืช ื”ืงื•ื“. ื‘ืืžืฆืขื•ืช break, continue, ื• return ื”ืฆื”ืจื•ืช ื›ืจืื•ื™ ื™ื›ื•ืœื•ืช ื’ื ืœืขื–ื•ืจ ืœืฉื˜ื— ืœื•ืœืื•ืช ื•ืœื”ืคื—ื™ืช ืืช ื”ืžื•ืจื›ื‘ื•ืช.

public void processList(List<String> items) {
    items.stream()
         .filter(item -> item.startsWith("A"))
         .forEach(System.out::println);
}

ื“ื•ื’ืžื” ื–ื• ืžื—ืœื™ืคื” ืœื•ืœืื•ืช ืžืงื•ื ื ื•ืช ื‘ืคืขื•ืœืช ื–ืจื, ืžืฉืคืจืช ืืช ื”ืงืจื™ืื” ื•ืžืคื—ื™ืชื” ืืช ื”ืžื•ืจื›ื‘ื•ืช ื”ืฆื™ืงืœื•ืžื˜ื™ืช. ืžืžืฉืงื™ API ืฉืœ Stream ืžืืคืฉืจื™ื ืงื•ื“ ืชืžืฆื™ืชื™ ื”ืžื˜ืคืœ ื‘ืคืขื•ืœื•ืช ืžื•ืจื›ื‘ื•ืช ืžื‘ืœื™ ืœื”ื’ื“ื™ืœ ืืช ืฆื™ื•ืŸ ื”ืžื•ืจื›ื‘ื•ืช.

ืžื–ืขื•ืจ ื‘ื™ื˜ื•ื™ื™ื ืžื•ืชื ื™ื

ื‘ื™ื˜ื•ื™ื™ื ืžื•ืชื ื™ื ืžื•ืจื›ื‘ื™ื ืชื•ืจืžื™ื ืœืžื•ืจื›ื‘ื•ืช ืฆื™ืงืœื•ืžื˜ื™ืช ื’ื‘ื•ื”ื”. ืคื™ืฉื•ื˜ ื‘ื™ื˜ื•ื™ื™ื ืืœื” ืขืœ ื™ื“ื™ ืฉื™ืžื•ืฉ ื‘ื”ื—ื–ืจื•ืช ืžื•ืงื“ืžื•ืช, ืื•ืคืจื˜ื•ืจื™ื ื˜ืจื™ื ืจื™ื™ื, ืื• ื”ืงืคืฆืช ืชื ืื™ื ื‘ืฉื™ื˜ื•ืช ืชื™ืื•ืจื™ื•ืช ื™ื›ื•ืœ ืœื”ืคื—ื™ืช ืืช ื”ืžื•ืจื›ื‘ื•ืช. ื‘ื™ื˜ื•ื™ื™ื ืžื•ืชื ื™ื ื‘ืจื•ืจื™ื ื•ืคืฉื•ื˜ื™ื ื’ื ืžืฉืคืจื™ื ืืช ื”ืงืจื™ืื” ื•ืžืคื—ื™ืชื™ื ืืช ื”ืกื™ื›ื•ื™ ืœื”ื›ื ืกืช ืฉื’ื™ืื•ืช.

public boolean isEligibleForDiscount(Customer customer) {
    return customer.isLoyalMember() && customer.getPurchaseHistory() > 5;
}

ืฉื™ื˜ื” ืชืžืฆื™ืชื™ืช ื–ื• ืžื—ืœื™ืคื” ืืช ื”ื”ื™ื’ื™ื•ืŸ ื”ืžื•ืชื ื” ื”ืžื•ืจื›ื‘ ื‘ื‘ื™ื˜ื•ื™ ื‘ืจื•ืจ ื•ืงืจื™ื. ืคื™ืฉื•ื˜ ื”ืชื ื™ื•ืช ื‘ืื•ืคืŸ ื–ื” ืžืคื—ื™ืช ืืช ื”ืžื•ืจื›ื‘ื•ืช ื”ืฆื™ืงืœื•ืžื˜ื™ืช ืชื•ืš ื”ื•ืคืš ืืช ื”ืงื•ื“ ืœืงืœ ื™ื•ืชืจ ืœื”ื‘ื ื” ื•ืœื‘ื“ื™ืงื”.

ื”ืคื—ืชืช ื”ืžื•ืจื›ื‘ื•ืช ื‘ื›ืœ ืชื•ื›ื ื™ืช ื“ื•ืจืฉืช ื‘ื—ื™ืจื•ืช ืขื™ืฆื•ื‘ื™ื•ืช ืžืชื—ืฉื‘ื•ืช, ืขื™ื‘ื•ื“ ืžื—ื•ื“ืฉ ื•ืžื™ื ื•ืฃ ืชื›ื•ื ื•ืช ืฉืคื” ืžื•ื“ืจื ื™ื•ืช. ืขืœ ื™ื“ื™ ืคื™ืฉื•ื˜ ืžื‘ื ื™ ื‘ืงืจื”, ื—ื™ืœื•ืฃ ืžื—ื“ืฉ ืฉืœ ืคื•ื ืงืฆื™ื•ืช ื’ื“ื•ืœื•ืช, ื™ื™ืฉื•ื ื“ืคื•ืกื™ ืขื™ืฆื•ื‘ ืžืชืื™ืžื™ื, ื”ืคื—ืชืช ืžื•ืจื›ื‘ื•ืช ื”ืœื•ืœืื” ื•ืฆืžืฆื•ื ื‘ื™ื˜ื•ื™ื™ื ืžื•ืชื ื™ื, ืžืคืชื—ื™ื ื™ื›ื•ืœื™ื ืœื™ืฆื•ืจ ื‘ืกื™ืกื™ ืงื•ื“ ื ื™ืชื ื™ื ืœืชื—ื–ื•ืงื”, ื™ืขื™ืœื™ื ื•ื ื™ืชื ื™ื ืœื”ืจื—ื‘ื” ื”ืชื•ืžื›ื™ื ื‘ื”ืฆืœื—ืช ืชื•ื›ื ื” ืืจื•ื›ืช ื˜ื•ื•ื—.

ืืชื’ืจื™ื ื•ืžืœื›ื•ื“ื•ืช

ื˜ื™ืคื•ืœ ื‘ืงื•ื“ ืžื“ื•ืจ ืงื•ื“ื ื‘ืžื•ืจื›ื‘ื•ืช ื’ื‘ื•ื”ื”

ื‘ืกื™ืกื™ ืงื•ื“ ืžื“ื•ืจ ืงื•ื“ื ืžื’ื™ืขื™ื ืœืจื•ื‘ ืขื ืžื•ืจื›ื‘ื•ืช ืฆื™ืงืœื•ืžื˜ื™ืช ื’ื‘ื•ื”ื”, ืžื” ืฉืžืฆื™ื‘ ืืชื’ืจื™ื ืžืฉืžืขื•ืชื™ื™ื ืขื‘ื•ืจ ืžืคืชื—ื™ื. ื™ื™ืชื›ืŸ ืฉืงื•ื“ื™ื ืืœื” ื”ืชืคืชื—ื• ืœืœื ืขื™ื‘ื•ื“ ืžื—ื“ืฉ ืžืชืื™ื, ืžื” ืฉื”ื•ื‘ื™ืœ ืœืจื›ื™ื‘ื™ื ืžื—ื•ื‘ืจื™ื ื”ื“ื•ืง ื•ืžื‘ื ื™ ื‘ืงืจื” ืžื•ืจื›ื‘ื™ื. ืฉื—ื–ื•ืจ ืงื•ื“ ื›ื–ื” ืขืœื•ืœ ืœื”ื›ื ื™ืก ืชื•ืคืขื•ืช ืœื•ื•ืื™ ืœื ืžื›ื•ื•ื ื•ืช, ื‘ืžื™ื•ื—ื“ ื›ืืฉืจ ื™ืฉ ื—ื•ืกืจ ืชื™ืขื•ื“ ื•ื‘ื“ื™ืงื•ืช ื ืื•ืชื•ืช. ืžืคืชื—ื™ื ื—ื™ื™ื‘ื™ื ืœื’ืฉืช ืœืงื•ื“ ืžื“ื•ืจ ืงื•ื“ื ื‘ื–ื”ื™ืจื•ืช ืขืœ ื™ื“ื™ ื”ื˜ืžืขืช ืืกื˜ืจื˜ื’ื™ื•ืช ืžื—ื•ื“ืฉื•ืช ืžืฆื˜ื‘ืจื•ืช ื•ื‘ื“ื™ืงื•ืช ื™ื—ื™ื“ื•ืช ื ืจื—ื‘ื•ืช ื›ื“ื™ ืœื”ื‘ื˜ื™ื— ืฉืฉื™ื ื•ื™ื™ื ืœื ื™ืฉื‘ืจื• ืืช ื”ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ื”ืงื™ื™ืžืช. ื›ืœื™ ื ื™ืชื•ื— ืงื•ื“ ืกื˜ื˜ื™ ืื•ื˜ื•ืžื˜ื™ ื™ื›ื•ืœื™ื ืœืขื–ื•ืจ ืขืœ ื™ื“ื™ ืื™ืชื•ืจ ื”ืื–ื•ืจื™ื ื”ืžื•ืจื›ื‘ื™ื ื•ื”ืžืกื•ื›ื ื™ื ื‘ื™ื•ืชืจ ื‘ืงื•ื“, ืœื”ื ื—ื•ืช ืžืคืชื—ื™ื ื”ื™ื›ืŸ ืœืžืงื“ ืืช ืžืืžืฆื™ื”ื.

ืื™ื–ื•ืŸ ื‘ื™ืŸ ื‘ื™ืฆื•ืขื™ื ืœืคืฉื˜ื•ืช

ื”ืคื—ืชืช ื”ืžื•ืจื›ื‘ื•ืช ื”ืฆื™ืงืœื•ืžื˜ื™ืช ื›ืจื•ื›ื” ืœืขืชื™ื ืงืจื•ื‘ื•ืช ื‘ืฉื™ื ื•ื™ ืงื•ื“ ืœืคื•ื ืงืฆื™ื•ืช ืงื˜ื ื•ืช ื™ื•ืชืจ ืื• ื‘ื™ื™ืฉื•ื ื“ืคื•ืกื™ ืขื™ืฆื•ื‘. ืขื ื–ืืช, ืฉื™ื ื•ื™ื™ื ืืœื” ืขืฉื•ื™ื™ื ืœืคืขืžื™ื ืœื”ืฉืคื™ืข ืขืœ ื”ื‘ื™ืฆื•ืขื™ื, ื‘ืžื™ื•ื—ื“ ืื ืงืจื™ืื•ืช ื ื•ืกืคื•ืช ืœืฉื™ื˜ื” ืžืฆื™ื’ื•ืช ืชืงื•ืจื”. ืขืœ ื”ืžืคืชื—ื™ื ืœืžืฆื•ื ืื™ื–ื•ืŸ ื‘ื™ืŸ ื›ืชื™ื‘ืช ืงื•ื“ ืคืฉื•ื˜ ื•ื ื™ืชืŸ ืœืชื—ื–ื•ืงื” ื•ืฉืžื™ืจื” ืขืœ ื‘ื™ืฆื•ืขื™ื. ื™ืฉ ืœืขืจื•ืš ืคืจื•ืคื™ืœ ื‘ื™ืฆื•ืขื™ื ื•ืžื™ื“ื•ื“ ื‘ื™ืฆื•ืขื™ื ืœืื—ืจ ื‘ื™ืฆื•ืข ืžื—ื“ืฉ ื›ื“ื™ ืœื”ื‘ื˜ื™ื— ืฉืžืืžืฆื™ ื”ืคืฉื˜ื•ืช ืื™ื ื ืคื•ื’ืขื™ื ื‘ื™ืขื™ืœื•ืช ื”ืžืขืจื›ืช. ื‘ื™ื™ืฉื•ืžื™ื ืงืจื™ื˜ื™ื™ื ืœื‘ื™ืฆื•ืขื™ื, ื™ื™ืชื›ืŸ ืฉื™ื”ื™ื” ืฆื•ืจืš ืœืฉืžื•ืจ ืขืœ ื›ืžื” ืžื‘ื ื™ื ืžื•ืจื›ื‘ื™ื ืื ื”ื ืžืกืคืงื™ื ื™ืชืจื•ื ื•ืช ื‘ื™ืฆื•ืขื™ื ืžืฉืžืขื•ืชื™ื™ื.

ื”ืกืชืžื›ื•ืช ื™ืชืจ ืขืœ ื›ืœื™ ืื•ื˜ื•ืžืฆื™ื”

ื‘ืขื•ื“ ืฉื›ืœื™ ื ื™ืชื•ื— ืงื•ื“ ืกื˜ื˜ื™ ื”ื ื‘ืขืœื™ ืขืจืš ืจื‘ ืœื–ื™ื”ื•ื™ ืžื•ืจื›ื‘ื•ืช ื’ื‘ื•ื”ื”, ื”ืกืชืžื›ื•ืช ื™ืชืจ ืขืœ ื”ื›ืœื™ื ื”ืœืœื• ืขืœื•ืœื” ืœื”ื™ื•ืช ื‘ืขื™ื™ืชื™ืช. ื™ื™ืชื›ืŸ ืฉื›ืœื™ื ืœื ืชืžื™ื“ ืžื‘ื™ื ื™ื ืืช ื”ื”ืงืฉืจ ื”ืจื—ื‘ ื™ื•ืชืจ ืฉืœ ื”ื™ื™ืฉื•ื, ืžื” ืฉื™ื•ื‘ื™ืœ ืœืชื•ืฆืื•ืช ื—ื™ื•ื‘ื™ื•ืช ืฉื’ื•ื™ื•ืช ืื• ื”ื—ืžืฆืช ื”ื–ื“ืžื ื•ื™ื•ืช ืœืื•ืคื˜ื™ืžื™ื–ืฆื™ื”. ื‘ื ื•ืกืฃ, ืžืคืชื—ื™ื ืขืฉื•ื™ื™ื ืœื”ืชืขืœื ืžืชื•ื‘ื ื•ืช ื—ืฉื•ื‘ื•ืช ืžืกืงื™ืจื•ืช ืงื•ื“ ื™ื“ื ื™ื•ืช, ื‘ื”ื ื—ื” ืฉื›ืœื™ื ืื•ื˜ื•ืžื˜ื™ื™ื ื™ืชืคืกื• ื›ืœ ื‘ืขื™ื”. ื›ื“ื™ ืœื”ื™ืžื ืข ืžืžืœื›ื•ื“ืช ื–ื•, ื”ืฆื•ื•ืชื™ื ืฆืจื™ื›ื™ื ืœืฉืœื‘ ื ื™ืชื•ื— ืื•ื˜ื•ืžื˜ื™ ืขื ื‘ื™ืงื•ืจื•ืช ืขืžื™ืชื™ื ื™ืกื•ื“ื™ื•ืช, ื•ืœื”ื‘ื˜ื™ื— ืฉื”ื”ื—ืœื˜ื•ืช ืฉื”ืชืงื‘ืœื• ืœื”ืคื—ืชืช ื”ืžื•ืจื›ื‘ื•ืช ืชื•ืืžื•ืช ืืช ื™ืขื“ื™ ื”ืคืจื•ื™ืงื˜ ื”ื›ื•ืœืœื™ื.

Refactoring ืœืœื ื‘ื“ื™ืงื” ืžืกืคืงืช

ืฉื™ื ื•ื™ ืงื•ื“ ื›ื“ื™ ืœื”ืคื—ื™ืช ืืช ื”ืžื•ืจื›ื‘ื•ืช ื”ื•ื ื—ื™ื•ื ื™ ืืš ืžืกื•ื›ืŸ ืœืœื ื›ื™ืกื•ื™ ื‘ื“ื™ืงื” ืžืงื™ืฃ. ืฉื™ื ื•ื™ื™ื ืฉื ื•ืขื“ื• ืœืคืฉื˜ ืืช ื”ืงื•ื“ ืขืœื•ืœื™ื ืœืฉื ื•ืช ื‘ื˜ืขื•ืช ืืช ื”ืชื ื”ื’ื•ืชื•, ื•ืœื”ื•ื‘ื™ืœ ืœื‘ืื’ื™ื ื•ืœื›ืฉืœื™ื ื‘ืžืขืจื›ืช. ืœืคื ื™ ื‘ื™ืฆื•ืข ืžืืžืฆื™ ืขื™ื‘ื•ื“ ืžืฉืžืขื•ืชื™ื™ื, ืขืœ ื”ืžืคืชื—ื™ื ืœื•ื•ื“ื ืฉืœื‘ืกื™ืก ื”ืงื•ื“ ื™ืฉ ืžื‘ื—ื ื™ ื™ื—ื™ื“ื•ืช ื•ืื™ื ื˜ื’ืจืฆื™ื” ื ืื•ืชื™ื. ื‘ื“ื™ืงื•ืช ืืœื• ืžืกืคืงื•ืช ืจืฉืช ื‘ื™ื˜ื—ื•ืŸ, ื”ืžืืฉืจืช ืฉื”ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ื ืฉืืจืช ืœืœื ืฉื™ื ื•ื™ ืœืื—ืจ ืฉื™ื ื•ื™ื™ื. ื ื™ืชืŸ ื’ื ืœืืžืฅ ืฉื™ื˜ื•ืช ืคื™ืชื•ื— ืžื•ื ืข-ืžื‘ื—ืŸ (TDD) ื›ื“ื™ ืœื”ื‘ื˜ื™ื— ืฉื›ืœ ืงื•ื“ ื—ื“ืฉ ืฉื™ื•ืฆื’ ื‘ืžื”ืœืš ื”-refactoring ืžืœื•ื•ื” ื‘ื‘ื“ื™ืงื•ืช ื—ื–ืงื•ืช.

ื”ืชืขืœืžื•ืช ืžืžื•ืจื›ื‘ื•ืช ื”ืœื•ื’ื™ืงื” ื”ืขืกืงื™ืช

ื™ื™ืฉื•ืžื™ื ืžืกื•ื™ืžื™ื ื›ื•ืœืœื™ื ืžื˜ื‘ืขื ื”ื™ื’ื™ื•ืŸ ืขืกืงื™ ืžื•ืจื›ื‘ ืฉืœื ื ื™ืชืŸ ืœืคืฉื˜ ื‘ืงืœื•ืช. ื ื™ืกื™ื•ืŸ ืœื›ืคื•ืช ืคื™ืฉื•ื˜ ืžื‘ืœื™ ืœื”ื‘ื™ืŸ ืืช ื”ืชื—ื•ื ืขืœื•ืœ ืœื”ื•ื‘ื™ืœ ืœืคื™ืฉื•ื˜ ื™ืชืจ, ืฉื‘ื• ืชื”ืœื™ื›ื™ื ืงืจื™ื˜ื™ื™ื ืžืชืคืจืงื™ื ื‘ืฆื•ืจื” ืœื ื”ื•ืœืžืช, ื•ื’ื•ืจืžื™ื ืœื‘ืœื‘ื•ืœ ื•ื˜ืขื•ื™ื•ืช. ืžืคืชื—ื™ื ื—ื™ื™ื‘ื™ื ืœื”ื‘ื“ื™ืœ ื‘ื™ืŸ ืžื•ืจื›ื‘ื•ืช ื˜ื›ื ื™ืช, ืฉืœืขืชื™ื ืงืจื•ื‘ื•ืช ื ื™ืชืŸ ืœืฆืžืฆื, ืœื‘ื™ืŸ ืžื•ืจื›ื‘ื•ืช ืขืกืงื™ืช ื—ื™ื•ื ื™ืช, ืฉืฆืจื™ืš ืœื ื”ืœ. ืฉื™ืชื•ืฃ ืคืขื•ืœื” ืขื ืžื—ื–ื™ืงื™ ืขื ื™ื™ืŸ ืขืกืงื™ื™ื ืžื‘ื˜ื™ื— ืฉืžืืžืฆื™ ืขื™ื‘ื•ื“ ื”ืงื•ื“ ืžื›ื‘ื“ื™ื ืืช ืฉืœืžื•ืชื ืฉืœ ืชื”ืœื™ื›ื™ ื”ืœื™ื‘ื” ื”ืขืกืงื™ื™ื.

ืชืงื ื™ ืžื•ืจื›ื‘ื•ืช ืœื ืขืงื‘ื™ื™ื ื‘ื™ืŸ ืฆื•ื•ืชื™ื

ื‘ืคืจื•ื™ืงื˜ื™ื ื’ื“ื•ืœื™ื ื”ื›ื•ืœืœื™ื ืฆื•ื•ืชื™ ืคื™ืชื•ื— ืžืจื•ื‘ื™ื, ืชืงื ื™ ืžื•ืจื›ื‘ื•ืช ืœื ืขืงื‘ื™ื™ื ื™ื›ื•ืœื™ื ืœื”ื•ื‘ื™ืœ ืœื‘ืกื™ืกื™ ืงื•ื“ ืžืคื•ืฆืœื™ื. ืฆื•ื•ืชื™ื ืžืกื•ื™ืžื™ื ืขืฉื•ื™ื™ื ืœืชืขื“ืฃ ื‘ื™ืฆื•ืขื™ื, ื‘ืขื•ื“ ืฉืื—ืจื™ื ืžืชืžืงื“ื™ื ื‘ืชื—ื–ื•ืงื”, ื•ื›ืชื•ืฆืื” ืžื›ืš ื ื•ื”ืœื™ ืงื™ื“ื•ื“ ืกื•ืชืจื™ื. ืงื‘ื™ืขืช ืงื•ื•ื™ื ืžื ื—ื™ื ื›ืœืœ-ืืจื’ื•ื ื™ื™ื ืขื‘ื•ืจ ืกืคื™ ืžื•ืจื›ื‘ื•ืช ืฆื™ืงืœื•ืžื˜ื™ื™ื ืžืงื•ื‘ืœื™ื ื”ื™ื ื—ื™ื•ื ื™ืช. ื‘ื™ืงื•ืจื•ืช ืกื“ื™ืจื•ืช ื‘ื™ืŸ ืฆื•ื•ืชื™ื ื•ืฉื™ื˜ื•ืช ืขื‘ื•ื“ื” ืžื•ืžืœืฆื•ืช ืžืฉื•ืชืคื•ืช ืขื•ื–ืจื•ืช ืœืฉืžื•ืจ ืขืœ ืขืงื‘ื™ื•ืช, ื•ืžื‘ื˜ื™ื—ื•ืช ืฉื›ืœ ื‘ืกื™ืก ื”ืงื•ื“ ืขื•ืžื“ ื‘ืกื˜ื ื“ืจื˜ื™ื ื”ืžื•ืกื›ืžื™ื. ืชื™ืขื•ื“ ื‘ืจื•ืจ ื•ื”ื“ืจื›ื” ื™ื›ื•ืœื™ื ืœื™ื™ืฉืจ ืขื•ื“ ื™ื•ืชืจ ืฆื•ื•ืชื™ื ืขืœ ืืกื˜ืจื˜ื’ื™ื•ืช ื ื™ื”ื•ืœ ืžื•ืจื›ื‘ื•ืช.

ืคื™ืจื•ืฉ ืฉื’ื•ื™ ืฉืœ ืžื“ื“ื™ ืžื•ืจื›ื‘ื•ืช

ืžื•ืจื›ื‘ื•ืช ืฆื™ืงืœื•ืžื˜ื™ืช ื”ื™ื ืžื“ื“ ื‘ืขืœ ืขืจืš, ืืš ืื™ืŸ ืœืคืจืฉ ืื•ืชื” ื‘ื ืคืจื“. ืฆื™ื•ืŸ ืžื•ืจื›ื‘ื•ืช ื ืžื•ืš ืœื ืื•ืžืจ ื‘ื”ื›ืจื— ืฉื”ืงื•ื“ ืžืขื•ืฆื‘ ื”ื™ื˜ื‘, ื›ืžื• ืฉืœื ืชืžื™ื“ ืฆื™ื•ืŸ ื’ื‘ื•ื” ืžืขื™ื“ ืขืœ ืื™ื›ื•ืช ื™ืจื•ื“ื”. ืžืคืชื—ื™ื ื—ื™ื™ื‘ื™ื ืœืฉืงื•ืœ ื’ื•ืจืžื™ื ืื—ืจื™ื ื›ืžื• ืงืจื™ืื”, ื‘ื™ืฆื•ืขื™ื ื•ื›ื™ืกื•ื™ ื‘ื“ื™ืงื” ื‘ืขืช ื”ืขืจื›ืช ืื™ื›ื•ืช ื”ืงื•ื“. ื“ื’ืฉ ื™ืชืจ ืขืœ ื”ืฉื’ืช ืฆื™ื•ื ื™ ืžื•ืจื›ื‘ื•ืช ื ืžื•ื›ื™ื ื™ื›ื•ืœ ืœื”ื•ื‘ื™ืœ ืœืฉื™ื ื•ื™ ืžื™ื•ืชืจ ืฉืžืฆื™ืข ืชื•ืขืœืช ืžืขืฉื™ืช ืžื•ืขื˜ื”. ืžื“ื“ื™ื ืฆืจื™ื›ื™ื ืœื”ื ื—ื•ืช ืืช ืงื‘ืœืช ื”ื”ื—ืœื˜ื•ืช, ืœื ืœื”ื›ืชื™ื‘ ืื•ืชื”.

ื”ืชืžื•ื“ื“ื•ืช ืขื ืืชื’ืจื™ื ื•ืžืœื›ื•ื“ื•ืช ืืœื• ื“ื•ืจืฉืช ื’ื™ืฉื” ืžืื•ื–ื ืช ื”ืžืฉืœื‘ืช ืืกื˜ืจื˜ื’ื™ื•ืช ื˜ื›ื ื™ื•ืช, ืชื”ืœื™ื›ื™ื ืฉื™ืชื•ืคื™ื™ื ื•ื”ื‘ื ื” ืขืžื•ืงื” ื”ืŸ ืฉืœ ื‘ื™ืฆื•ืขื™ ื”ื™ื™ืฉื•ื ื•ื”ืŸ ืฉืœ ื”ื“ืจื™ืฉื•ืช ื”ืขืกืงื™ื•ืช. ืขืœ ื™ื“ื™ ื–ื™ื”ื•ื™ ื•ื”ืคื—ืชื” ืฉืœ ืกื™ื›ื•ื ื™ื ืืœื”, ืฆื•ื•ืชื™ ืคื™ืชื•ื— ื™ื›ื•ืœื™ื ืœื ื”ืœ ืืช ื”ืžื•ืจื›ื‘ื•ืช ื”ืฆื™ืงืœื•ืžื˜ื™ืช ื‘ื™ืขื™ืœื•ืช, ื•ื›ืชื•ืฆืื” ืžื›ืš ืคืชืจื•ื ื•ืช ืชื•ื›ื ื” ื—ื–ืงื™ื, ื ื™ืชื ื™ื ืœืชื—ื–ื•ืงื” ื•ืื™ื›ื•ืชื™ื™ื.

ืžื” ืขืœื™ืš ืœืขืฉื•ืช ืœืื—ืจ ืžื›ืŸ ื›ืืฉืจ ืืชื” ืžื•ืฆื ืชื•ื›ื ื™ืช ื‘ืขืœืช ืžื•ืจื›ื‘ื•ืช ืฆื™ืงืœื•ืžื˜ื™ืช ื’ื‘ื•ื”ื”

ื”ืขืจื›ืช ื”ื”ืฉืคืขื” ืฉืœ ืžื•ืจื›ื‘ื•ืช ื’ื‘ื•ื”ื”

ื›ืืฉืจ ืชื•ื›ื ื™ืช ืžื–ื•ื”ื” ื›ื‘ืขืœืช ืžื•ืจื›ื‘ื•ืช ืฆื™ืงืœื•ืžื˜ื™ืช ื’ื‘ื•ื”ื”, ื”ืฆืขื“ ื”ืจืืฉื•ืŸ ื”ื•ื ืœื”ืขืจื™ืš ืืช ื”ืฉืคืขืชื” ืขืœ ื”ืคืจื•ื™ืงื˜. ืœื ื›ืœ ืงื•ื“ ืžื•ืจื›ื‘ ื“ื•ืจืฉ ืจื™ืคืงื˜ื•ืจ ืžื™ื™ื“ื™. ืžืคืชื—ื™ื ืฆืจื™ื›ื™ื ืœื”ืขืจื™ืš ื‘ืื™ื–ื• ืชื“ื™ืจื•ืช ื”ืงื•ื“ ืžืฉืชื ื”, ืืช ืงืจื™ื˜ื™ื•ืชื• ืœืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ื”ืœื™ื‘ื” ืฉืœ ื”ืืคืœื™ืงืฆื™ื”, ื•ื”ืื ื”ืžื•ืจื›ื‘ื•ืช ืฉืœื• ืžืฆื™ื’ื” ืกื™ื›ื•ื ื™ื ื‘ืžื”ืœืš ื”ืขื“ื›ื•ื ื™ื. ืงื•ื“ ื‘ืžื•ืจื›ื‘ื•ืช ื’ื‘ื•ื”ื” ืฉืœืขื™ืชื™ื ืจื—ื•ืงื•ืช ืžืฉืชื ื” ื•ื ื‘ื“ืง ื”ื™ื˜ื‘ ืขืฉื•ื™ ืœื”ื™ื—ืฉื‘ ื‘ืขื“ื™ืคื•ืช ื ืžื•ื›ื” ืœืขื™ื‘ื•ื“ ืžื—ื“ืฉ. ืžืฆื“ ืฉื ื™, ืงื•ื“ ื”ืžืชืขื“ื›ืŸ ืœืขืชื™ื ืงืจื•ื‘ื•ืช ืขื ืžื•ืจื›ื‘ื•ืช ื’ื‘ื•ื”ื” ืžื”ื•ื•ื” ืกื™ื›ื•ืŸ ื’ื“ื•ืœ ื™ื•ืชืจ ื•ื™ืฉ ืœื˜ืคืœ ื‘ื• ื‘ื”ืงื“ื. ื“ื•ื—ื•ืช ื ื™ืชื•ื— ืงื•ื“ ืกื˜ื˜ื™ ื™ื›ื•ืœื™ื ืœืกืคืง ืชื•ื‘ื ื•ืช ืขืœ ื™ื“ื™ ื”ื“ื’ืฉืช ื”ืชื—ื•ืžื™ื ื”ืžื•ืจื›ื‘ื™ื ื‘ื™ื•ืชืจ ื•ื”ืฆืขืช ื”ื™ื›ืŸ ืœืžืคืชื—ื™ื ืœื”ืชืžืงื“.

ืชืขื“ื•ืฃ ืžืืžืฆื™ Refactoring

ืœืื—ืจ ืฉืžื–ื”ื™ื ืื–ื•ืจื™ื ื‘ืขืœื™ ืžื•ืจื›ื‘ื•ืช ื’ื‘ื•ื”ื”, ืชืขื“ื•ืฃ ื—ื™ื•ื ื™. ืžืืžืฆื™ ื”ืฉื—ื–ื•ืจ ืฆืจื™ื›ื™ื ืœื”ืชื—ื™ืœ ืขื ืžื•ื“ื•ืœื™ื ืฉื™ืฉ ืœื”ื ื”ืฉืคืขื” ืžืฉืžืขื•ืชื™ืช ืขืœ ื™ื›ื•ืœืช ื”ืชื—ื–ื•ืงื” ื•ื”ื‘ื™ืฆื•ืขื™ื ืฉืœ ื”ืืคืœื™ืงืฆื™ื”. ื”ืชื—ืœ ื‘ืคื™ืจื•ืง ืคื•ื ืงืฆื™ื•ืช ื’ื“ื•ืœื•ืช ืœืฉื™ื˜ื•ืช ืงื˜ื ื•ืช ื•ืžืžื•ืงื“ื•ืช ื™ื•ืชืจ. ื”ื—ืœ ื“ืคื•ืกื™ ืขื™ืฆื•ื‘ ื‘ืžื™ื“ืช ื”ืฆื•ืจืš ื›ื“ื™ ืœื‘ื˜ืœ ื”ื™ื’ื™ื•ืŸ ื—ื•ื–ืจ ื•ืœืคืฉื˜ ืžื‘ื ื™ ื”ื—ืœื˜ื•ืช. ืžืคืชื—ื™ื ืฆืจื™ื›ื™ื ื’ื ืœืชืขื“ ื›ืœ ืฉื™ื ื•ื™, ืœื”ืกื‘ื™ืจ ืžื“ื•ืข ื”ื•ื ื‘ื•ืฆืข ื•ื›ื™ืฆื“ ื”ื•ื ืžืคื—ื™ืช ืืช ื”ืžื•ืจื›ื‘ื•ืช. ื™ืฉ ืœื‘ืฆืข ืžืฉื™ืžื•ืช ืจื”-ืคืงื˜ื•ืจ ืืœื” ื‘ื”ื“ืจื’ื”, ื›ื“ื™ ืœื”ื‘ื˜ื™ื— ืฉื”ืงื•ื“ ื™ื™ืฉืืจ ืคื•ื ืงืฆื™ื•ื ืœื™ ืœืื—ืจ ื›ืœ ืฉืœื‘. ืขืœ ื™ื“ื™ ื”ืชื™ื™ื—ืกื•ืช ืชื—ื™ืœื” ืœืชื—ื•ืžื™ื ื”ืงืจื™ื˜ื™ื™ื ื‘ื™ื•ืชืจ, ืฆื•ื•ืชื™ ืคื™ืชื•ื— ื™ื›ื•ืœื™ื ืœื”ืฉื™ื’ ืฉื™ืคื•ืจื™ื ืžื”ื•ืชื™ื™ื ืžื‘ืœื™ ืœืฉื‘ืฉ ืืช ืœื•ื—ื•ืช ื”ื–ืžื ื™ื ืฉืœ ื”ืคืจื•ื™ืงื˜.

ื—ื™ื–ื•ืง ื›ื™ืกื•ื™ ื”ื‘ื“ื™ืงื”

ืฉื—ื–ื•ืจ ืงื•ื“ ื‘ืžื•ืจื›ื‘ื•ืช ื’ื‘ื•ื”ื” ืœืœื ื‘ื“ื™ืงื•ืช ืžืชืื™ืžื•ืช ื”ื•ื ืžืกื•ื›ืŸ. ื›ื™ืกื•ื™ ื‘ื“ื™ืงื” ืžืงื™ืฃ ื—ื™ื™ื‘ ืœื”ื™ื•ืช ื‘ืžืงื•ื ืœืคื ื™ ืชื—ื™ืœืช ื”ืฉื™ื ื•ื™ื™ื. ื‘ื“ื™ืงื•ืช ื™ื—ื™ื“ื” ืฆืจื™ื›ื•ืช ืœื›ืกื•ืช ืืช ื›ืœ ื ืชื™ื‘ื™ ื”ื‘ื™ืฆื•ืข ื”ืืคืฉืจื™ื™ื, ื•ืœื”ื‘ื˜ื™ื— ืฉ-refactoring ืœื ื™ืฆื™ื’ ื‘ืื’ื™ื ื—ื“ืฉื™ื. ื‘ืžืงืจื™ื ื‘ื”ื ื—ืกืจ ื›ื™ืกื•ื™ ื‘ื“ื™ืงื•ืช, ืขืœ ื”ืžืคืชื—ื™ื ืœื›ืชื•ื‘ ื‘ื“ื™ืงื•ืช ืœืคื ื™ ื‘ื™ืฆื•ืข ืฉื™ื ื•ื™ื™ื. ืื™ืžื•ืฅ ื ื•ื”ืœื™ ืคื™ืชื•ื— ืžื•ื ื—ื”-ืžื‘ื—ืŸ (TDD) ืžื‘ื˜ื™ื— ืฉื›ืœ ืงื•ื“ ื—ื“ืฉ ืฉื™ื•ืฆื’ ื‘ืžื”ืœืš ื”-refactoring ื™ื”ื™ื” ืืžื™ืŸ ื•ืžืื•ืžืช ื‘ื™ืกื•ื“ื™ื•ืช. ื›ืœื™ ื‘ื“ื™ืงื” ืื•ื˜ื•ืžื˜ื™ื™ื ื™ื›ื•ืœื™ื ื’ื ืœืกื™ื™ืข ื‘ื–ื™ื”ื•ื™ ืจื’ืจืกื™ื•ืช, ื•ืœืกืคืง ื‘ื™ื˜ื—ื•ืŸ ืฉืžืืžืฆื™ ื”ืขื™ื‘ื•ื“ ืžื—ื“ืฉ ืžื•ืฆืœื—ื™ื ื•ื‘ื˜ื•ื—ื™ื.

ืขืกื•ืง ื‘ื‘ื™ืงื•ืจื•ืช ืขืœ ืงื•ื“ ืขืžื™ืชื™ื

ืกืงื™ืจืช ืงื•ื“ ืขืžื™ืชื™ื ื—ื™ื•ื ื™ืช ื›ืืฉืจ ืขื•ืกืงื™ื ื‘ืชื•ื›ื ื™ื•ืช ื‘ืขืœื•ืช ืžื•ืจื›ื‘ื•ืช ืฆื™ืงืœื•ืžื˜ื™ืช ื’ื‘ื•ื”ื”. ืกืงื™ืจื•ืช ืงื•ื“ ืžืกืคืงื•ืช ื”ื–ื“ืžื ื•ืช ืœื—ื‘ืจื™ ื”ืฆื•ื•ืช ืœื—ืœื•ืง ืชื•ื‘ื ื•ืช, ืœื“ื•ืŸ ื‘ืคืชืจื•ื ื•ืช ื—ืœื•ืคื™ื™ื ื•ืœืชืคื•ืก ื‘ืขื™ื•ืช ืคื•ื˜ื ืฆื™ืืœื™ื•ืช ืฉื”ื›ืœื™ื ื”ืื•ื˜ื•ืžื˜ื™ื™ื ืขืœื•ืœื™ื ืœื”ืชืขืœื ืžื”ื. ืกืงื™ืจื•ืช ืฉื™ืชื•ืคื™ื•ืช ื’ื ืขื•ื–ืจื•ืช ืœื”ื‘ื˜ื™ื— ืฉ-refactoring ืžืชื™ื™ืฉืจ ืขื ื™ืขื“ื™ ื”ืคืจื•ื™ืงื˜ ื•ืชืงื ื™ ื”ืงื™ื“ื•ื“. ืกื•ืงืจื™ื ืฆืจื™ื›ื™ื ืœื”ืชืžืงื“ ื‘ืงืจื™ืื•ืช, ืชื—ื–ื•ืงื” ื•ืขืงื‘ื™ื•ืช ืœื•ื’ื™ืช ื‘ืขืช ื”ืขืจื›ืช ืฉื™ื ื•ื™ื™ื ืžื•ืฆืขื™ื. ืขืจื™ื›ืช ื‘ื™ืงื•ืจื•ืช ืงื•ื“ ื‘ืื•ืคืŸ ืงื‘ื•ืข ืžื˜ืคื—ืช ืชืจื‘ื•ืช ืฉืœ ืื™ื›ื•ืช ื•ืฉื™ืคื•ืจ ืžืชืžื™ื“, ืžื” ืฉืžื•ื‘ื™ืœ ืœืชื•ื›ื ื” ื—ื–ืงื” ื™ื•ืชืจ.

ื”ื—ืœ Refactoring ืื™ื ืงืจืžื ื˜ืœื™

ื ื™ืกื™ื•ืŸ ืœื‘ืฆืข ืžื—ื“ืฉ ืชื•ื›ื ื™ืช ืฉืœืžื” ื‘ืขืœืช ืžื•ืจื›ื‘ื•ืช ื’ื‘ื•ื”ื” ื‘ื‘ืช ืื—ืช ื™ื›ื•ืœ ืœื”ื™ื•ืช ืžื›ืจื™ืข ื•ืžืกื•ื›ืŸ. ื‘ืžืงื•ื ื–ืืช, ืžืคืชื—ื™ื ืฆืจื™ื›ื™ื ืœืืžืฅ ื’ื™ืฉืช ืขื™ื‘ื•ื“ ืžืฆื˜ื‘ืจ. ื–ื” ื›ืจื•ืš ื‘ืคื™ืจื•ืง ืชื”ืœื™ืš ื”-refactoring ืœืžืฉื™ืžื•ืช ื”ื ื™ืชื ื•ืช ืœื ื™ื”ื•ืœ, ืชื•ืš ื”ืชื™ื™ื—ืกื•ืช ืœืงื˜ืข ืงื•ื“ ืื—ื“ ื‘ื›ืœ ืคืขื. ื›ืœ ืงื˜ืข ืžืฉื•ื—ื–ืจ ืฆืจื™ืš ืœื”ื™ื‘ื“ืง ื‘ื™ืกื•ื“ื™ื•ืช ืœืคื ื™ ืฉืžืžืฉื™ื›ื™ื ืœืกืขื™ืฃ ื”ื‘ื. Refactoring ืžืฆื˜ื‘ืจ ืžืžื–ืขืจ ืืช ื”ืกื™ื›ื•ืŸ ืœื”ื—ื“ืจืช ืฉื’ื™ืื•ืช ื•ืžืืคืฉืจ ืฉื™ืคื•ืจื™ื ื”ื“ืจื’ืชื™ื™ื ืฉืื™ื ื ืžืฉื‘ืฉื™ื ืืช ืœื•ื—ื•ืช ื”ื–ืžื ื™ื ืฉืœ ื”ืคื™ืชื•ื—. ืœืื•ืจืš ื–ืžืŸ, ื’ื™ืฉื” ื–ื• ืžืคื—ื™ืชื” ืžืฉืžืขื•ืชื™ืช ืืช ื”ืžื•ืจื›ื‘ื•ืช ื”ื›ื•ืœืœืช ืชื•ืš ืฉืžื™ืจื” ืขืœ ื™ืฆื™ื‘ื•ืช ื”ืชื•ื›ื ื”.

ืžืขืงื‘ ื•ืฉืžื™ืจื” ืขืœ ืจืžื•ืช ืžื•ืจื›ื‘ื•ืช

ื”ืคื—ืชืช ื”ืžื•ืจื›ื‘ื•ืช ืื™ื ื” ืžืฉื™ืžื” ื—ื“ ืคืขืžื™ืช; ื–ื” ื“ื•ืจืฉ ื ื™ื˜ื•ืจ ื•ืชื—ื–ื•ืงื” ืžืชืžืฉื›ื™ื. ืœืื—ืจ ืขื™ื‘ื•ื“ ืžื—ื“ืฉ, ืฆื•ื•ืชื™ื ืฆืจื™ื›ื™ื ืœืฉืœื‘ ื›ืœื™ ื ื™ืชื•ื— ืงื•ื“ ืกื˜ื˜ื™ ื‘ืชื”ืœื™ื›ื™ ื”ืขื‘ื•ื“ื” ืฉืœื”ื ื‘ืคื™ืชื•ื— ื›ื“ื™ ืœืขืงื•ื‘ ืื—ืจ ืจืžื•ืช ื”ืžื•ืจื›ื‘ื•ืช ื‘ืื•ืคืŸ ืงื‘ื•ืข. ื›ืœื™ื ืืœื” ื™ื›ื•ืœื™ื ืœืกืคืง ืžืฉื•ื‘ ื‘ื–ืžืŸ ืืžืช ืขืœ ื”ื’ืฉืช ืงื•ื“ ื—ื“ืฉ, ื•ืœืžื ื•ืข ืžื”ืžื•ืจื›ื‘ื•ืช ืœื–ื—ื•ืœ ื—ื–ืจื” ืืœ ื‘ืกื™ืก ื”ืงื•ื“. ืงื‘ื™ืขืช ืชืงื ื™ ืงื™ื“ื•ื“ ืฉืงื•ื‘ืขื™ื ืกืคื™ ืžื•ืจื›ื‘ื•ืช ืžืงื•ื‘ืœื™ื ืžื‘ื˜ื™ื—ื” ืขืงื‘ื™ื•ืช ืœืื•ืจืš ื”ืคืจื•ื™ืงื˜. ื‘ื ื•ืกืฃ, ื™ืฉ ืœืขืจื•ืš ืกืงื™ืจื•ืช ืงื•ื“ ืชืงื•ืคืชื™ื•ืช ื›ื“ื™ ืœื”ืขืจื™ืš ืืช ืจืžื•ืช ื”ืžื•ืจื›ื‘ื•ืช ื•ืœื˜ืคืœ ื‘ื‘ืขื™ื•ืช ืคื•ื˜ื ืฆื™ืืœื™ื•ืช ืœืคื ื™ ืฉื”ืŸ ื”ื•ืคื›ื•ืช ืœื‘ืขื™ื•ืช ืžืฉืžืขื•ืชื™ื•ืช.

ืืกื˜ืจื˜ื’ื™ื•ืช ื ื™ื”ื•ืœ ืžื•ืจื›ื‘ื•ืช ืžืกืžื›ื™ื

ื ื™ื”ื•ืœ ืžื•ืจื›ื‘ื•ืช ื™ืขื™ืœ ื“ื•ืจืฉ ืชื™ืขื•ื“ ื‘ืจื•ืจ. ืฆื•ื•ืชื™ื ืฆืจื™ื›ื™ื ืœืชืขื“ ืกืคื™ ืžื•ืจื›ื‘ื•ืช, ื”ื ื—ื™ื•ืช ืœืฉื™ื ื•ื™ ืžื—ื“ืฉ ื•ืฉื™ื˜ื•ืช ืขื‘ื•ื“ื” ืžื•ืžืœืฆื•ืช ืœืฉืžื™ืจื” ืขืœ ืคืฉื˜ื•ืช ื‘ืงื•ื“. ืชื™ืขื•ื“ ื–ื” ืžืฉืžืฉ ืืกืžื›ืชื ืขื‘ื•ืจ ื—ื‘ืจื™ ื”ืฆื•ื•ืช ื”ื ื•ื›ื—ื™ื™ื ื•ื”ืขืชื™ื“ื™ื™ื, ื•ืžื‘ื˜ื™ื— ืฉื›ื•ืœื ืขื•ืงื‘ื™ื ืื—ืจ ืชื”ืœื™ื›ื™ื ืขืงื‘ื™ื™ื. ืชื™ืขื•ื“ ืžืืžืฆื™ ืจื™ืคืืงื˜ื•ืจื™ื ื’ ืžื•ืฆืœื—ื™ื ื™ื›ื•ืœ ื’ื ืœืกืคืง ืชื™ืื•ืจื™ ืžืงืจื” ื—ืฉื•ื‘ื™ื ืœื˜ื™ืคื•ืœ ื‘ื‘ืขื™ื•ืช ื“ื•ืžื•ืช ื‘ื—ืœืงื™ื ืื—ืจื™ื ืฉืœ ื”ืคืจื•ื™ืงื˜. ืชื™ืขื•ื“ ืžืงื™ืฃ ืžื˜ืคื— ืชืจื‘ื•ืช ืฉืœ ืฉื™ืชื•ืฃ ื™ื“ืข ื•ืขื•ื–ืจ ืœืฉืžื•ืจ ืขืœ ืื™ื›ื•ืช ืงื•ื“ ืœื˜ื•ื•ื— ืืจื•ืš.

ืขืœ ื™ื“ื™ ื‘ื™ืฆื•ืข ืฉืœื‘ื™ื ืืœื”, ืฆื•ื•ืชื™ ืคื™ืชื•ื— ื™ื›ื•ืœื™ื ืœื ื”ืœ ื‘ื™ืขื™ืœื•ืช ืชื•ื›ื ื™ื•ืช ื‘ืžื•ืจื›ื‘ื•ืช ืฆื™ืงืœื•ืžื˜ื™ืช ื’ื‘ื•ื”ื”, ืœืฉืคืจ ืืช ื™ื›ื•ืœืช ื”ืชื—ื–ื•ืงื”, ืœื”ืคื—ื™ืช ื—ื•ื‘ื•ืช ื˜ื›ื ื™ื™ื ื•ืœื”ื‘ื˜ื™ื— ืืกืคืงืช ืคืชืจื•ื ื•ืช ืชื•ื›ื ื” ื‘ืื™ื›ื•ืช ื’ื‘ื•ื”ื”. ื ื™ื˜ื•ืจ ืžืชืžืฉืš, ืฉื™ื ื•ื™ ืืกื˜ืจื˜ื’ื™ ื•ืžืืžืฆื™ื ืžืฉื•ืชืคื™ื ื”ื ื”ืžืคืชื— ืœืฉืžื™ืจื” ืขืœ ื‘ืกื™ืกื™ ืงื•ื“ ื™ืขื™ืœื™ื ื‘ืจื™ ืงื™ื™ืžื.

SMART TS XL: ืคืชืจื•ืŸ ืžืงื™ืฃ ืœื ื™ื”ื•ืœ ืžื•ืจื›ื‘ื•ืช ืฆื™ืงืœื•ืžื˜ื™ืช

ืื™ืš SMART TS XL ืžืคืฉื˜ ืืช ื ื™ื”ื•ืœ ื”ืžื•ืจื›ื‘ื•ืช

SMART TS XL ื ื•ืขื“ ืœื™ื™ืขืœ ืืช ื ื™ื”ื•ืœ ื”ืžื•ืจื›ื‘ื•ืช ื”ืฆื™ืงืœื•ืžื˜ื™ืช ืขืœ ื™ื“ื™ ืžืชืŸ ื ื™ืชื•ื— ืงื•ื“ ืขืžื•ืง ื•ืชื•ื‘ื ื•ืช ื ื™ืชื ื•ืช ืœืคืขื•ืœื”. ื‘ื ื™ื’ื•ื“ ืœื›ืœื™ ื ื™ืชื•ื— ืงื•ื“ ืกื˜ื˜ื™ ืงื•ื ื‘ื ืฆื™ื•ื ืœื™ื™ื, SMART TS XL ืžืกืคืง ืžื“ื“ื™ ืžื•ืจื›ื‘ื•ืช ืžืคื•ืจื˜ื™ื ืขื‘ื•ืจ ื›ืœ ืคื•ื ืงืฆื™ื”, ืชื•ืš ื”ื“ื’ืฉืช ืื–ื•ืจื™ื ืฉื‘ื”ื ื”ืžื•ืจื›ื‘ื•ืช ื—ื•ืจื’ืช ืžื”ืกืฃ ื”ืžืงื•ื‘ืœ. ืœื•ื— ื”ืžื—ื•ื•ื ื™ื ื”ืื™ื ื˜ื•ืื™ื˜ื™ื‘ื™ ืฉืœื• ืžืืคืฉืจ ืœืžืคืชื—ื™ื ืœื“ืžื™ื™ืŸ ืืช ื”ืชืคืœื’ื•ืช ื”ืžื•ืจื›ื‘ื•ืช ืขืœ ืคื ื™ ื‘ืกื™ืก ื”ืงื•ื“, ื•ืžืืคืฉืจ ืœื”ื ืœืชืขื“ืฃ ืžืืžืฆื™ ืขื™ื‘ื•ื“ ืžื—ื“ืฉ ื‘ื”ืชื‘ืกืก ืขืœ ืชื•ื‘ื ื•ืช ืžื•ื ืขื•ืช ื ืชื•ื ื™ื. SMART TS XLื™ื›ื•ืœื•ืช ื”ื ื™ืชื•ื— ื”ืจืฆื™ืฃ ืฉืœ ื”ืžื•ืจื›ื‘ื•ืช ืžื‘ื˜ื™ื—ื•ืช ืžืขืงื‘ ืื—ืจ ื”ืžื•ืจื›ื‘ื•ืช ืขื ื›ืœ ืฉื™ื ื•ื™ ืงื•ื“, ืžื” ืฉื”ื•ืคืš ืื•ืชื• ืœื›ืœื™ ืื™ื“ื™ืืœื™ ืœืฉืžื™ืจื” ืขืœ ืจืžื•ืช ืžื•ืจื›ื‘ื•ืช ื ืžื•ื›ื•ืช ื‘ืคืจื•ื™ืงื˜ื™ื ืžืชืคืชื—ื™ื.

ื”ื›ืœื™ ื’ื ืžืฉืชืœื‘ ื‘ืฆื•ืจื” ื—ืœืงื” ื‘ื–ืจื™ืžื•ืช ืขื‘ื•ื“ื” ืงื™ื™ืžื•ืช ืฉืœ ืคื™ืชื•ื—, ื•ืžืกืคืง ืžืฉื•ื‘ ื‘ื–ืžืŸ ืืžืช ื‘ืžื”ืœืš ืชื”ืœื™ืš ื”ืงื™ื“ื•ื“. ืขืœ ื™ื“ื™ ืกื™ืžื•ืŸ ืžื‘ื ื™ ืงื•ื“ ืžื•ืจื›ื‘ื™ื ื›ืคื™ ืฉื”ื ื ื›ืชื‘ื™ื, SMART TS XL ืžื•ื ืข ืžื‘ืขื™ื•ืช ืžื•ืจื›ื‘ื•ืช ืœื”ืฆื˜ื‘ืจ. ื’ื™ืฉื” ืคืจื•ืืงื˜ื™ื‘ื™ืช ื–ื• ืžืืคืฉืจืช ืœืžืคืชื—ื™ื ืœื˜ืคืœ ื‘ืžื•ืจื›ื‘ื•ืช ื‘ื–ืžืŸ ืืžืช, ืœื”ืคื—ื™ืช ื—ื•ื‘ื•ืช ื˜ื›ื ื™ื™ื ื•ืœืฉืคืจ ืืช ืชื—ื–ื•ืงื” ืฉืœ ืงื•ื“ ืœื˜ื•ื•ื— ืืจื•ืš. ื‘ึผึฐื ื•ึนืกึทืฃ, SMART TS XL ืชื•ืžืš ื‘ื“ื™ื•ื•ื— ืื•ื˜ื•ืžื˜ื™, ืžืชืŸ ืขื“ื›ื•ื ื™ื ืฉื•ื˜ืคื™ื ืขืœ ืžื’ืžื•ืช ืžื•ืจื›ื‘ื•ืช, ืžื” ืฉืขื•ื–ืจ ืœืฆื•ื•ืชื™ื ืœืขืงื•ื‘ ืื—ืจ ื”ื”ืชืงื“ืžื•ืช ื•ืœื”ืชืื™ื ืืกื˜ืจื˜ื’ื™ื•ืช ื‘ื”ืชืื.

ืชื›ื•ื ื•ืช ืขื™ืงืจื™ื•ืช ืฉืœ SMART TS XL ืœื ื™ื”ื•ืœ ืžื•ืจื›ื‘ื•ืช ืฆื™ืงืœื•ืžื˜ื™ืช

SMART TS XL ืžืฆื™ืข ืžื’ื•ื•ืŸ ืชื›ื•ื ื•ืช ืฉืชื•ื›ื ื ื• ื‘ืžื™ื•ื—ื“ ื›ื“ื™ ืœืขื–ื•ืจ ืœืฆื•ื•ืชื™ื ืœื ื”ืœ ืืช ื”ืžื•ืจื›ื‘ื•ืช ื”ืฆื™ืงืœื•ืžื˜ื™ืช ื‘ื™ืขื™ืœื•ืช. ืชื›ื•ื ื” ื‘ื•ืœื˜ืช ื”ื™ื ื ื™ืชื•ื— ื”ืชืœื•ืช ื”ืขืžื•ืง ืฉืœื•, ืฉืžื–ื”ื” ืชืœื•ืช ื”ื“ื“ื™ืช ื‘ื™ืŸ ืจื›ื™ื‘ื™ื ื”ืชื•ืจืžื™ื ืœื”ื’ื‘ืจืช ื”ืžื•ืจื›ื‘ื•ืช. ืขืœ ื™ื“ื™ ื–ื™ื”ื•ื™ ืงืฉืจื™ื ืืœื”, ืžืคืชื—ื™ื ื™ื›ื•ืœื™ื ืœืฉื ื•ืช ืงื•ื“ ื›ื“ื™ ืœื”ืคื—ื™ืช ืฆื™ืžื•ื“ ื•ืœืคืฉื˜ ืืช ื–ืจื™ืžืช ื”ื‘ืงืจื”. SMART TS XL ืžืกืคืงืช ื’ื ื”ืžืœืฆื•ืช ืฉื™ื˜ื•ืช ืขื‘ื•ื“ื” ืžื•ืžืœืฆื•ืช ื”ืžื•ืชืืžื•ืช ืœื‘ืกื™ืก ื”ืงื•ื“ ื”ืกืคืฆื™ืคื™, ื•ืžื‘ื˜ื™ื—ื” ืฉืžืืžืฆื™ ืขื™ื‘ื•ื“ ืžื—ื“ืฉ ืขื•ืœื™ื ื‘ืงื ื” ืื—ื“ ืขื ืชืงื ื™ ื”ืชืขืฉื™ื™ื”.

ื™ืชืจ ืขืœ ื›ืš, SMART TS XL ืชื•ืžืš ื‘ื ื™ืชื•ื— ืžื•ืจื›ื‘ื•ืช ืžืฆื˜ื‘ืจ, ืชื•ืš ื”ืชืžืงื“ื•ืช ื‘ืฉื™ื ื•ื™ื™ ืงื•ื“ ื•ืœื ื‘ื‘ืกื™ืก ื”ืงื•ื“ ื›ื•ืœื•. ื’ื™ืฉื” ืžืžื•ืงื“ืช ื–ื• ืžืืคืฉืจืช ืœืฆื•ื•ืชื™ื ืœื ื”ืœ ืžื•ืจื›ื‘ื•ืช ืžื‘ืœื™ ืœื”ืื˜ ืืช ืžื—ื–ื•ืจื™ ื”ืคื™ืชื•ื—. ื™ื›ื•ืœื•ืช ื”ื“ื™ื•ื•ื— ื”ืžืชืงื“ืžื•ืช ืฉืœื• ืžื™ื™ืฆืจื•ืช ืžืคื•ืช ืžื•ืจื›ื‘ื•ืช ืžืงื™ืคื•ืช, ื”ืžืืคืฉืจื•ืช ืœืฆื•ื•ืชื™ื ืœื“ืžื™ื™ืŸ ื›ื™ืฆื“ ื”ืžื•ืจื›ื‘ื•ืช ืžื•ืคืฆืช ื•ืœื–ื”ื•ืช ืื–ื•ืจื™ื ื‘ืกื™ื›ื•ืŸ ื’ื‘ื•ื”. ื ื™ืชืŸ ืœื”ืชืื™ื ืืช ื”ื“ื•ื—ื•ืช ื”ืœืœื• ื‘ื”ืชื‘ืกืก ืขืœ ื”ืขื“ืคื•ืช ื”ืฆื•ื•ืช, ืžื” ืฉืžืกืคืง ื’ืžื™ืฉื•ืช ื‘ื™ื™ืฉื•ื ืืกื˜ืจื˜ื’ื™ื•ืช ื ื™ื”ื•ืœ ืžื•ืจื›ื‘ื•ืช.

ืœืกื™ื›ื•ื, SMART TS XL ืžืฆื™ืข ื—ื‘ื™ืœื” ื—ื–ืงื” ืฉืœ ืชื›ื•ื ื•ืช ืฉื”ื•ืคื›ื•ืช ืื•ืชื• ืœื›ืœื™ ื—ื™ื•ื ื™ ืœื ื™ื”ื•ืœ ืžื•ืจื›ื‘ื•ืช ืฆื™ืงืœื•ืžื˜ื™ืช. ื”ื ื™ืชื•ื— ื”ืขืžื•ืง, ื”ืžืฉื•ื‘ ื‘ื–ืžืŸ ืืžืช ื•ื™ื›ื•ืœื•ืช ื”ื“ื™ื•ื•ื— ื”ืื•ื˜ื•ืžื˜ื™ื•ืช ืฉืœื• ืžื‘ื˜ื™ื—ื™ื ืฉืฆื•ื•ืชื™ ื”ืคื™ืชื•ื— ื™ื›ื•ืœื™ื ืœืฉืžื•ืจ ืขืœ ื‘ืกื™ืกื™ ืงื•ื“ ื ืงื™ื™ื, ื™ืขื™ืœื™ื ื•ื ื™ืชื ื™ื ืœื”ืจื—ื‘ื”. ืขืœ ื™ื“ื™ ืฉื™ืœื•ื‘ SMART TS XL ื‘ืชื•ืš ื–ืจื™ืžื•ืช ื”ืขื‘ื•ื“ื” ืฉืœื”ื, ืฆื•ื•ืชื™ื ื™ื›ื•ืœื™ื ืœื”ืคื—ื™ืช ื—ื•ื‘ื•ืช ื˜ื›ื ื™ื™ื, ืœืฉืคืจ ืืช ื™ื›ื•ืœืช ื”ืชื—ื–ื•ืงื” ื•ืœื”ื‘ื˜ื™ื— ืืช ื”ื”ืฆืœื—ื” ืืจื•ื›ืช ื”ื˜ื•ื•ื— ืฉืœ ืคืจื•ื™ืงื˜ื™ ื”ืชื•ื›ื ื” ืฉืœื”ื.

ืกื™ื›ื•ื

ื ื™ื”ื•ืœ ื”ืžื•ืจื›ื‘ื•ืช ื”ืฆื™ืงืœื•ืžื˜ื™ืช ื”ื•ื ื”ื™ื‘ื˜ ื‘ืกื™ืกื™ ืฉืœ ืคื™ืชื•ื— ืชื•ื›ื ื” ืื™ื›ื•ืชื™ืช ื•ื ื™ืชื ืช ืœืชื—ื–ื•ืงื”. ืžื•ืจื›ื‘ื•ืช ื’ื‘ื•ื”ื” ืขืœื•ืœื” ืœื”ืคืจื™ืข ืœื”ืจื—ื‘ื”, ืœื”ื’ื‘ื™ืจ ืืช ื”ืกื™ื›ื•ืŸ ืœืคื’ืžื™ื ื•ืœืกื‘ืš ืืช ืžืืžืฆื™ ื”ื‘ื“ื™ืงื”. ื˜ื™ืคื•ืœ ื‘ื ื•ืฉืื™ื ืืœื” ื“ื•ืจืฉ ื’ื™ืฉื” ืžืชื—ืฉื‘ืช ื”ืžืฉืœื‘ืช ืฉื™ื˜ื•ืช ืงื™ื“ื•ื“ ืžื™ื˜ื‘ื™ื•ืช, ืขื™ื‘ื•ื“ ืืกื˜ืจื˜ื’ื™ ืžื—ื“ืฉ ื•ื ื™ื˜ื•ืจ ืžืชืžืฉืš. ืฆื•ื•ืชื™ ืคื™ืชื•ื— ื—ื™ื™ื‘ื™ื ืœืืžืฅ ืžืชื•ื“ื•ืœื•ื’ื™ื•ืช ื”ืžื“ื’ื™ืฉื•ืช ืคืฉื˜ื•ืช ืžื‘ืœื™ ืœืคื’ื•ืข ื‘ื‘ื™ืฆื•ืขื™ื. ื˜ื›ื ื™ืงื•ืช ื›ื’ื•ืŸ ืคื™ืจื•ืง ืคื•ื ืงืฆื™ื•ืช ื’ื“ื•ืœื•ืช, ื™ื™ืฉื•ื ื“ืคื•ืกื™ ืขื™ืฆื•ื‘ ื•ืคื™ืฉื•ื˜ ืžื‘ื ื™ ื‘ืงืจื” ืชื•ืจืžื•ืช ื‘ืื•ืคืŸ ืžืฉืžืขื•ืชื™ ืœื”ืคื—ืชืช ื”ืžื•ืจื›ื‘ื•ืช. ืขื ื–ืืช, ื”ืฉื’ืช ื ื™ื”ื•ืœ ืžื•ืจื›ื‘ื•ืช ื‘ืจ-ืงื™ื™ืžื ื“ื•ืจืฉืช ื™ื•ืชืจ ืžืคืจืงื˜ื™ืงื•ืช ื™ื“ื ื™ื•ืช; ื–ื” ื“ื•ืจืฉ ื›ืœื™ื ืืžื™ื ื™ื ื”ืžืฉืชืœื‘ื™ื ื‘ืฆื•ืจื” ื—ืœืงื” ื‘ื–ืจื™ืžืช ื”ืขื‘ื•ื“ื” ืฉืœ ื”ืคื™ืชื•ื—, ื•ืžืกืคืงื™ื ืชื•ื‘ื ื•ืช ื‘ื–ืžืŸ ืืžืช ื•ื”ืžืœืฆื•ืช ื ื™ืชื ื•ืช ืœืคืขื•ืœื”. ืœืœื ื›ืœื™ื ื›ืืœื”, ืžื•ืจื›ื‘ื•ืช ื™ื›ื•ืœื” ืœื”ืฆื˜ื‘ืจ, ื•ืœื”ื•ื‘ื™ืœ ืœื—ื•ื‘ื•ืช ื˜ื›ื ื™ื™ื ื”ืžืื™ื™ื ืขืœ ืœื•ื—ื•ืช ื”ื–ืžื ื™ื ืฉืœ ื”ืคืจื•ื™ืงื˜ ื•ืืžื™ื ื•ืช ื”ืชื•ื›ื ื”.

SMART TS XL ืžืชื’ืœื” ื›ืคืชืจื•ืŸ ื”ื›ืจื—ื™ ืขื‘ื•ืจ ืฆื•ื•ืชื™ื ื”ืžื‘ืงืฉื™ื ืœื ื”ืœ ืืช ื”ืžื•ืจื›ื‘ื•ืช ื”ืฆื™ืงืœื•ืžื˜ื™ืช ื‘ื™ืขื™ืœื•ืช. ื ื™ืชื•ื— ื”ืงื•ื“ ื”ืขืžื•ืง, ื”ืžืฉื•ื‘ ื‘ื–ืžืŸ ืืžืช ื•ื™ื›ื•ืœื•ืช ื”ื“ื™ื•ื•ื— ื”ืื•ื˜ื•ืžื˜ื™ื•ืช ืžืขืฆื™ืžื•ืช ืžืคืชื—ื™ื ืœื–ื”ื•ืช ื•ืœื˜ืคืœ ื‘ื‘ืขื™ื•ืช ืžื•ืจื›ื‘ื•ืช ื‘ืื•ืคืŸ ื™ื–ื•ื. ื”ื™ื›ื•ืœืช ืฉืœ ื”ื›ืœื™ ืœื™ืฆื•ืจ ืžืคื•ืช ืžื•ืจื›ื‘ื•ืช ืžืคื•ืจื˜ื•ืช ื•ืœื”ื“ื’ื™ืฉ ืชืœื•ืช ืงืจื™ื˜ื™ืช ืžืืคืฉืจืช ืงื‘ืœืช ื”ื—ืœื˜ื•ืช ืžื•ืฉื›ืœืช ื‘ืžื”ืœืš ืžืืžืฆื™ ื”ืฉื™ื ื•ื™ ืžื—ื“ืฉ. ื™ืชืจื” ืžื›ืš, ืขืœ ื™ื“ื™ ื”ืชืžืงื“ื•ืช ื‘ื ื™ืชื•ื— ืžืฆื˜ื‘ืจ, SMART TS XL ืžื‘ื˜ื™ื— ืฉื ื™ื”ื•ืœ ื”ืžื•ืจื›ื‘ื•ืช ืœื ื™ืขื›ื‘ ืืช ืžื”ื™ืจื•ืช ื”ืคื™ืชื•ื—. ื›ื›ืœ ืฉืคืจื•ื™ืงื˜ื™ ืชื•ื›ื ื” ื’ื“ืœื™ื ื•ืžืชืคืชื—ื™ื, ืชืคืงื™ื“ื ืฉืœ ื›ืœื™ ื ื™ืชื•ื— ืงื•ื“ ืกื˜ื˜ื™ ื—ื–ืงื™ื ื›ืžื• SMART TS XL ื”ื•ืคืš ืœื”ื™ื•ืช ืืคื™ืœื• ื™ื•ืชืจ ืงืจื™ื˜ื™. ืฉื™ืœื•ื‘ SMART TS XL ืœืชื•ืš ื–ืจื™ืžื•ืช ืขื‘ื•ื“ื” ืฉืœ ืคื™ืชื•ื— ืžื‘ื˜ื™ื— ืฉื‘ืกื™ืกื™ ืงื•ื“ ื™ื™ืฉืืจื• ื ืงื™ื™ื, ื ื™ืชื ื™ื ืœื”ืจื—ื‘ื” ื•ื ื™ืชื ื™ื ืœืชื—ื–ื•ืงื”, ื•ื‘ืกื•ืคื• ืฉืœ ื“ื‘ืจ ืชื•ืจืžื™ื ืœื”ืฆืœื—ืช ืชื•ื›ื ื” ืืจื•ื›ืช ื˜ื•ื•ื— ื•ืœื”ืคื—ืชืช ื”ื—ื•ื‘ ื”ื˜ื›ื ื™.