将程序集命名为一个名称,将程序集内部的文件夹命名为另一个名称然后是常见的 开始将这些名称带入这些文件夹中的类?例如:
Project.Presenter
Carriers
CarriersFindPreferedCarriersPresenter.cs
CarriersPreferencesPresenter.cs
PreferredTargetLocationPresenter.cs
Project.Service.Fixture
Carriers
CarriersServiceFixture.cs
或者进行更进一步,甚至是这样的方法:
List<PreferredTargetLocationPresenter.PreferredTargetLocation>
newlyAddedPreferredLocations = new
List<PreferredTargetLocationPresenter.PreferredTargetLocation>();
newlyAddedPreferredLocations.add(destinationLocation.PreferredCity);
对我来说,这似乎变得越来越混乱,因为你更长时间地处理项目并开始添加额外的程序集和方法。有没有更好的方法来解决这个问题?
欢迎任何反馈。
答案 0 :(得分:4)
向一百个不同的人询问这个问题,你会得到一百个不同的答案。我喜欢用任何方法编写/维护代码最简单的方法,这是长时间描述性名称的一半,而短小而甜蜜的名字则是另一半。只要代码直观且灵活,我就无法用任何一种方式看到问题。
答案 1 :(得分:4)
Pragmatic Programmers推广了DRY原则:不要重复自己。这也适用于命名。一次又一次地重复相同的范围名称或前缀不会再添加任何信息,只会使名称更长,更不易读,更容易输入错误并且更难搜索。如果您有100个以PreferredLocation*
开头的班级名称,那么您将很难找到合适的名称: - (
所以我完全反对这一点。类和方法名称的大小由封闭的路径/项目名称限定(在java中为package
,在C#中我不知道正确的术语是什么),所以如果你需要有关a的下落的所有信息类/方法,它足以查看它的完全限定名称。但是,在常规代码中,不应强制在任何地方使用完全限定名称。唯一的例外是姓名冲突,但我认为这应该被视为例外,而不是规则。
此外,在一个设计良好的应用程序中,大多数方法/类都不是全局可见的,只在它们各自的包中(编程语言允许这样 - Java确实如此,我也确定C#)。这减少了名称冲突的风险,并且进一步消除了对类名称前缀的需求。
答案 2 :(得分:3)
有时你必须使用更长的名字,但你通常希望尽可能缩短名字。关键是要有描述性的名称,这些名称可以提供足够的细节,而不是更多。
答案 3 :(得分:2)
PreferredTargetLocationPresenter.PreferredTargetLocation
是PreferredTargetLocationPresenter
类型的子类型吗?换句话说,你在嵌套类吗?
如果是这样,你可能最好将PreferredTargetLocation
分解为自己的类。这允许你写:
List<PreferredTargetLocation>
而不是
List<PreferredTargetLocationPresenter.PreferredTargetLocation>
如果您使用的是C#3.0,则可以使用var
进一步缩短声明:
var locations = new List<PreferredTargetLocation>();