
288
이펙티브 러스트
아이템
29
: 클리피가 하는 말에 귀 기울여라
편지를 쓰고 계신 것 같은데, 도와드릴까요?
마이크로소프트 클리피
8
아이템
31
에서 러스트 툴박스에서 제공하는 유용한 도구 생태계를 살펴보겠지만, 그중에서도
클리피
Clippy
9
는 별도 아이템을 할애해 설명할 정도로 중요하고 유용한 도구다.
클리피는 카고(
cargo
clippy
)의 추가 구성 요소로서 러스트로 작성한 코드에서 다음 항목에
대한 경고 메시지를 제공한다.
●
정확성
correctness
: 일반적인 프로그래밍 오류에 대해 경고한다.
●
관용구
idiom
: 표준 러스트 스타일에서 벗어난 코드를 경고한다.
●
간결성
concision
: 보다 간결한 코드 표현을 제시한다.
●
성능
performance
: 불필요한 처리나 할당을 피할 수 있는 대안을 제시한다.
●
가독성
readability
: 사람이 더 쉽게 읽고 이해할 수 있도록 코드를 변경하는 방법을 제시한다.
예를 들어 다음 코드는 문제없이 빌드된다.
의도하지 않은 동작 발생
pub fn circle_area(radius: f64) -> f64 {
let pi = 3.14;
pi * radius * radius
}
하지만 클리피는
π
에 대한 로컬 근삿값이 필요 없고 정확하지도 않다고 지적한다.
error: approximate value of `f{32, ...