2010-04-29 6 views
3

로깅 및 속성 구문 분석과 같은 프로젝트 차원의 메서드가있는 VB.NET 프로그램에 Util 모듈이 있습니다. 내가 일하는 일반적인 관행은 이들 메서드에 접두사없이 직접 Util을 호출하는 것으로 보인다. VB를 처음 접했을 때,이 메소드/함수가 어디에서 왔는지 파악하는 데 시간이 걸렸습니다. 지금 내 자신의 Util 메서드를 사용하기 때문에 각 메서드 호출 전에 Util.을 추가하는 것이 훨씬 명확하고 이해할 수 있다고 생각할 수 없습니다 (사용자가 정의했지만 현재 클래스 내에 있지 않고 즉시 찾을 수 있음). 그것), 그리고 거의 더 길지 않습니다. VB 모듈의 프로 시저/함수를 호출 할 때 일반적인 관행은 무엇입니까? 모듈 이름 앞에 접두사를 붙이겠습니까?VB.NET에서 모듈 함수를 직접 호출하는 것이 좋습니다.

답변

2

Intellisense (및 "Goto Definition")는 사물이있는 곳을 찾는 것이 쉽지만, 읽기 쉽도록하기 위해 항상 더 나은 네임 스페이스를 사용합니다. 그런 다음 그것은 사용자 정의 함수이고 작업중인 클래스에 내장되거나 로컬 인 것은 아닙니다.

아마도 미묘한 차이가 있습니다. 공통점이 있고 자체 포함 된 코드 대신 모듈 대신 공유 클래스를 사용하는 경향이 있습니다. 나를 추적하기가 더 쉬워 보이며, 또한 시행 할 것입니다. 네비게이션을 호출하기위한 네임 스페이스를 제공하지 않고 어디에서나 호출 할 수 있기 때문에 프리 프레임 처리 규칙.

+0

확장 메서드에 대한 모듈이 필요하지만이를 피하고 공유 클래스를 사용합니다. –

+0

"Goto Definition", 의심의 여지가 없습니다. 우리가 Imports 문을 사용하고 Module 메소드를 호출 할 수있게 해주는이 사소한 기능은 메소드의 출처에 대해 두 번 생각할 필요가 없다는 것을 보장합니다. +1. –

1

나는 일반적으로 읽기 쉽도록 공유 함수의 전체 네임 스페이스를 지정합니다.

Call MyNameSpace.Utils.MySharedFunction() 
1

Util은 그러한 일반적인 이름입니다.

.Net 프레임 워크의 예제. System.Web.HttpUtility.UrlEncode(...)이 있습니다. 일반적으로 상단에 가져 오기 문이 있으므로 HttpUtility.UrlEncode으로 참조하십시오.

정적 유틸리티 메소드가있는 클래스의 이름을 읽고 설명 할 수 있어야합니다. 그것은 좋은 습관입니다. 클래스 이름이 좋은 경우 Utils 네임 스페이스에 상주 할 수도 있지만 클래스 이름은 Utils이 아니어야합니다.

모든 로그인을 Logger 클래스에 넣으십시오. 모든 문자열은 StringUtils 클래스에 전달됩니다. 클래스 이름은 가능한 한 구체적으로 유지하려고합니다. 다른 방법보다 함수 수가 적은 클래스를 더 많이 갖고 싶습니다.

+0

동의하지만 Util 클래스의 메서드가 매우 적은 매우 작은 임시 프로젝트이며 이것이 구현 방법입니다. 약간 더 크거나 장기적으로 우리는 그것을 훨씬 더 모듈화 할 것입니다. – froadie

+0

Utils 클래스의 이름을 실제로 유틸리티라고 바꾸십시오. 두 가지 경우라면 두 클래스로 나눠보세요. 시간이 지남에 따라 누군가가 기능을 추가하고 그것을 Utils에 집어 넣으면 성장하고 성장할 것입니다. 큰 Q는 작은 임시 작업 일 때 최고의 연습을 건너 뛸 수 있도록 허용해야합니까? 잠시 후에 코드가 삭제되고 다시 만져 본 적이 없다면 나는 그렇다고 말할 것입니다. 그러나 이것을 오늘 알면 얼마나 쉬울까요? –

관련 문제