Hacker News 의견
  • 기존 코드베이스가 일관성이 없을 때, 새로운 방식을 도입하고 문서화하며 피드백을 받는 것이 중요함. 기존 코드와의 일관성을 유지하려고 노력해야 함.

    • 기존 코드가 나쁘더라도 주변 코드와의 일관성을 유지하며 작업하는 것이 중요함.
    • 팀원들이 비협조적일 경우, 기존 코드의 문제점을 강조하고 새로운 접근이 실험적임을 설명하는 것이 도움이 됨.
  • 기존 코드베이스의 도구를 사용해야 하지만, 새로운 코드베이스를 구축하는 것이 더 즐거울 수 있음.

    • 코드베이스의 결합도가 높을수록 변경이 어려워질 수 있으며, 테스트 커버리지가 부족하면 문제가 발생할 수 있음.
  • 큰 코드베이스를 분할하기 위해서는 먼저 이해가 필요하며, 경험이 없는 팀이 이를 시도하면 실패할 가능성이 큼.

    • 새로운 팀이 기존 시스템을 이해하지 못하면 프로젝트가 실패할 수 있음.
  • 큰 코드베이스에서 무작위로 개선하려는 시도가 많음.

    • 개선할 부분을 찾고, 실제로 긍정적인 영향을 미칠 부분을 판단하는 것이 중요함.
    • 개선할 부분을 알고 언제 멈출지를 아는 것이 중요함.
  • 코드베이스의 진화를 유지하는 것은 어려움.

    • 절대적인 일관성은 실험을 허용하지 않으며, 실험이 없으면 성공도 없음.
  • 코드베이스가 크고 인력이 부족하면, 새로운 사람이 생산적이 되기까지 시간이 오래 걸림.

    • 이런 환경에서 일하는 것은 경력에 좋지 않을 수 있음.
  • 코드베이스를 깔끔하게 유지하는 것은 기능을 출시하기 위한 최소한의 작업만 해야 함.

    • 이는 정치적으로 영리한 엔지니어들이 기능 출시를 목표로 한 전술적 선택일 수 있음.
  • 일관성이 가장 중요하지 않으며, 코드베이스의 일부를 개선하는 것이 좋음.

    • "용암층 반패턴"은 일관성을 유지하려는 시도보다 더 나은 시스템을 만들 수 있음.
  • "일관성의 결여는 치명적인 실수"라는 말은 100% 맞음.

    • "로마에 가면 로마법을 따르라"는 철학을 따름.
  • 엔지니어로서의 세 가지 격언:

    • 명확성, 일관성, 간결성
    • 고통을 올바른 곳에 두기
    • 엔트로피와 싸우기