Hacker News 의견
  • 일부 해커뉴스 댓글에서는 C++ 프로젝트를 상속받았을 때의 조언이 제시됨:

    • 재현 가능한 빌드: 도커 같은 도구를 사용하여 빌드 환경을 감싸서 도구와 의존성을 명확하고 재현 가능하게 만들 것을 권장함.
    • -Wall 옵션으로 깨끗하게 빌드하기: 경고를 해결하여 코드의 문제를 수정하고, 드물게는 이해한 후에 경고를 무시하는 것도 가능함.
    • Valgrind와 같은 도구로 초기 테스팅을 하여 읽기/쓰기 오류를 조사할 것을 제안함.
    • 리팩토링은 초기에는 지역화된 범위에서 유지하고, 전체 구조를 이해하기 전에 대규모 재설계를 피할 것을 권장함.
  • 다른 댓글에서는 CI, linting, auto-formatting 등을 먼저 도입하는 것이 중요하다고 주장함:

    • 코드에서 불필요한 부분을 제거하기 전에 프로그램이 어떻게 작동하는지 이해하고, 정적 분석 도구를 통해 프로그램이 어디서 작업이 필요한지 통찰을 얻을 수 있음.
  • 한 사용자는 새로운 팀이나 회사로 이동하는 것을 제안함.

  • 코드 이해 도구와 기술의 중요성을 언급하는 댓글도 있음:

    • 코드베이스를 색인화하는 도구 사용과 UML 시퀀스 다이어그램 작성, 마치 타인에게 가르치듯이 노트 작성하는 것이 중요함.
  • 한 댓글은 프로젝트를 현대화하기 위해 CI, linters, fuzzing, auto-formatting 등을 추가하는 것에 대한 조언을 제시함:

    • CI를 통해 다른 곳에서도 빌드가 가능하도록 하고, 컴파일러 경고 및 정적 분석기를 활용하여 코드 문제를 파악함.
    • 중요한 코드 부분에 대한 단위 테스트를 설정하여 코드가 정확한 작업을 수행하는지 확인함.
    • 자동 포매팅은 우선순위가 낮으며, 원래 유지자의 스타일을 따를 것을 권장함.
  • 또 다른 댓글에서는 메모리 안전한 언어로 일부를 다시 작성하는 것에 대한 조언을 비판함:

    • 추가 작업에 필요한 자원 확보가 어렵고, C++ 외에 추가 언어에 대한 지식이 필요하며, 테스팅이 더 복잡해질 수 있음.
  • git 서브모듈과 소스 컴파일 방식을 사용하는 것이 패키지 관리자보다 우수하다고 주장하는 댓글도 있음:

    • vcpkg와 같은 도구를 사용해보기 전에 이러한 비판을 제기하는 것은 이상함을 지적함.

이러한 댓글들은 C++ 프로젝트를 상속받았을 때의 다양한 접근 방식과 조언을 제공하며, 프로젝트 관리, 코드 이해, 리팩토링, 현대화 전략 등에 대한 다양한 의견을 나타냄.