하나의 단순하지만 모 놀리 식 코드베이스 대 많은 명확하게 문서화 된 종속성

StackOverflow https://stackoverflow.com/questions/500746

  •  20-08-2019
  •  | 
  •  

문제

종종 새로운 프로젝트를 시작할 때, 나는 코드베이스를 구성하는 방법에있어서 최선의 의도라고 생각하는 것으로 시작합니다. 나는 한 가지 일을 잘하는 수많은 작은 모듈에 대한 아이디어를 좋아하고, 코드베이스의 다른 부분들로부터 결합되어 있으며, 다른 (유사한) 프로젝트에서 나 자신이 재사용하거나 다른 사람들이 활용할 수있는 오픈 소스에 대한 재사용을 좋아할 수 있습니다.

그러나 Come Crunch Week는 실제로 제작에 무언가를 얻으려고 할 때 Come Crunch Week에서, 이러한 모든 다른 모듈을 관리하는 복잡성이 너무 많은 오버 헤드 (좋은 문서화 및 배포 방법론에도 불구하고)가 너무 많은 경우가있었습니다. 그 시간에 나는 단순히 압정을 변경하고 모든 모듈을 하나의 저장소로 번들로 하나의 코드베이스로 관리했습니다. 즉, 다른 분기를 통해 모든 것을 추적하고 준비 및 테스트 환경 등에 배치 할 수 있습니다.

이러한 다른 접근법의 장점과 단점은 무엇이며 어떤 방식 으로든 작업을 어떻게 관리합니까?

하나의 모 놀리 식 코드베이스의 장점 :

  • 배포하기 쉽습니다
  • 롤백하기 쉽습니다
  • 모든 변경 사항을 쉽게 가지/관리하기 쉽습니다
  • 문서화 및 관리하기위한 잠재적으로 복잡한 종속성 (또는 그 이하)

모듈 식 종속성의 장점 :

  • 재사용 성
  • 깨끗한 아키텍처 (하나의 모듈은 한 가지를 잘합니다)
도움이 되었습니까?

해결책

나는 당신만큼 반대를 보지 못합니다. .NET 경험을 예로 들어, 코드의 일부가 잘 정의 된 책임을 지키고 코드베이스를 네임 스페이스로 구성하여 네임 스페이스의 터치 포인트가 잘 정의되고 동일한 네임 스페이스 내에서 해당 클래스를 보장 할 수 있습니다. 정말 함께 속해 있습니다.

그러나이 모든 것은 단일 배포 단위, 단일 프로젝트, 분기, 무엇을 가지고 있는지 내에서 발생할 수 있습니다. 당신이 그것을 고수한다면, 당신이하는 프로젝트의 맥락에서 재사용 될 수있는 코드 단위는 결정화 될 것이며, 그것은 당신이 자체 배포 인공물, 소스 제어 분기와 함께 새로운 코드 단위를 도입하기로 결정할 수있는 시점입니다. , 등.

다른 팁

여기에 연설이 있습니다 Google 설명 (약간) 거대한 모 놀리 식 코드 저장소를 처리하는 방법. 그리고 왜 그들은 하나가 있습니다.

그건 그렇고, 나는 그것이 잘 정의 된 종속성 세트에 반대해야한다고 생각하지 않습니다. 모 놀리 식 코드베이스를 처리하려면 종속성 그래프와 책임에주의를 기울여야한다고 말합니다. 이런 종류의 조직에서는 더 많은 유용한 DEP를 쉽게 추가하기가 쉽습니다…

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top