>웹 프론트엔드 >JS 튜토리얼 >클린 코드란 무엇이며 왜 중요한가요?

클린 코드란 무엇이며 왜 중요한가요?

WBOY
WBOY원래의
2024-07-28 07:01:221007검색

What is Clean Code and Why it is important

한 번만 사용하면 되는 코드는 원하는 대로 작성할 수 있습니다. 그러나 대부분의 경우 모범 사례를 준수하고 깨끗한 코드를 유지하는 것이 필수적입니다.

나중에 다른 개발자는 물론 본인 자신도 귀하의 코드를 읽을 수 있다는 점을 기억하세요. 그 때가 오면 코드는 설명이 필요합니다. 모든 변수, 함수, 주석은 정확하고 깔끔하며 이해하기 쉬워야 합니다. 이 접근 방식은 유지 관리를 용이하게 할 뿐만 아니라 개발 팀 내 협업과 효율성을 촉진합니다.

따라서 누군가(또는 귀하)가 코드를 추가하거나 수정하기 위해 다시 방문할 때 각 코드 줄의 기능을 쉽게 이해할 수 있습니다. 그렇지 않으면 코드를 이해하는 데 대부분의 시간을 소비하게 됩니다. 코드베이스를 작업하는 새로운 개발자에게도 동일한 문제가 발생합니다. 코드가 깨끗하지 않으면 코드를 이해하지 못할 것입니다. 그러므로 깔끔한 코드를 작성하는 것이 매우 중요합니다.

클린코드란 무엇인가?

클린코드란 기본적으로

라는 코드를 말합니다.
  1. 이해하기 쉬움
  2. 손쉬운 디버깅
  3. 유지보수 용이
  4. 댓글은 짧고 이해하기 쉽게 잘 작성되었습니다
  5. 중복(Redundant) 코드가 없으며 KISS 규칙을 따릅니다. (Keep it simple, Stupid!)

깨끗한 코드를 작성하려면 개발자는 코드의 일관성을 유지해야 하며 개발자는 특정 언어에 대한 모범 사례를 따라야 합니다.

클린 코드가 중요한 이유는 무엇입니까?

팀이 깔끔한 코드 원칙을 따르면 코드베이스를 읽고 탐색하기가 더 쉬워집니다. 이를 통해 개발자는 코드를 빠르게 이해하고 기여를 시작할 수 있습니다. 클린 코드가 중요한 이유는 다음과 같습니다.

1. 가독성 및 유지 관리: 코드가 잘 작성되고, 좋은 설명이 있고, 모범 사례를 따르면 코드를 읽고 이해하기 쉽습니다. 문제나 버그가 발생하면 어디서 찾을 수 있는지 정확히 알 수 있습니다.

2. 디버깅: 클린 코드는 명확하고 단순하게 설계되어 코드베이스의 특정 섹션을 더 쉽게 찾고 이해할 수 있습니다. 명확한 구조, 의미 있는 변수 이름, 잘 정의된 함수를 사용하면 문제를 더 쉽게 식별하고 해결할 수 있습니다.

3. 향상된 품질 및 안정성: 클린 코드는 특정 언어의 모범 사례를 따르고 잘 구조화된 코드에 우선 순위를 둡니다. 품질을 높이고 신뢰성을 향상시킵니다. 따라서 버그가 있거나 구조화되지 않은 코드로 인해 발생할 수 있는 오류를 제거합니다.

이제 클린 코드가 중요한 이유를 이해했으므로 클린 코드를 작성하는 데 도움이 되는 몇 가지 모범 사례와 원칙을 살펴보겠습니다.


클린 코드의 원칙

훌륭한 코드를 만들려면 작고 잘 정의된 메서드를 사용하는 등 클린 코드의 원칙과 관행을 준수해야 합니다.

자세히 살펴보겠습니다.

1. 하드 코딩된 숫자를 피하세요

값을 직접 사용하는 대신 상수를 사용하여 해당 값을 할당할 수 있습니다. 따라서 나중에 해당 값을 업데이트해야 하는 경우 한 위치에서만 업데이트해야 합니다.


function getDate() {
  const date = new Date();
  return "Today's date: " + date;
}

function getFormattedDate() {
  const date = new Date().toLocaleString();
  return "Today's date: " + date;
}

이 코드에는 어느 시점에서 "오늘 날짜:" 대신 "날짜: "가 필요한 변경 사항이 있습니다. 이는 해당 문자열을 하나의 변수에 할당하여 개선할 수 있습니다.

개선된 코드:

const todaysDateLabel = "Today's date: ";

function getDate() {
  const date = new Date();
  return todaysDateLabel + date;
}

function getFormattedDate() {
  const date = new Date().toLocaleString();
  return todaysDateLabel + date;
}

위 코드에서는 필요할 때 날짜 문자열을 쉽게 변경할 수 있습니다. 유지보수성이 향상됩니다.

2. 의미 있고 설명이 포함된 이름을 사용하세요
어디에서나 공통 변수 이름을 사용하는 대신 설명이 필요 없는 좀 더 설명적인 이름을 사용할 수 있습니다. 변수 이름 자체가 그 용도를 정의해야 합니다.

이름 규칙

  1. 설명적이고 명확한 이름을 선택하세요.
  2. 의미 있게 구별하세요.
  3. 발음하기 쉬운 이름을 사용하세요.
  4. 검색 가능한 이름을 사용하세요.
  5. 매직넘버를 명명된 상수로 바꾸세요.
  6. 인코딩을 피하세요. 접두사를 추가하거나 정보를 입력하지 마세요.


// Calculate the area of a rectangle
function calc(w, h) {
    return w * h;
}

const w = 5;
const h = 10;
const a = calc(w, h);
console.log(`Area: ${a}`);

여기서 코드는 정확하지만 코드에 약간의 모호함이 있습니다. 설명적인 이름이 사용된 코드를 살펴보겠습니다.

개선된 코드

// Calculate the area of a rectangle
function calculateRectangleArea(width, height) {
    return width * height;
}

const rectangleWidth = 5;
const rectangleHeight = 10;
const area = calculateRectangleArea(rectangleWidth, rectangleHeight);
console.log(`Area of the rectangle: ${area}`);

여기서 모든 변수 이름은 설명이 필요하지 않습니다. 따라서 코드를 이해하기 쉽고 코드 품질도 향상됩니다.

3. 필요한 곳에만 댓글을 사용하세요
모든 곳에 댓글을 작성할 필요는 없습니다. 필요한 곳에만 적고, 짧고 이해하기 쉽게 작성하세요. 주석이 너무 많으면 혼란이 생기고 코드베이스가 지저분해집니다.

댓글 규칙

  1. Always try to explain yourself in code.
  2. Don't be redundant.
  3. Don't add obvious noise.
  4. Don't use closing brace comments.
  5. Don't comment out code. Just remove.
  6. Use as explanation of intent.
  7. Use as clarification of code.
  8. Use as warning of consequences.

Example

// Function to get the square of a number
function square(n) {
    // Multiply the number by itself
    var result = n * n; // Calculate square
    // Return the result
    return result; // Done
}

var num = 4; // Number to square
var squared = square(num); // Call function

// Output the result
console.log(squared); // Print squared number

Here we can see comments are used to define steps which be easily understand by reading the code. This comments are unnecessary and making code cluttered. Let's see correct use of comments.

Improved code

/**
 * Returns the square of a number.
 * @param {number} n - The number to be squared.
 * @return {number} The square of the input number.
 */
function square(n) {
    return n * n;
}

var num = 4;
var squared = square(num); // Get the square of num

console.log(squared); // Output the result

In above example comments are used only where it is needed. This is good practice to make your code clean.

4. Write Functions That Do Only One Thing
When you write functions, don't add too many responsibilities to them. Follow the Single Responsibility Principle (SRP). This makes the function easier to understand and simplifies writing unit tests for it.

Functions rules

  1. Keep it Small.
  2. Do one thing.
  3. Use descriptive names.
  4. Prefer fewer arguments.
  5. Split method into several independent methods that can be called from the client.

Example

async function fetchDataAndProcess(url) {
    // Fetches data from an API and processes it in the same function
    try {
        const response = await fetch(url);
        const data = await response.json();

        // Process data (e.g., filter items with value greater than 10)
        const processedData = data.filter(item => item.value > 10);

        console.log(processedData);
    } catch (error) {
        console.error('Error:', error);
    }
}

// Usage
const apiUrl = 'https://api.example.com/data';
fetchDataAndProcess(apiUrl);

In the above example, we can see a function that fetches data using an API and processes it. This can be done by another function. Currently, the data processing function is very small, but in a production-level project, data processing can be very complex. At that time, it is not a good practice to keep this in the same function. This will make your code complex and hard to understand in one go.
Let's see the clean version of this.

Improved code

async function fetchData(url) {
    // Fetches data from an API
    try {
        const response = await fetch(url);
        return await response.json();
    } catch (error) {
        console.error('Error:', error);
        throw error;
    }
}

function processData(data) {
    // Processes the fetched data (e.g., filter items with value greater than 10)
    return data.filter(item => item.value > 10);
}

// Usage
const apiUrl = 'https://api.example.com/data';

fetchData(apiUrl)
    .then(data => {
        const processedData = processData(data);
        console.log(processedData);
    })
    .catch(error => {
        console.error('Error:', error);
    });

In the this example, the responsibilities are separated: the fetchData function handles the API call, and the processData function handles data processing. This makes the code easier to understand, maintain, and test.

5. Avoid Code Duplication (Follow DRY Principle - Don't Repeat Your Self)

To enhance code maintainability and cleanliness, strive to create reusable functions or reuse existing code whenever possible. For instance, if you are fetching data from an API to display on a page, you would write a function that retrieves the data and passes it to a renderer for UI display. If the same data needs to be shown on another page, instead of writing the same function again, you should move the function to a utility file. This allows you to import and use the function in both instances, promoting reusability and consistency across your codebase.

Other General Rules for writing Clean Code

  • Follow standard conventions(For JavaScript Camel Case).
  • Keep it simple stupid. Simpler is always better. Reduce complexity as much as possible.
  • Boy scout rule. Leave the campground cleaner than you found it.
  • Always find root cause. Always look for the root cause of a problem.
  • Write code which is easy to understand

Implement this Practices and Principles from today to write Clean Code.

위 내용은 클린 코드란 무엇이며 왜 중요한가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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