2016-12-22 34 views
1

當域中的某些名稱發生更改時,處理情況的最佳做法或模式是什麼?如何處理軟件中的域對象名稱更改?

例如,假設我正在開發汽車銷售軟件。所以,我會有Car域對象,CarService,CarDTO,FetchCarRequest,SaveCarRequest等等。此外,我會有一堆本地化的字符串,他們的鑰匙包含字車。

而且,假設老闆,客戶或產品所有者認爲「汽車」不是一個正確的詞,並決定將其更改爲「自動」或「車輛」。當然,他並不關心軟件內部發生的事情,他唯一關心的是在用戶界面上我們用汽車或車輛來替換所有的汽車。

現在,我的問題是,如何解決這個問題?

  1. 我應該改變本地化的字符串,並記住/文檔 每當有人(老闆,質量檢查,在對應用的評價用戶...)談論 車輛,他們想到的是我們所說的「汽車」的東西在我們的軟件?

  2. 重構,其中單詞「車」中提到

  3. 一些完全不同的我們的代碼每fckng的地方嗎?

回答

0

我應該改變本地化的字符串,並記住/文檔 每當有人(老闆,質量檢查,在對應用的評價用戶...)談論 車輛,他們想到我們所說的事「車「在我們的軟件中?

是的。如果UI中的任何術語發生變化,您肯定需要更改所有觸及它的句子。如果你需要經常這樣做,你可以構建一個索引。但是如果你需要經常這樣做,你的流程就會出現問題。

重構,其中單詞「車」中提到

這是另一回事了我們每一個代碼fckng地方。在DDD中,您使用Eloquent language來描述應用程序的商業邏輯。您在與隊友,分析師,項目經理等交談時使用這種語言。您可以在代碼中使用它。如果突然發生了什麼事情,那就迫使你從現在開始用所有不同的術語對所有這些人說話......那麼爲什麼......你必須重構你的代碼。因爲否則你會在各地混雜着各種術語,造成混亂和錯誤。

但是,如果這種情況在你的過程中經常出現......有人需要認真思考。

+0

對我來說,在代碼中使用的名詞應該遵循域中使用的100%名詞,這似乎是符合邏輯的。但是,你知道它是如何工作的,這是商業決定,玩家變成了顧客,汽車變成了汽車,或者訪問變成了互動,或者有人決定成爲互動,並且隨着業務的發展和/或樞軸而偶爾發生,看起來很痛苦,有時會跟隨這些變化,所以我想聽聽其他經驗和最佳實踐。謝謝您的回答。 – SadClown

相關問題