C # 프로젝트에서는 작고 밀접하게 관련된 클래스를 동일한 .cs파일 로 그룹화하는 경우가 많습니다 . 이 방법은 실제 코드에 거의 근접하지 않은 수많은 파일을 다루는 마찰을 줄입니다. 그러나 여러 클래스를 포함 하는 파일의 이름을 지정하는 관행이 있습니까?
C # 프로젝트에서는 작고 밀접하게 관련된 클래스를 동일한 .cs파일 로 그룹화하는 경우가 많습니다 . 이 방법은 실제 코드에 거의 근접하지 않은 수많은 파일을 다루는 마찰을 줄입니다. 그러나 여러 클래스를 포함 하는 파일의 이름을 지정하는 관행이 있습니까?
답변:
내 충고 : 너무 많은 파일이 있음을 의미하더라도 여러 클래스와 이름 파일 == 클래스를 포함하는 파일을 피하십시오. 폴더로 정리해보십시오. 매우 특별한 경우 중첩 클래스가있을 수 있습니다. 이 경우 기본 클래스와 중첩 클래스를 하나의 부분 클래스가있는 다른 파일로 분리하는 것이 좋습니다. 이 경우 다음과 같은 명명 규칙을 사용합니다.
MyEnumerable.cs
MyEnumerable.MyEnumerator.cs
아마도 귀하의 경우에 여러 부분으로 된 파일 이름을 사용할 수도 있습니다.
하나 이상의 공용 클래스가 아닌 파일에 클래스가 두 개 이상 포함되지 않도록하십시오. 클래스가 여러 개인 클래스 파일의 이름을 지정하는 동안 설명이 포함 된 파일 이름을 선택하십시오.
굴절 :
이러한 파일의 이름을 지정하는 방법에 대한 질문을 통해 문제가되는 코드 냄새를 이미 식별했으며 이는 쉽게 사라지지 않는 문제입니다.
추론에 관계없이 파일에 클래스가 둘 이상있을 때 적절한 이름을 선택하는 것이 어렵다는 것을 알 수 있습니다. 파일이 어떤 식 으로든 관련되어 있어도 무언가를 던질 유혹이 항상 있기 때문입니다. 클래스 집합에 할당 한 그룹 이름에 맞지 않습니다.
따라서 짧은 대답은 이러한 종류의 파일 이름을 지정하기 위해 인정되거나 확립 된 표준이 없다는 것입니다. 내 제안은 팀과 함께 코드 구성을 살펴보고 약간의 리팩토링 노력을 적용하여 정리하는 것입니다.
그러나 일을 조금 더 쉽게하기 위해 추가 클래스가 중첩되어 있는지 또는 독립적인지 묻습니다. 독립적 인 경우 이러한 클래스는 단일 클래스에 대해 명명 된 각 파일을 포함하여 자체 파일로보다 쉽게 분리 할 수 있습니다. 중첩 된 경우 이러한 클래스를 구성하는 방법에 대한 추가 결정이 필요할 수 있지만 중첩 된 클래스를 즉시 제거하지 않아도되므로 파일의 이름이 가장 바깥 쪽 클래스로 지정됩니다. 중첩에 관한 한, 어떤 상황에서는 중첩에 대한 논쟁이 많고 합리적인 몇 가지가 있으며, 합리적인 이름 공간을 만들고 더 체계적인 소스 코드 구조를 만드는 것이 더 나은 방법인지 물어 보는 것이 좋습니다. 문제.
그러나 실제로는 프로젝트 수명이 끝날 때까지 파일에 모두 단일 클래스와 멋진 디렉토리 / 네임 스페이스 구조가 포함되어 있기를 바랍니다.
건배,
나는 한 파일에 여러 클래스를 가지고 있었지만, 실제로 내 자신이 아닌 프로그래머로 일하기 시작한 이래로 단일 파일에 많은 클래스가있는 유지 보수의 악몽이 될 수 있음을 발견했습니다. 물론 Visual Studio는 F12 (정의로 이동)를 사용하여 많은 도움을 줄 수 있습니다.
내가 시작한 것은 다음과 같은 이름 지정 규칙을 사용하는 것입니다. namespace.classname.cs 그렇게하면 각 파일에 무엇이 있는지 정확히 알고 있으며 파일의 전반적인 컨텍스트를 제공합니다. 클래스가 기본 네임 스페이스에있을 경우 계속 진행하고 classname.cs (Java와 유사)를 사용하십시오 .