코드 품질의 목표
1. 코드는 작동해야 한다
- 작성된 목적대로 동작해야 한다.
- 코드가 '작동한다'라는 것을 정의할 때, 우리는 모든 요구 사항을 파악할 필요가 있다.
2. 코드는 작동이 멈추면 안 된다
- 코드는 다른 코드에 의존할 수 있는데, 그 코드가 수정되고 변경될 수 있다.
- 새로운 기능이 필요할 때 코드를 수정해야 할 수도 있다.
- 우리가 해결하려고 하는 문제는 시간이 자남에 따라 변경된다. 소비자 선호, 비즈니스 요구, 고려해야 할 기술 등이 바뀔 수 있다.
3. 코드는 변경된 요구 사항에 적응할 수 있어야 한다
한 번 작성하고 다시는 수정되지 않는 코드는 거의 없다. 몇 달에서부터 보통은 몇 년, 때로는 수십년 동안 동일한 소프트웨어를 지속적으로 개발할 수 있다. 이 과정에서 요구 사항은 계속 변한다.
4. 코드는 이미 존재하는 기능을 중복 구현해서는 안 된다
이미 구현된 코드를 재사용하면 좋은 이유
- 시간과 노력을 절약한다.
- 버그 가능성을 줄여준다.
- 기존 전문지식을 활용한다.
- 코드가 이해하기 쉽다.
코드 품질의 핵심 요소
1. 코드는 읽기 쉬워야 한다
코드를 읽을 때 다음과 같은 사항을 이해하기 위해 애쓰자
- 코드가 하는 일
- 어떻게 그 일을 수행하는지
- (입력이나 상태 등) 어떤 것을 필요로 하는지
- 코드 실행 결과물
2. 코드는 예측 가능해야 한다
코드가 예상을 벗어나는 일을 수행하지는 않는지 주의 깊게 살펴야 하고, 할 수 있다면 그런 코드를 작성하지 않도록 노력해야 한다.
3. 코드를 오용하기 어렵게 만들라
TV 뒷면의 소켓은 케이블을 잘못 꽂는 것을 방지하려고 일부러 다른 모양을 갖는다.
4. 코드를 모듈화하라
코드를 외부에 의존하지 않고 실행할 수 있는 모듈로 나눈 것이 이로울 떄가 많다.
변화하는 요구 사항에더 쉽게 적응할 수 있는 코드를 작성하는 데 도움이 된다.
5. 코드를 재사용 가능하고 일반화할 수 있게 작성하라
6. 테스트가 용이한 코드를 작성하고 제대로 테스트하라
- 소프트웨어 시스템과 코드베이스는 너무 크고 복잡해 한 사람이 모든 세부 사항을 알 수 없고,
- 사람은 실수를 하는 존재다.
고품질 코드 작성은 일정을 지연시키는가?
- 고품질 코드를 작성하면 처음에는 시간이 오래 걸리지만, 중장기적으로는 개발 시간이 단축되는 경우가 많다. 👍
참조