2011-03-28 7 views
4

현재 프로젝트의 크기가 매일 증가하고 있습니다. 내가 제공하는 API를위한 컨테이너.클래스/인터페이스를 폴더에 정렬/정리 하시겠습니까? 폴더가있는 네임 스페이스를 변경하지 않음 (Resharper : 네임 스페이스 공급자 = false)

현재 모든 클래스와 모든 인터페이스가 루트에 있습니다.

나는 Enums, Contants 등을 자신의 폴더로 분리했지만 폴더를 네임 스페이스의 일부로 상속하지 않습니다. 폴더를 깔끔하게 유지하기위한 컨테이너 일뿐입니다.

아무도 여기에 어떤 경험이 있는지 궁금합니다.

은 내가 아니라 내 수업을 분리해야

(네임 스페이스의 일환으로 폴더를 상속하지 않음)도 자신의 폴더에 내 인터페이스를 분리해야 하는가?

다른 클래스의 하위 클래스도 있습니다. 즉, 클래스는 클래스를 속성으로 구현합니다. 따라서 외부에서는 결코 인스턴스화되지 않습니다. 그래서 나는 더 이상 그들을 분리하고 (예를 들면) "제품"이라는 폴더를 넣어야하고이 폴더 안에는 Product 클래스가 있고 그 다음에 Items 클래스와 Product에 특정한 다른 클래스가 있어야합니까?

다시 말해서 폴더를 분리하고 네임 스페이스의 일부로 폴더 이름을 상속하지 않는 수단으로 사용합니다.

나는 약간의 피드백을 듣고 싶습니다.

감사합니다.

답변

2

이런 종류의 상황은 거의 발생하지 않습니다. 실제로 대부분의 경우 많은 프로젝트와 폴더가있는 프로젝트가 아니라 별도의 프로젝트로 끝납니다. 개인적으로 난 복잡한 코드의 냄새가있는 복잡한 프로젝트를 고려합니다. 다른 프로젝트가 없으면 프로젝트는 청크로 컴파일되기 때문에 빨리 컴파일되지 않지만 별도의 프로젝트는 병렬로 컴파일 될 수 있습니다 (더 많거나 적은 - 종속성의 영향을받습니다).

  • 무언가가 프로젝트의 모든 요소 (예를 들어, 유용한 확장 방법)에 공통 인 경우

    , 내가합니다

    당신이 정말로 하나 개의 프로젝트에 모든 것을 유지하려는 경우, 여기에 내 걸릴이야, 말했다 Infrastructure이라는 폴더가 네임 스페이스 공급자가 아니며 거기에 모든 공통적 인 항목을 넣어야합니다.
  • 프로젝트의 나머지 부분은 유형이 아닌 행동을 기준으로 분리하려고합니다. 예를 들어 열거 형과 클래스를 구분하는 것이 좋지만 클래스 나 열거 형 데이터베이스 엔티티가있는 경우 Entities (따라서 네임 스페이스는 MyProject.Entities) 인 폴더를 갖고 싶습니다. 열거 형 및 클래스는 단일 위치에 있습니다. (갑자기라는 프로젝트에이 마이그레이션한다면 MyProject.Entities 당신이 당신의 네임 스페이스를 변경할 필요가 없습니다 것을 유의하십시오.)

요약하면 -하지 유형, 기능에 의해 그룹화 파일을보십시오.

+0

안녕하세요 드미트리, 답장을 보내 주셔서 감사합니다. 물론 나는 마이크로 소프트가 시스템 = 메인 클래스, System.Globalization = 글로벌라이제이션 클래스와 같은 것들을 분리 할 것입니다 ... 그러나 각 프로젝트는 많은 수의 클래스를 포함하므로 어떤 조직이 필요하다고 생각합니까? – Martin

관련 문제