如何处理软件中的域对象名称更改?

时间:2016-12-22 10:58:07

标签: architecture refactoring

当域名中的某些名称发生变化时,处理情况的最佳做法或模式是什么?

例如,假设我正在为汽车销售开发软件。所以,我会有Car域对象,CarService,CarDTO,FetchCarRequest,SaveCarRequest等等。另外,我有一堆本地化的字符串,其中的键包含单词car。

而且,让我们说老板,客户或产品所有者认为“Car”不是一个正确的词,并决定将其更改为“Auto”或“Vehicle”。当然,他并不关心软件内部发生的事情,他唯一关心的是在用户界面上我们用汽车或车辆替换所有汽车。

现在,我的问题是,如何处理这个问题?

  1. 我应该只更改本地化字符串,并记住/记录它 每当有人(老板,QAs,应用评论中的用户......)谈论 车辆,他们在我们的软件中考虑我们称之为“汽车”的东西?

  2. 重构我们代码中提到“Car”字样的每个fckng位置

  3. 完全不同的东西?

1 个答案:

答案 0 :(得分:0)

  

我应该只更改本地化字符串,并记住/记录它   每当有人(老板,QAs,应用评论中的用户......)谈论   车辆,他们考虑我们称之为"汽车"在我们的软件中?

是。如果UI中的任何术语发生变化,您肯定需要更改触摸它的所有句子。如果您经常需要这样做,您可以构建一个索引。但是如果你经常需要这样做,那么你的过程就会出现问题。

  

重构我们代码的每个fckng位置,其中包含#" Car"提到

这是另一回事。在DDD中,您使用Eloquent language来描述应用程序的业务逻辑。当您与您的队友,分析师,项目经理等交谈时,您可以使用这种语言。您可以在代码中使用它。如果突然发生了某些事情,那就迫使你从现在开始用所有使用不同术语的人说话......那么为什么......你必须重构你的代码。因为否则你会在任何地方混淆各种术语,造成混乱和错误。

但是又来了。如果这种情况在你的过程中经常出现......有人需要认真考虑它。