【发布时间】:2011-01-11 11:04:12
【问题描述】:
在编程中经常让我头疼的一件事是,当我在必须处理大量元素的域中没有任何命名约定时。在使用 UI 设计器(例如 Windows 窗体设计器)时,我显然会遇到这种情况。
每次我开始一个新项目时,我都试图重新发明一个“看似强大”的命名约定,但它总是在某些时候失败。对我来说,与命名 GUI 元素的经典代码定义相比,有两个主要问题:
- 您必须放置大量可以在同一范围内访问的变量(GUI 元素),因此您需要严格的命名约定才能快速找到正确的元素。
- 您经常需要访问特定类型的 GUI 控件(例如:TextBox、Label 等),因此 GUI 元素的最佳解决方案是根据它们的类型(匈牙利风格符号)命名它们,这可以是有时令人困惑,无法帮助快速找到正确的元素。
如果有人有一个文档描述了他为自己的项目发明的一个好的约定或一个强大的约定,我真的很想知道它!
注意:我没有将这个问题归类到 .NET 或 Windows Forms 标签下,它似乎适用于很多框架。如果没有,请告诉我。
编辑:
事实上,我最常用的约定是使用反向匈牙利符号(意味着类型在前),然后是基于 UI 元素层次结构的路径。例如,要轻松访问属于我的程序的“设置”选项卡的文本框,我会这样称呼它:
this.tb_settingTab_xxx
我使用这个约定的问题是它并不完美,当你有一个 UI 元素属于另一个也属于另一个也属于另一个的 UI 元素时,有时会失败......
我真正在寻找的是牢不可破且方便的命名约定。我很惊讶微软从未就此给出任何指导方针。还是我错了? (即 Mark Rushakoff 评论)。
【问题讨论】:
-
如果您在一个表单上有太多控件,这是否暗示您将表单重构为单个表单上的多个
UserControls 可能是一个不错的选择?您要问的问题与“我在跟踪 1500 行方法中的所有变量时遇到问题”不远。 -
这显然是最好的解决方案。我经常说,因为我只在我存储和显示的数据使用相同模式的情况下考虑这个解决方案,在这种情况下我会做一个用户控制并重用它。这仍然是对精心设计的 UI 应用程序的最佳建议之一,但目前它不适用于我的某些项目。
标签: user-interface naming-conventions