一个尴尬,开放的问题,但这是我一直碰到的问题:
易于维护和使用的软件是经过精心设计的软件。试图使设计更直观意味着对组件进行命名,以使下一个开发人员应该能够推断出组件的功能。这就是为什么我们不将类命名为“ Type1”,“ Type2”等的原因。
当您对现实世界的概念(例如客户)进行建模时,这通常就像在对现实世界的概念进行建模后命名类型一样简单。但是,当您构建面向系统的抽象事物时,很容易用尽易于理解和消化的名称。
当尝试使用基本类型或接口描述组件的类型(而不是它们的工作方式)来命名类型系列时,对我来说,情况变得更糟。这自然导致每种派生类型试图描述实现的风格(例如IDataConnection
,SqlConnection
在.NET Framework中),但是如何表达复杂的内容,例如“通过反射工作并寻找一组特定的属性”呢?
然后,当你终于选择了一个名字,你觉得类型描述什么它试图做,你的同事问:“跆拳道这是否DomainSecurityMetadataProvider
实际上做什么? ”
是否有任何好的技术来为组件选择一个好记的名称,或者如何在不弄乱名称的情况下构建一组组件?
我可以对名称进行任何简单的测试,以更好地了解名称是否为“好”,并且对其他人应该更直观吗?