P.12: Use supporting tools as appropriate
P.13: Use support libraries as appropriate
이유
컴퓨터가 여러분 대신 해줄 수 있는 일이 많이 있습니다. 사람은 지루한 작업을 반복적으로 수행하는 것보다 더 나은 일을 해야 합니다.
라이브러리를 만드는데 사용되는 비용(시간, 노력, 돈 등) 은 여러 사용자가 공유할 수 있습니다. 널리 사용되는 라이브러리는 개별 애플리케이션보다 최신 상태로 유지되고 새로운 시스템으로 이식될 가능성이 더 높고 문서화도 잘 되어있습니다.
널리 사용되는 라이브러리에 대한 지식은 다른/향후 프로젝트에서 시간을 절약할 수 있기 때문에 적절한 라이브러리가 있으면 이를 사용하는 것이 좋습니다.
알아두기
아래와 같은 시중의 코드 분석기를 활용하면 코드가 지침을 잘 따르는지 확인할 수 있습니다.
1. 정적 코드 분석 도구 (Cppcheck, Splint, CppNcss, LDRA Testbed)
2. 동시성 분석 도구 (ThreadSanitizer, CppMem)
3. 테스트 도구 (Embunit, Typemock, Cantata, Parasoft, CppUTest, Boost test library, CRT debug library)
그밖에 소스 저장소, 자동화 빌드 (CI/CD) 도구 등과 같은 다른 종류의 도구들도 많이 있습니다.
알아두기
아래 라이브러리들을 능수능란하게 사용할 줄 알아야 합니다.
1. The ISO C++ Standard Library
2. The Guidelines Support Library
예시 (좋은 예)
std::sort(begin(v), end(v), std::greater<>());
// 작성자 추가 : C++20 Ranges 활용 시
std::ranges::sort(v, std::ranges::greater{});
여러분이 정렬 알고리듬 만들기의 달인이 아니라면 위처럼 STL 를 쓰는 것이 더 빠르고 정확할 가능성이 더 높습니다.
표준 라이브러리 (또는 응용 프로그램이 사용하는 기본 라이브러리) 를 사용해야 하는 이유를 묻지 마세요. 사용하지 않아야 할 이유를 찾는 편이 더 좋습니다.
정리
1. 도구를 사용하면 편합니다. 다만, 지나치게 정교하거나 전문화된 도구 체인에 의존하지 않도록 주의하세요. 이로 인해 이식 가능한 코드가 이식 불가능해질 수 있습니다.
2. 코드를 여러 C++ 컴파일러로 컴파일 해보는 것 역시 코드를 검증하는 훌륭한 수단입니다.
3. 좋은 라이브러리가 없다면 이를 설계하고 구현하여 C++ 커뮤니티 (Boost 등) 에 기여해 주세요.
'C++' 카테고리의 다른 글
[C++ Core Guidelines] I.2 전역 변수는 상수로 만들자 (0) | 2024.04.30 |
---|---|
[C++ Core Guidelines] I.1 인터페이스를 분명하게 만들자 (0) | 2024.04.30 |
[C++ Core Guidelines] P.11 지저분하게 코딩하지 말고 캡슐화하자 (0) | 2024.04.26 |
[C++ 20] std::source_location 사용하기 (1) | 2024.04.22 |
[C++ Core Guidelines] P.10 가급적 const를 사용하자 (2) | 2024.04.21 |