我一直在研究复合WPF应用程序,只需阅读有关将代码分区为程序集的some good guidelines。本文作者支持尽可能减少程序集的数量。
如何平衡使复合WPF应用程序合理模块化,同时最大限度地减少装配数量?
对于我目前的项目,我开始为每个逻辑功能组创建一个模块,这导致了相当多的(14)小型程序集。如果我要重构这个并尝试最小化程序集,我可以将它降低到6,同时仍然与复合WPF架构保持一致,但我想知道我是否正在失去一些灵活性...也许我应该记住YAGNI
答案 0 :(得分:1)
除了YAGNI之外,还要记住Separation of concerns和Lazy loading模式,并将它们用于您的利益。没有必要使用更少的程序集捆绑更多可能不需要的功能,这些功能属于应用程序的不同方面。另外请记住,维护保持低耦合的代码也要容易得多,因为您可能会通过捆绑不属于一个的相同组件功能来引发错误。
您可能希望在应用程序的典型使用场景中进行一些可用性测试,并查看经常需要的模块,彼此依赖或相互继承,并将它们捆绑在同一个程序集中。具有不相交功能的模块 - 做出选择导致加载一个 OR 另一个,但从不两者,尤其应该保存在单独的程序集中。
答案 1 :(得分:0)
继续并根据需要将代码分成尽可能多的程序集,以使其易于理解和维护。稍后如果您发现应用程序中存在性能问题,并且这些问题是由于程序集数量过多造成的,您可以开始考虑加入其中一些程序集。只需确保具有清晰的对象模型设计和命名空间结构,这样您就不会忘记代码,无论您使用多少个程序集。