코드 숨김에서 참조하기 위한 UI 컨트롤의 명명 규칙에 대한 모범 사례는 무엇입니까?

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

  •  02-07-2019
  •  | 
  •  

문제

코드 숨김 페이지에서 참조할 수 있도록 폼 및 보고서의 UI 컨트롤(텍스트 상자, 드롭다운 등) 이름을 지정하는 가장 좋은 방법은 무엇입니까?

저는 사무실에서 많은 보고서와 양식을 작성합니다.다양한 데이터 소스(Access, SQL, Oracle)에서 생성되는 약 80개 이상의 "실시간" 보고서를 제공하는 여러 웹 애플리케이션이 있습니다.이러한 보고서는 양식에서 사용자 설정 매개변수를 받아들인 다음 데이터베이스에 쿼리하여 사용 가능한 현재 정보를 기반으로 보고서를 생성하므로 "라이브"로 간주됩니다.

따라서 프로세스는 사용자가 설정한 값을 가져와 이를 데이터베이스 쿼리에 전달하고 데이터 세트를 수신하고 마지막으로 데이터 세트를 보고서에 할당하는 것으로 시작됩니다.경우에 따라 보고서를 생성하기 전에 보고서에 표시되는 추가 필드를 데이터 세트에서 계산해야 합니다.이를 위해서는 계산된 값을 할당하기 위해 보고서의 출력 컨트롤을 참조해야 합니다.

내 코드에서는 변수나 멤버 필드에 접두사를 사용하지 않지만 UI 컨트롤을 식별하는 데에는 접두사를 사용합니다.예를 들어 txtFirstName은 보고서 컨트롤을 참조하여 데이터 세트에 있는 FirstName 필드의 데이터를 보고서의 표시 컨트롤에 할당합니다.폼과 보고서에서 UI 컨트롤의 이름을 지정하거나 참조하는 더 나은 방법이 있습니까?

도움이 되었습니까?

해결책

제가 직장에서 작업하는 주요 제품은 txt_ pnl_ 등의 접두사를 사용합니다.이것은 작동하지만 컨트롤을 숨기거나 표시하는 것을 tr에서 패널로 전환할 때 이름을 바꿔야 하기 때문에 때때로 약간 고통스럽습니다.

제가 새 프로젝트에서 시작한 일은 UI 접두사를 사용하여 UI 컨트롤의 이름을 지정하는 것입니다.예를 들어 uiName.나는 강력하게 반대하기 때문에 반헝가리 표기법, 그리고 노력합니다 자체 문서화 코드, 이 규칙은 잘 작동합니다.사실, 어쨌든 그렇죠. 진짜 헝가리어 표기법(ui는 사용자 인터페이스 제어를 의미하는 접두사임)

다른 팁

저는 여전히 컨트롤에는 헝가리 표기법을 사용하지만 더 이상 변수에는 사용하지 않습니다.

btn Button
cbo ComboBox
chk CheckBox
clb CheckedListBox
grp GroupBox
iml ImageList
lbl Label
lnk Hyperlink
mnu Menu
pbr ProgressBar
pic Picture
pnl Panel
rtb RichTextBox
tmr Timer
tvw TreeView
txt TextBox

GUI 컨트롤의 경우 변수 이름 뒤에 컨트롤 이름을 붙입니다.

  • firstNameTextBox
  • 성텍스트 상자
  • 제출버튼

이를 통해 예를 들어 _firstName과 firstNameTextBox.Text 간의 관계가 명확해지며 이에 상응하는 헝가리어 표기법이 무엇인지 기억할 필요가 없습니다.나는 변수 이름을 지정할 때 항상 간결함보다 명확성을 선택합니다.

여기에 대한 답변은 매우 주관적입니다.취향과 프로그래밍 배경이 다르면 선호도도 달라집니다.

아마도 장기적으로 가장 중요한 것은 모든 프로젝트 간의 일관성이므로, 누가 코드를 개발했는지에 관계없이 읽을 때 코드를 이해할 수 있을 것입니다.

우리는 아웃소싱을 많이 하기 때문에 명명 규칙을 모든 프로젝트 관리자에게 전달해야 합니다.

다음은 명명 규칙에 대한 몇 가지 링크입니다.

http://www.irritatedvowel.net/Programming/Standards.aspx

http://msdn.microsoft.com/en-us/library/xzf533w0(VS.71).aspx

http://www.visualize.uk.com/resources/asp-net-standards.asp

나도 당신과 비슷합니다.컨트롤이 너무 많으면 모든 것이 복잡해지기 때문에 각 이름 앞에 컨트롤 클래스의 대문자를 붙입니다.

예를 들어:

텍스트박스 -> tbName

DataGrid -> dgName

패널 -> p이름

이를 통해 새로운 컨트롤(예:접두어를 파생하는 방법)

나는 항상 접두어를 붙인 유일한 진짜 이유는 동일한 양식/페이지에 txtFirstName 및 lblFirstName과 같은 항목을 가질 수 있기 때문이라고 생각했습니다.대부분의 경우 실제 필드 컨트롤 자체로만 작업하기 때문에 해당 접두사를 건너뛰고 관련 컨트롤에 대한 접두사만 사용합니다.예를 들어 lblMonth & Month에서는 cbo 접두사를 건너뜁니다.

타이핑을 절약할 수 있으며 일반적으로 그러한 양식에서 어떤 종류의 컨트롤을 사용하고 있는지 분명해집니다.더 복잡한 컨트롤은 전체 접두사 처리를 받습니다.

내가 선호하는 iOS UI 구성요소의 2자 접두사:

bt_ : UIButton
lb_ : UILabel
tx_ : UITextField
tv_ : UITextView
vw_ : UIView
im_ : UIImageView
sc_ : UIScrollView
tb_ : UITableView
cl_ : UICollectionView
st_ : UIStackView
pk_ : UIPickerView
pr_ : UIProgressView
ai_ : UIActivityIndicatorView
wb_ : UIWebView / WKWebView
mp_ : MKMapView
gr_ : UIGestureRecognizer
sw_ : UISwitch
sl_ : UISlider
sp_ : UIStepper
sg_ : UISegmentedControl
pg_ : UIPageControl
dp_ : UIDatePicker

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