Dot-Net
自定義 MVVM 實現與。棱鏡
這個問題的靈感來自這個封閉的問題:
我已經在企業應用程序中實現了我自己的自定義 MVVM 實現。我有興趣知道:
- 我為什麼要學習 PRISM(特別是 PRISM,而不是其他 MVVM 框架)?
- PRISM 相對於自定義 MVVM 實施的優勢和
- 學習 PRISM 值得投資嗎?
我希望這個問題不是主觀的,請大家不要爭論:)
與為您執行共同任務的許多框架一樣,您將獲得:
- 被更多的眼球測試:不僅僅是你自己。這(希望)包括單元測試,您在建構自己的框架時可能會或可能不會這樣做。
- 對其他開發人員來說更具可讀性:沒有其他人對您的自定義 MVVM 框架有經驗。但是,如果其他開發人員加入您的項目,或加入您的團隊,或加入您的公司,他們可以直接跳入 Prism 程式碼。
- 更好的文件:同樣,任何新加入的人都可能必須通過手動收集您的大腦和團隊中任何其他使用者的集體知識,並通過查看原始碼來學習繩索。第三方框架有自己的文件,網際網路上還有大量的部落格文章。
- 更好的社區:您可以在 StackOverflow 上提出有關“我如何使用 Prism 做 X?”的問題。你不能用你的自定義框架來問這個問題。
- 可能更有能力:通過需要為更多使用者提供服務,而不僅僅是您/您的團隊,將添加更多功能。如果您需要做一些您以前從未做過的與 MVVM 相關的事情,那麼您自己的 MVVM 框架中可能沒有內置對它的支持。但它很可能出現在 Prism 中。
- 更好的結構:假設您想做一些與 MVVM 相關的事情,但它不在 Prism 中。很有可能,這是有充分理由的!如果某些東西不在為在給定域中工作而設計的(相當成熟的)框架中,則表明您正在嘗試做的是一種不自然或尷尬的解決問題的方式。使用你自己的框架,說“哦,我要添加那個特性”太容易了,然後 6 個月後你意識到你犯了一個巨大的錯誤,因為這個新特性使你的程式碼很難遵循或者最終成為很多向量錯誤或諸如此類的東西。
- 簡歷項目:我對僱用“實施並使用了自定義 MVVM 框架”的人有不同的感受。雖然這可能意味著他們很聰明,但也可能表明可怕的“非在這裡建造綜合症”。另一方面,將“Microsoft Prism MVVM 框架”放在一大堆技術中可能很好,但並不令人驚嘆。兩全其美將是一個更長的要點,類似於“深入理解 MVVM 模式,通過在切換到 MVVM Prism 之前首先實現一個用於學習目的的玩具 MVVM 框架來實現”。是的,這三者之間的區別不會影響你的簡歷,而“非本地綜合症”可能會在面試中出現,但值得牢記在心,尤其是如果你