工程通常是知道什么解决方案最适合这个问题的艺术。如果有人问我是否应该使用单例类?所有数据库都应该有视图和触发器吗?最大的PHP框架是什么?是C++还是Go更好?还是RSA或AES更安全?我肯定会回答“这很严重.”
但有一个问题很突出:“我应该使用模块化设计吗?”--“绝对”
在我的经验中,我从来没有怀疑过模块化设计。我制作的软件必须组装、组装和互换,就像乐高积木(当然是在你定义砖块之后)。不管是什么语言,不管是什么机器,不管目的是什么等等。因此,我还没有说“这取决于”时,问是否应该使用模块化设计。
软件工程的几乎所有其他方面都有一个可以使用的指标。模块化设计(到目前为止)只有给予和给予。这让我感到害怕,我不断地寻找为什么没有人会使用模块化设计。我的意思是,如果你的编程方式是把所有的代码粘合在一起,包含可变长度的函数和有限的可扩展性,并且没有错误的可分割性,那么这会自动意味着你是一个糟糕的程序员吗?除了懒惰,还有什么理由用这种方式编码吗?他们还有其他方法来设计一个项目吗?或者,模块化设计是最重要的、最无可争议的、正确的做事方式(就像呼吸一样)?
发布于 2016-12-23 15:22:28
模块化设计需要(非微不足道的认知)努力作为一种设计启发,但它的好处又回到了
因此,一个不关心这些事情的项目将是模块化设计的浪费。它类似于托马斯·基利安的回答提到的非常小的系统。
要打个比方,想想宜家的家具和所有的模块化设计努力吧。然后,问问自己,如果你只需要一张桌子,为客人准备一晚的庆祝活动,你就会从你手头的任何东西中拿出一些东西来解决这个问题(孩子们做得很好!)为这一目的设计一张新的宜家式桌子(带有模块部件),这对你的一夜派对来说太过分了。
我喜欢尼尔·福特的设计风格。模块化设计(在我看来)甚至不存在于“牛仔黑客”的极端。

发布于 2016-12-22 22:25:47
什么是非模块化设计?对我来说,这将是一个单一的设计。它们在非常小的系统中具有优势。这是任何资源都有限的地方。这可能是内存,CPU,甚至编码器可以用来创建它的时间。一个单一的设计可以在一个单一的部分(或更具体地说,它需要)。这样你就能得到整个画面。但再说一遍,你需要了解整个情况。因此,只要系统小,这将是可行的。从一定的尺寸开始,你肯定想要模块化设计。第一条吃大象:把它切成块吃。
https://softwareengineering.stackexchange.com/questions/338729
复制相似问题