>  기사  >  백엔드 개발  >  훌륭하고 깔끔한 코드를 작성하기 위한 6가지 팁

훌륭하고 깔끔한 코드를 작성하기 위한 6가지 팁

ringa_lee
ringa_lee원래의
2017-09-17 10:05:171350검색

요약:개발자로서 클린 코드를 작성하는 것은 매우 중요합니다. 따라서 이 글에서 저자는 먼저 클린 코드 작성의 이점을 나열한 다음 개발자의 참고 연구를 위해 클린 코드 작성을 위한 6가지 팁을 제안합니다. ...

깨끗한 코드를 작성하는 것은 쉬운 일이 아니며, 다양한 기술과 관행을 시도해야 합니다. 문제는 이 문제에 대한 관행과 기술이 너무 많아서 개발자가 선택하기 어렵다는 것입니다. 따라서 문제를 조금 단순화합니다. 이 글에서는 먼저 클린 코드 작성의 이점 중 일부를 논의한 다음, 가장 일반적인 클린 코드를 작성하기 위한 6가지 팁이나 사례에 대해 논의할 것입니다.

목차 내용은 다음과 같습니다.

클린 코드 작성의 이점
1. 프로젝트를 더 쉽게 시작하고 계속할 수 있습니다.
2. 새로운 팀원 교육에 도움이 됩니다
3. 코딩 패턴을 더 쉽게 따르도록 하세요

깔끔한 코드 작성을 위한 팁
1. 읽을 수 있는 코드 작성
2. 변수, 함수, 메서드에 의미 있는 이름을 사용하세요
3. 각 함수나 메서드가 하나의 작업만 수행하도록 하세요
4. 코드를 설명하려면 주석을 사용하세요
5. 코드 스타일 일관성 유지
6. 정기적으로 코드를 검토하세요

클린 코드 작성에 대한 몇 가지 생각

클린 코드 작성의 이점

먼저, 클린 코드 작성의 몇 가지 이점을 이해해 보겠습니다. 주요 이점 중 하나는 깔끔한 코드를 사용하면 코드를 읽고 이해하는 데 소요되는 시간이 줄어든다는 것입니다. 지저분한 코드는 개발자의 속도를 늦추고 개발자의 작업을 더욱 어렵게 만듭니다. 코드가 더 혼란스러울수록 개발자는 코드를 사용할 수 있도록 코드를 완전히 이해하는 데 더 많은 시간을 소비해야 합니다. 코드가 너무 지저분하면 개발자는 코드 읽기를 중단하고 처음부터 직접 작성하기로 결정할 수도 있습니다.

1. 프로젝트를 더 쉽게 시작하고 계속할 수 있습니다.
이 문제를 설명하기 위해 간단한 예부터 시작해 보겠습니다. 오랜 시간이 흐른 후 이전 프로젝트로 돌아갔다고 가정해 보겠습니다. 아마도 그 시간 동안 클라이언트가 다른 작업을 위해 연락을 했을 것입니다. 이제, 당시에 깨끗한 코드를 작성하지 않았다면 처음 코드를 본 후 얼마나 나쁘고 혼란스러울지 상상해 보십시오. 또한 중단한 부분부터 코딩을 시작하는 것이 얼마나 어려운지 알 수 있습니다.

이제는 이전에 작성한 코드를 이해해야 하기 때문에 프로젝트에 더 많은 시간을 투자해야 합니다. 처음부터 깔끔한 코드를 작성했다면 이런 일은 피할 수 있었지만 이제는 그 대가를 치러야 한다. 더욱이 이전 코드는 너무 혼란스럽고 나쁘기 때문에 처음부터 시작하기로 결정할 수도 있습니다. 고객은 이 말을 듣고 기분이 좋지 않을 수 있습니다.

반면에 클린 코드에는 일반적으로 이러한 문제가 없습니다. 이전 예제가 반대이고 이전 코드가 깔끔하고 우아하다고 가정해 보겠습니다. 이를 이해하는 데 얼마나 시간이 걸릴까요? 모든 것이 어떻게 작동하는지 이해하는 데 코드를 읽는 데 몇 분밖에 걸리지 않을 것입니다. 이 경우에 소비되는 에너지는 첫 번째 경우보다 훨씬 적으며 동시에 고객은 그다지 신경 쓰지 않을 것입니다.

이것이 깔끔한 코드 작성의 첫 번째 이점이며 이는 자신의 프로젝트뿐만 아니라 다른 개발자의 작업에도 적용됩니다. 깨끗한 코드를 사용하면 작업을 더 빠르게 시작할 수 있고, 코드를 검토하는 데 몇 시간을 소비할 필요가 없으며 대신 바로 작업을 시작할 수 있습니다.

2. 신입사원의 팀 교육에 도움이 됩니다
클린 코드 작성의 또 다른 이점은 첫 번째 이점과 밀접한 관련이 있습니다. 즉, 신입사원이 코드를 더 쉽고 빠르게 사용할 수 있다는 것입니다. 개발자를 고용해야 한다고 가정해 보겠습니다. 개발자가 코드를 이해하고 사용 방법을 배우는 데 시간이 얼마나 걸릴까요? 물론 이는 상황에 따라 다릅니다. 코드가 지저분하고 제대로 작성되지 않았다면 코드를 배우는 데 더 많은 시간을 투자해야 합니다. 반면에 코드가 깨끗하고 읽기 쉽고 이해하기 쉽다면 작업을 더 빨리 시작할 수 있습니다.

어떤 사람들은 다른 개발자들이 그녀를 도울 수 있기 때문에 이것이 문제가 되지 않는다고 말할 수도 있습니다. 물론 이것이 맞습니다. 그러나 도움은 2~3주가 아니라 2~3회 또는 하루~이틀 정도의 짧은 시간만 소요되어야 합니다. 그래서 다른 개발자를 고용하기로 한 결정은 작업 속도를 늦추거나 그녀가 코딩을 배우는 데 더 많은 시간을 할애하기 위한 것이 아니라 작업 속도를 높이기 위해 내려졌습니다.

우리가 깨끗한 코드를 작성하려고 노력하면 다른 사람들도 우리에게서 배울 것이고 이를 따라하고 깨끗한 코드를 작성하는 것이 더 쉬울 것입니다. 물론, 각각의 새로운 개발자가 코드를 배우고 이해하는 데 도움이 되도록 어느 정도의 시간을 따로 확보해야 합니다. 물론 몇 주가 아니라 며칠을 의미합니다. 또한 깔끔한 코드는 팀이 더 많은 개발자를 참여시키는 동시에 코드를 이해하는 데 도움이 됩니다. 간단히 말해서, 코드가 단순할수록 해석하기 쉽고 오해가 줄어들 것입니다.

3. 코딩 패턴을 따라가기가 더 쉬워졌습니다
한 가지 기억해야 할 점은 코드 사용 방법을 이해하는 것과 배우는 것이 같다는 것입니다. 그러나 이는 시작에 불과하며 개발자가 우리의 코딩 모델을 기꺼이 따르도록 해야 합니다. 물론 지저분한 코드보다 깔끔한 코드로 이 목표를 달성하는 것이 더 쉽습니다. 이는 팀이 깨끗한 코드를 작성하는 것뿐만 아니라 시간이 지나도 해당 패턴을 유지하기를 원하기 때문에 중요하며, 이를 위해서는 장기적인 사고도 필요합니다.

또한 개발자가 현재 코딩 패턴을 따르지 않으면 어떻게 되나요? 이 문제는 일반적으로 자체적으로 해결될 수 있습니다. 동일한 코드 기반으로 작업하는 사람들이 있고 그 중 한 명이 표준 스타일에서 벗어나기 시작한다고 가정해 보겠습니다. 그러면 나머지 팀에서는 이 개발자가 표준을 따르도록 추진할 것입니다. 그녀는 그룹을 떠나고 싶지 않기 때문에 조언을 받아들일 것입니다.

개발자가 나머지 팀원에게 코딩 패턴을 채택하고 따르도록 설득하는 상황도 있습니다. 개발자가 더 깔끔하고 더 나은 결과를 얻을 수 있는 코딩 패턴을 생각해낸다면 확실히 좋은 일입니다. 실제로 깨끗한 코드를 작성하고 유지한다고 해서 이를 개선할 수 있는 기회를 무시해야 한다는 의미는 아닙니다. 저는 항상 현재 관행에 대해 개선 가능한 태도를 유지하고 개선의 기회를 찾기 위해 열심히 노력해야 한다고 믿습니다.

따라서 개발자가 현재 모델에서 벗어나 자신의 모델이 더 낫다면 변경하는 것이 적절할 수 있습니다. 따라서 다른 패턴을 시도하기 전에 다른 사람의 코딩 관행을 무시해서는 안 되며 계속해서 개선의 여지를 찾아야 합니다. 마지막으로 세 번째 시나리오입니다. 개발자는 우리의 방식을 채택하지도 않고 우리가 자신의 방식을 채택하도록 설득하지도 않기로 결정했습니다. 왜냐하면 그녀는 팀을 떠나기로 결정할 것이기 때문이다.

클린 코드 작성을 위한 팁

이제 클린 코드 작성의 이점을 논의하는 것 외에도 이 목표를 달성하는 데 도움이 되는 몇 가지 기술을 배울 시간입니다. 아래에서 볼 수 있듯이 클린 코드는 몇 가지 메서드로 구성되고 이를 따릅니다. 이러한 방법을 사용하면 코드가 더욱 깔끔하고, 읽기 쉽고, 이해하기 쉽고 단순해집니다. 물론 모든 방법을 시행할 필요는 없으며, 한두 가지 조치를 시행하고 따르는 것만으로도 긍정적인 결과를 얻을 수 있습니다.

1. 읽을 수 있는 코드 작성
작성된 코드가 기계로 해석된다는 것은 사실입니다. 그러나 이것이 코드의 가독성과 이해성을 무시해야 한다는 의미는 아닙니다. 왜냐하면 미래에 우리가 작성한 코드를 사용할 다른 사람이 항상 있기 때문입니다. 암호. 우리 코드를 다른 사람이 접근할 수 없게 만들더라도 나중에 다시 찾을 수 있을 수도 있습니다. 이러한 이유로 코드를 읽고 이해하기 쉽게 만드는 것이 우리의 이익입니다. 그렇다면 그것을 달성하는 방법은 무엇입니까?

가장 쉬운 방법은 공백을 활용하는 것입니다. 코드를 릴리스하기 전에 축소할 수 있지만 축소된 것처럼 보이게 만들 필요는 없습니다. 대신 들여쓰기, 줄바꿈, 빈 줄을 사용하여 코드 구조를 더 읽기 쉽게 만드세요. 이 경로를 선택하면 코드가 훨씬 더 읽기 쉽고 이해하기 쉬워집니다. 그럼 코드를 보시면 이해가 더 쉬울 것 같습니다. 두 가지 간단한 예를 살펴보겠습니다.
코드:

// Badconst userData=
[{userId: 1, userName: 'Anthony Johnson', memberSince: '08-01-2017', fluentIn: [ 'English', 'Greek', 'Russian']},
{userId: 2, userName: 'Alice Stevens', memberSince: '02-11-2016', fluentIn: [ 'English', 'French', 'German']},
{userId: 3, userName: 'Bradley Stark', memberSince: '29-08-2013', fluentIn: [ 'Czech', 'English', 'Polish']},
{userId: 4, userName: 'Hirohiro Matumoto', memberSince: '08-05-2015', fluentIn: [ 'Chinese', 'English', 'German', 'Japanese']}];
// Betterconst userData = [
  {
    userId: 1,
    userName: 'Anthony Johnson',
    memberSince: '08-01-2017',
    fluentIn: [      'English',      'Greek',      'Russian'
    ]
  }, {
    userId: 2,
    userName: 'Alice Stevens',
    memberSince: '02-11-2016',
    fluentIn: [      'English',      'French',      'German'
    ]
  }, {
    userId: 3,
    userName: 'Bradley Stark',
    memberSince: '29-08-2013',
    fluentIn: [      'Czech',      'English',      'Polish'
    ]
  }, {
    userId: 4,
    userName: 'Hirohiro Matumoto',
    memberSince: '08-05-2015',
    fluentIn: [      'Chinese',      'English',      'German',      'Japanese'
    ]
  }
];

코드:

// Badclass 
CarouselLeftArrow extends Component{
render(){
return ( <a href="#" className="carousel__arrow carousel__arrow--left" onClick={this.props.onClick}> <span className="fa fa-2x fa-angle-left"/> </a> );}};
// Betterclass 
CarouselLeftArrow extends Component {
  render() {    return (
      <a
        href="#"
        className="carousel__arrow carousel__arrow--left"
        onClick={this.props.onClick}
      >
        <span className="fa fa-2x fa-angle-left" />
      </a>
    );
  }
};

2.为变量、函数和方法使用有意义的名称 
来看一看第二个技巧,它将帮助我们编写可理解和干净的代码。这个技巧是关于变量、函数和方法的有意义的名称。“有意义的”是什么意思?有意义的名字是描述性足够多的名字,而不仅仅是编写者自己才能够理解的变量、函数或方法。换句话说,名称本身应该根据变量、函数或方法的内容和使用方式来定义。 
代码:

// Badconst fnm = ‘Tom’;
const lnm = ‘Hanks’const x = 31;
const l = lstnm.length;const boo = false;
const curr = true;const sfn = ‘Remember the name’;
const dbl = [‘1984’, ‘1987’, ‘1989’, ‘1991’].map((i) => {  
return i * 2;
});
// Betterconst firstName = ‘Tom’;
const lastName = ‘Hanks’const age = 31;
const lastNameLength = lastName.length;
const isComplete = false;const isCurrentlyActive = true;
const songFileName = ‘Remember the name’;
const yearsDoubled = [‘1984’, ‘1987’, ‘1989’, ‘1991’].map((year) => {  
return year * 2;
});

然而需要注意的是,使用描述性名称并不意味着可以随意使用任意多个字符。一个好的经验则是将名字限制在3或4个单词。如果需要使用超过4个单词,说明这个函数或方法需要同时执行很多的任务,所以应该简化代码,只使用必要的字符。

3.让一个函数或方法只执行一个任务 
当开始编写代码时,使用的函数和方法看起来就像一把瑞士军刀,几乎可以处理任何事情,但是很难找到一个好的命名。另外,除了编写者,几乎没有人知道函数是用来做什么的以及该如何使用它。有时我就会遇到这些问题,我在这方面做的很不好。

然后,有人提出了一个很好的建议:让每个函数或方法只执行一个任务。这个简单的建议改变了一切,帮助我写出了干净的代码,至少比以前更干净了。从那以后,其他人终于能够理解我的代码了,或者说,他们不需要像以前一样花很多时间去读懂代码了,功能和方法也变得更好理解。在相同的输入下,总是能产生相同的输出,而且,命名也变得容易得多。

如果你很难找到函数和方法的描述性名称,或者需要编写冗长的指令以便其他人可以使用,那请考虑这个建议,让每个函数或方法只执行一个任务。如果你的功能和方法看起来像瑞士军刀一样无所不能,那请你执行这个方法,相信我,这种多才多艺不是一种优势。这是一个相当不利的情况,可能会产生事与愿违的结果。

附注:这种让每一个函数或方法只执行一项任务的做法被称为保持纯函数。这种编码实践来自于函数式编程的概念。如果你想了解更多,我推荐阅读《So You Want to be a Functional Programmer series[4]》。 
代码:

// Examples of pure functionsfunction subtract(x, y) {
    return x - y;
}function multiply(x, y) {
    return x * y;
}// Double numbers in an arrayfunction doubleArray(array) {
  return array.map(number => number * 2)
}

4.更容易遵循编码模式 
不管多么努力地为变量、函数和方法想出有意义的名字,代码仍然不可能完全清晰易懂,还有一些思路需要进行解释。问题可能不是代码很难理解或使用,相反,其他人可能不理解为什么要实现这个函数或方法,或者为什么要以特定的方式创建它。意思是,创建函数或方法的意图还不清楚。

有时可能不得不采用非传统的方法来解决问题,因为没有足够的时间来想出更好的解决方案,这也很难用代码来解释。所以,通过代码注释可以帮助解决这个问题,也可以帮助我们向其他人解释为什么写了这个方法,为什么要用这种特定的方式来写,那么其他人就不必猜测这些方法或函数的用途了。

更重要的是,当我们使用注来解释代码后,其他人可能会找到一个更好的方法来解决这个问题并改进代码。这是有可能的,因为他们知道问题是什么,以及期望的结果是什么。如果不知道这些信息,其他人就很难创建更好的解决方案,或者他们可能不会去尝试,因为他们认为没有必要去修改创建者自己的想法。

因此,每当自己决定使用一些快速修复或非传统的方法时,要用注释来解释为什么这么做。最好是用一两行注释来解释,而不用别人来猜测。

즉, 주석은 필요한 경우에만 사용해야 하며 잘못된 코드를 설명해서는 안 됩니다. 끝없는 주석을 작성하는 것은 잘못된 코드를 깨끗한 코드로 바꾸는 데 도움이 되지 않습니다. 코드가 불량한 경우에는 사용 방법에 대한 지침을 추가하는 것이 아니라 코드를 개선하여 문제를 해결해야 합니다. 깔끔한 코드를 작성하는 것이 더 중요합니다.

5. 코딩 스타일 일관성 유지
우리가 좋아하는 특정 코딩 방법이나 스타일이 있으면 항상 어디에서나 사용하게 됩니다. 하지만 프로젝트마다 다른 코딩 스타일을 사용하는 것은 좋은 생각이 아니며 자연스럽게 이전 코드로 돌아갈 수도 없기 때문에 프로젝트에 사용된 코딩 스타일을 이해하는 데는 여전히 시간이 걸립니다.

가장 좋은 방법은 코딩 방법을 선택하고 모든 프로젝트에서 이를 고수하는 것입니다. 이렇게 하면 이전 코드로 돌아가는 것이 더 쉬워집니다. 물론 새로운 코딩 방식을 시도하는 것은 좋은 일이며 업무를 수행하는 더 나은 방법을 찾는 데 도움이 됩니다. 그러나 기본 프로젝트보다는 다양한 실험실 프로젝트나 연습에서 다양한 코딩 스타일을 시도하는 것이 더 좋습니다.

그리고 실험을 하기로 결정했다면 여러 번 시도하고 시간을 들여 철저하게 해야 합니다. 당신이 그것을 좋아하고 편안하다고 정말로 확신하는 경우에만 그것을 구현해야 합니다. 그리고 이것을 하기로 결정했다면 모든 프로젝트에 적용하는 것이 가장 좋습니다. 그렇습니다. 시간이 걸리며, 또한 우리가 올바르게 생각하도록 강요합니다.

6. 코드를 확인하세요

마지막 팁입니다. 클린 코드를 작성하는 것뿐만 아니라 마지막으로 해야 할 작업도 있는데, 바로 클린 코드를 유지하는 것입니다. 우리는 정기적으로 코드를 확인하고 개선하도록 노력해야 합니다. 그렇지 않고 이전 코드를 검토하고 업데이트하지 않으면 기기와 마찬가지로 빠르게 오래된 코드가 됩니다. 코드를 최상의 상태로 유지하려면 정기적으로 업데이트해야 합니다.

매일 사용하는 코드도 마찬가지입니다. 코드가 더 복잡해지고 혼란스러워지므로 이를 피하고 코드를 깨끗하게 유지해야 합니다. 이를 달성하는 유일한 방법은 정기적으로 코드를 검토하는 것입니다. 즉, 우리는 그것을 지켜야 합니다. 앞으로 더 이상 관심을 두지 않는 프로젝트의 경우에는 이것이 필요하지 않을 수도 있지만, 다른 경우에는 코드를 유지하는 것이 업무의 일부입니다.

클린 코드 작성에 대한 몇 가지 생각

오늘 논의한 6가지 사례는 가장 큰 영향을 미치지도, 가장 중요하지도 않을 수 있지만, 숙련된 개발자들이 가장 자주 언급하는 사례입니다. 바로 제가 이를 선택하는 이유입니다. . 이러한 사례나 팁이 깔끔한 코드 작성을 시작하는 데 도움이 되기를 바랍니다. 이제 모든 일과 마찬가지로 가장 중요한 것은 시작하는 것입니다. 그러니 최소한 하나의 팁을 골라서 시도해 보세요.

위 내용은 훌륭하고 깔끔한 코드를 작성하기 위한 6가지 팁의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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