0

假设,我们创建了一个存储过程,它应该检索客户详细信息,并将在某种仪表板视图中使用。由于还有一些与仪表板相关的其他存储过程,人们可能会考虑通过相应地命名来对 SP 进行可视化分组:

  • DASH_GetCustomerDetails
  • 短跑_...

现在,如果您使用 .NET 2.0 创建标准 DAL,您肯定会添加强类型数据集并添加一些表适配器。默认情况下,上述 SP 的 TA 将命名为 DASH_GetCustomerDetailsTableAdapter,数据表为 DASH_GetCustomerDetailsDataTable,依此类推。

通常,您将拥有某种高于它们的业务逻辑。它可能被称为类似于 Customer 的东西,它具有一个实例化表适配器的受保护属性和一个 GetDetails 方法,可能最终检索详细信息。或者,您甚至可以将该方法本身设为属性,将其称为 Details,以便表示层可以只说类似 cust.Details 之类的内容。

但是,...我对所有这些命名的东西并不满意。是否有必要能够区分在后台工作的存储过程,以便命名应该反映......是否有任何最佳实践?

4

1 回答 1

2

我很想从程序的前面删除 DASH。一般来说,程序名称应该反映程序的作用,而不是谁在使用它。

考虑极端情况:

  • get_all_customers

对比

  • get_all_customers_for_dashboard
  • get_all_customers_for_invoice_background_job
  • get_all_customers_for_ad_hoc_report
  • ...

您的存储过程被仪表板应用程序的后台部分使用这一事实与过程本身无关,并且这样命名它们违反了封装。

如果您编写了另一个需要相同逻辑查询的应用程序,您会编写以 APPNAME 为前缀的新过程吗?

于 2009-01-14T13:01:14.750 回答