2010-03-12 2 views
1

"구문"을 접는 대신 응용 프로그램 시맨틱을 사용하여 #region 접기를 사용하는 것에 대해 어떻게 생각하세요? 예를 들어시맨틱 #region 사용법

:이 논리에서

#region Application Loop 
#region User Management 
#region This Kinf of stuffs 

대신

#region Private Routines 
#region Public Properties 
#region ThisRoutine // (Yes, I've seen this also!) 

, 나는 배, 심지어 일상적인 몸을 시작 해요. 나는 #region 지시자를 좋아하기 시작했다. (심지어 C++을 사용할 때 #pragma region을 사용한다.).

+0

커뮤니티 WIKI로 표시하거나 닫을 가능성이 높습니다. – JaredPar

답변

7

"응용 프로그램 루프"가 "사용자 관리"와 같은 유형으로되어있는 이유는 하나의 유형에서 너무 많이하는 것입니다. 자신이 이것을 원한다면 기능을 다른 유형으로 분리하는 것을 고려하십시오.

일반적으로 인터페이스 구현, Equals/GetHashCode 재정의 및 연산자에 대해 영역을 사용하지만 보통은 모두입니다. 내가 쉽게 등등 생성자, 오버라이드 (override) 방법 등을 찾을 수 있기 때문에, 구문에 따라 지역에 내 코드 분할 선호

+0

그 파일은 단지 예제 일 뿐이며 반드시 같은 파일에있는 것은 아닙니다. –

+0

예. 여기 예제 만 있습니다. 전체 예제는 다음과 같습니다. http://genomalib.svn.sourceforge.net/viewvc/genomalib/trunk/Derm/Render/RenderContext.cs?revision=60&view=markup 또는 http : //genomalib.svn.sourceforge .net/viewvc/genomalib/trunk/Derm/Render/Shaders/ShaderObject.cs? revision = 61 & view = markup – Luca

+1

동일한 파일에 있지 않더라도 사용자에게 중요한 역할을하는 유형은 없을 것입니다. 다른 일을하는 경영. –

1

...

1

나는 일반/관련 목적으로 그룹 방법에 영역을 사용합니다.

그래서, 오히려 공공, 보호, 민간 지역보다, 등, "이벤트 핸들러"

접힌 클래스는 역할을한다이의 목적을 "초기화"생각 "로드 및 저장" 기능 요약 또는 개요, 찾고있는 부품을 쉽게 찾을 수 있습니다. 일반적으로 응용 프로그램의 모든 클래스에서 사용되는 몇 가지 표준 영역 "유형"을 사용하여 일관되게 세분화됩니다.

1

과거에이 작업을 수행 한 개발자를 보았지만 최종 결과가 좋지 않습니다. 문제는 그 뒤를 따르는 사람들이 그룹을 이해하고 그들의 추가를위한 정확한 지역을 정확하게 식별 할 것이라는 기대에 있습니다. 내 경험상 기껏해야 일어나는 일은 기껏해야 새로운 영역의 확산, 각 기능 변화 당 하나, 그리고 최악의 경우, 모든 오래된 장소에서 또는 지역 사회의 끝에 무의미한 새로운 방법으로 끝납니다.

확실한 구성표를 사용하십시오. 가장 보편적 인 것은 '개인 필드/Public Fields/개인 속성/개인 메서드/Public 속성/Public 메서드'구성표입니다. (개인적으로 나는 가시성별로 그룹화하는 것을 선호합니다 : 대중/내부/개인 (private/public/internal/private). 맨 위에 더 눈에 잘 띄는 멤버가 먼저 관심을 가질 것이고, 무엇이 계속 눈에 띄게 눈에 띄는 지 알 수 있습니다.

+0

이것은 견고한 견해입니다. – Luca

2

지역을 사용하는 유일한 시간은 구현되지 않은 인터페이스 메소드 또는 코드 조각을 숨기는 것입니다.하지만 코드를 죽일 준비는 아직되어 있지 않습니다.

은 파일 내에서 너무 많은 코드 (또는 다른 일반적인 코드 냄새 [또는 접히는 냄새입니까?])를 추적하는 데 도움이되도록 접기가 필요하다고 생각하는 경향이 있습니다. 접을 수있는 유일한 것은 접히는 것입니다. 디스플레이에 있어야하는 코드를 찾아야하는 좌절스러운 사람들입니다.

나는 코드를 숨기는 팬이 아닙니다.