从多个来源获取数据时如何避免重复的类和方法名?

Posted

技术标签:

【中文标题】从多个来源获取数据时如何避免重复的类和方法名?【英文标题】:How to avoid duplicate class and method names when getting data from multiple sources? 【发布时间】:2021-11-11 09:55:50 【问题描述】:

我正在开发一个基于 .NET 5 的 Web 应用程序,该应用程序从许多不同的数据源读取数据。 在许多情况下,属于我的应用程序的数据通常存储在多达四个不同的数据源中,例如 SQL Server 数据库或 Azure 时序见解。

为了在我的应用程序中尽可能简单地处理数据,我经常在 DTO 中将数据捆绑在一起,然后在我的业务逻辑或前端中使用它。为此,我在我的解决方案中创建了一个“DataAccess”项目,并为我需要从中读取数据的每个数据源添加了一个文件夹。在每个文件夹中,我添加了一个或多个访问器类,其中包含用于从相应数据源读取或写入数据的方法和函数。 然后,在我的 DataAccess 项目的根文件夹中,我有访问器类,它们使用各个数据源的访问器类来读取数据并将其捆绑到 DTO 对象中。 以下是解决方案资源管理器中项目结构的示例:

可以看出,不幸的是,这会导致许多同名的类(和函数/方法)在使用时可能会造成混淆,尤其是随着时间的推移,项目会变得越复杂。 作为一种解决方案,我正在考虑重命名各个数据源的类,以便它们还包含数据源的名称,例如“TimeSeriesInsightsDeviceAccessor”。 虽然这样可以正常工作,但它会使许多类名变得很长(有时最多 40 多个字符)。

有没有办法做到这一点,而不会导致许多同名的类或非常长的类名?

【问题讨论】:

我使用与您相同的名称,但使用不同的命名空间来反映文件夹。在 IDE 中工作不是问题 IMO 【参考方案1】:

你被不遵守良好的命名规则所困扰。

要命名函数,请使用强动词后跟对象 具有功能内聚的过程通常对对象执行操作。名称应该反映过程的作用,对对象的操作意味着 verb-plus-object 名称。

GetMaterial()SetMaterialPrintDocument()CalcMonthlyRevenues()CheckOrderlnfo()RepaginateDocument() 是良好过程名称的示例。

【讨论】:

我的函数以类似的方式命名。例如,在 DeviceAccessor 类中,我可以有一个函数 GetDevices(),它返回一个设备数据对象列表。但是,对于包含我的设备 DTO 数据的每个数据源都存在此功能,因为只有来自所有数据源的组合数据才会产生“完整”的设备 DTO 对象。您认为我应该如何命名所有内容才能避免出现如此多重复的类和函数名称? 能否附上错误截图或更详细的内容? 你指的是哪个错误截图?我的项目中没有任何实际错误。我的问题更多是关于以一种有意义且易于使用的方式构建项目。

以上是关于从多个来源获取数据时如何避免重复的类和方法名?的主要内容,如果未能解决你的问题,请参考以下文章

Java:从静态方法中获取继承类的类

java如何获得泛型中的类

Python 设置文档字符串并获取动态生成的类方法的方法名

关于获取java异常的方法

从外部api获取数据时反应应用程序中的Cors错误[重复]

[转]如何写出线程安全的类和函数