>  기사  >  웹 프론트엔드  >  클린 코드 이해: 처리 ⚡

클린 코드 이해: 처리 ⚡

WBOY
WBOY원래의
2024-08-22 18:56:22669검색

Understanding Clean Code: Handling ⚡

오류 처리는 강력하고 안정적인 소프트웨어를 작성하는 데 있어 중요한 측면입니다. 그러나 신중하게 수행하지 않으면 읽고 유지하기 어려운 코드가 복잡해질 수 있습니다.

클린 코드 7장에서는 명확성과 단순성을 강조하면서 코드를 복잡하게 만들지 않고 오류를 처리하는 기술을 다룹니다.

이 기사에서는 이 장의 주요 개념과 이를 JavaScript에 적용하여 코드베이스를 깔끔하고 유지 관리 가능하게 유지하는 방법을 살펴보겠습니다.


? 1. 오류 코드 대신 예외를 사용하세요

클린 코드의 주요 원칙 중 하나는 오류 코드보다 예외를 선호하는 것입니다.

예외를 사용하면 기본 논리에서 오류 처리 논리를 분리하여 코드를 더 읽기 쉽게 만들 수 있습니다.

예: 오류 코드 방지

function getUser(id) {
    const user = database.findUserById(id);
    if (user === null) {
        return -1;  // Error code for user not found
    }
    return user;
}

const result = getUser(123);
if (result === -1) {
    console.error('User not found');
} else {
    console.log(result);
}

이 예에서는 오류 처리가 기본 논리와 얽혀 있어 따라가기가 더 어렵습니다.

예: 예외 사용

function getUser(id) {
    const user = database.findUserById(id);
    if (user === null) {
        throw new Error('User not found');
    }
    return user;
}

try {
    const user = getUser(123);
    console.log(user);
} catch (error) {
    console.error(error.message);
}

예외를 사용하여 오류 처리 논리를 기본 논리에서 분리하여 코드를 더 깔끔하고 이해하기 쉽게 만듭니다.


? 2. 의미 있는 메시지로 맥락 제공

예외가 발생할 때 오류에 대한 맥락을 제공하는 의미 있는 오류 메시지를 제공하는 것이 중요합니다.

이렇게 하면 코드를 자세히 살펴볼 필요 없이 문제를 빠르게 진단하는 데 도움이 됩니다.

예: 오류 메시지에 컨텍스트 제공

function getUser(id) {
    const user = database.findUserById(id);
    if (user === null) {
        throw new Error(`User with ID ${id} not found`);
    }
    return user;
}

try {
    const user = getUser(123);
    console.log(user);
} catch (error) {
    console.error(error.message);  // Outputs: User with ID 123 not found
}

설명 오류 메시지는 문제를 즉시 이해하는 데 필요한 상황을 제공합니다.


? 3. Null을 반환하지 마세요

null을 반환하면 추적하기 어려운 null 참조 오류가 발생할 수 있습니다.

null을 반환하는 대신 예외를 발생시키거나 기본 동작을 제공하는 특수 사례 패턴을 사용하는 것이 좋습니다.

예: Null 반환 방지

function getUser(id) {
    const user = database.findUserById(id);
    if (user === null) {
        return null;  // This can lead to null reference errors
    }
    return user;
}

const user = getUser(123);
if (user !== null) {
    console.log(user.name);
}

null을 반환하려면 추가 확인이 필요하며 코드가 복잡해질 수 있습니다.

예: 예외 발생 또는 특수 사례 사용

function getUser(id) {
    const user = database.findUserById(id);
    if (user === null) {
        throw new Error(`User with ID ${id} not found`);
    }
    return user;
}

// OR

class NullUser {
    get name() {
        return 'Guest';
    }
}

function getUser(id) {
    const user = database.findUserById(id);
    return user || new NullUser();
}

예외를 발생시키거나 특수 사례 개체(예: NullUser)를 사용하면 null 참조 오류를 방지하고 코드를 깔끔하게 유지하는 데 도움이 됩니다.


? 4. Try-Catch-Finally를 드물게 사용하세요.

try-catch-finally 블록은 예외 처리에 필수적이지만 이를 과도하게 사용하면 코드가 복잡해질 수 있습니다.

필요한 경우에만 사용하고 블록이 깊게 중첩되지 않도록 하세요.

예: 과도한 Try-Catch 방지

try {
    const data = JSON.parse(input);
    try {
        const user = getUser(data.id);
        try {
            sendEmail(user.email);
        } catch (error) {
            console.error('Failed to send email:', error.message);
        }
    } catch (error) {
        console.error('User retrieval failed:', error.message);
    }
} catch (error) {
    console.error('Invalid JSON:', error.message);
}

이 코드는 여러 개의 중첩된 try-catch 블록으로 인해 따라가기가 어렵습니다.

예: 혼란을 줄이기 위한 리팩터링

function parseInput(input) {
    try {
        return JSON.parse(input);
    } catch (error) {
        throw new Error('Invalid JSON');
    }
}

function retrieveUser(data) {
    return getUser(data.id);
}

function notifyUser(user) {
    sendEmail(user.email);
}

try {
    const data = parseInput(input);
    const user = retrieveUser(data);
    notifyUser(user);
} catch (error) {
    console.error(error.message);
}

로직을 별도의 함수로 분해하여 중첩을 줄이고 가독성을 높였습니다.


? 5. 포착된 예외를 무시하지 마세요

예외가 발생하면 올바르게 처리하세요.

예외를 조용히 무시하면 예상치 못한 동작이 발생하고 디버깅이 어려워질 수 있습니다.

예: 예외를 무시하지 마세요

try {
    const user = getUser(123);
} catch (error) {
    // Ignoring the exception
}

예외를 무시하면 코드의 잠재적인 문제를 숨길 수 있습니다.

예: 예외 처리 또는 기록

try {
    const user = getUser(123);
} catch (error) {
    console.error('An error occurred:', error.message);
}

예외를 처리하거나 기록하면 문제를 인지하고 적절하게 해결할 수 있습니다.


⚡ 결론

깨끗하고 유지 관리가 가능한 JavaScript 코드를 작성하려면 효과적인 오류 처리가 필수적입니다.

오류 코드 대신 예외 사용, 오류 메시지에 컨텍스트 제공, null 반환 방지, try-catch 사용 제한, 발견된 예외 무시 안 함 등 클린 코드의 원칙을 따르면 오류 처리 논리를 보장할 수 있습니다. 강력하면서도 눈에 띄지 않습니다.

즐거운 코딩하세요!

위 내용은 클린 코드 이해: 처리 ⚡의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.