簡體   English   中英

設計還是實施?

[英]Design or implementation ?

您如何區分設計決策與實施決策?

舉一個具體的例子:我們正在開發一些將我們的應用程序與另一個應用程序集成的Web服務。我問的問題之一是 - 我們是否希望通過異步或同步在兩個應用程序之間進行集成?

有人建議它是一個實現問題而不是設計。

我的請求是 - 如果我改變了一些東西而你不需要知道我改變了什么或為什么改變它 - 它的實施決定。

但是,如果我改變某些東西 - 這會改變你如何使用我的服務 - 這是一個設計決定。

如果我將我的實現改為同步的異步 - 我它會影響服務的消耗方式 - 因此 - 它是一個設計決策而不是實現

例如,無論我選擇XML用於存儲還是數據庫 - 只要它不影響其他應用程序 - 它仍然是一種實現選擇而不是設計

你同意嗎? 不同意? 想法?

我想你已經知道答案了,說實話,對於大多數實際來說,這是一個不必要的語義區別。 話雖如此,它的設計是否會影響最終用戶/消費者,如果沒有,則是實施。 在您的示例中,它將對任何使用您的服務的客戶端的設計產生深遠的影響,因此它肯定是設計的。

而且沒有順序。 在實施開始之前,您無法實際完成設計,並且盲目地遵循具有高且不必要的實施成本的設計是非常危險的。 考慮到您對成本的了解,您可以選擇重新設計實施的一半。

設計階段實施階段之前 (在項目的前端)。 當然, 如果有充分的理由,您可以在開始實施后更改設計 :這就是“迭代過程”的原因

product requirements -> design -> implementation -> back to product etc.

為了匯聚到產品

設計階段的存在是為了優化(讀取:$)實施階段,並確保滿足業務目標。

架構是另一個通常與設計相關的術語:在設計階段,選擇架構

我最喜歡的架構定義:

架構是一系列難以改變的決策

我認為這也適用於設計/實施方面的差異。 如果決定足夠困難,那么這是一個設計決策。

“硬”的定義在某種程度上是主觀的,取決於您的項目。 我會說你的問題中的同步/異步決定以后很難改變 - 所以我稱之為設計決策。

對我來說,設計決策將是在這種情況下是否支持異步和同步或僅支持同步通信。 實施決策將是如何實現對異步或同步通信的支持。

我認為設計決定就是你想要的。 這是你最終的,沒有污染的目標。

實施決策是由於某些技術問題而必須調整所需的設計。

從異步接口檢索結果和錯誤將會復雜得多,但在感知性能和靈活性方面具有明顯的優勢。 由於您必須權衡每種方法的總體優缺點以及它們如何滿足您的應用程序的要求,因此我認為這是一項設計決策。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM