如何做软件设计?基础有哪些?(c系架构思维)

作者: admin 分类: 最新资讯 发布时间: 2023-11-21 09:29

一、设计基本技巧在软件设计中,一项基本技能是:发现和分离变化,并对其进行抽象和包装,从而实现高内聚和低耦合当我们做功能设计时,我们会特别强调:要分析变化和不变的地方,只有找到变化和不变的地方,才能合理地抽象和包装,使系统实现高内聚和低耦合,从而具有更好的可扩展性、可维护性等。

这个技巧很简单,就是发现和包装变化,但关键问题是:第一:怎样才能找到变化的地方?第二:找到变化的地方后,你如何更好地包装它?这些都是需要在实践中逐步探索和思考的问题二:设计是一种危险的平衡艺术事实上,做一个好的设计就是尽可能地找到最好的平衡点,但事实上,我们不确定我们是否真的找到了它。

为什么这么说?以我们所说的这种功能设计为例,需要考虑很多方面,而且有些方面,相互冲突例如,为了使系统更具可扩展性和可维护性,您设计的程序结构可能会增加复杂性,至少开发的复杂性会增加;或者,为了使系统结构更合理,您可能会导致性能略有下降;也许你可能会使用不同的资源,如更好的系统性能和更大的消耗。

因此,在实际的软件系统设计中,我们需要综合考虑这些因素,然后尝试找到妥协的解决方案例如,让系统性能尽可能好,然后让资源消耗不那么大,此时,你想找到一些平衡点,这就是刚才提到的:设计是一种危险的平衡艺术事实上,一个好的解决方案,他必须综合考虑各方面的要求,找到一个相对组合更好或最好的解决方案,所以你从某个角度来看,设计方案不一定是最好的,因为他必须考虑其他方面。

三:没有完美的设计,设计总是在不断演变对于软件设计,没有人能说他们的设计是完美的因为这个设计,即使你觉得在目前的情况下,它是完美的然而,业务正在发生变化,功能正在发生变化,技术正在发生变化,也就是说,这些外部的东西正在发生变化,你的设计不能说是最好的,或者是最完美的,你的软件设计,也必须伴随着这些东西不断发展。

四:设计没有标准答案,只要能更好地实现功能,更好地满足软件设计的评价标准,就是好的设计在软件设计中,并不是说设计必须这样做,而不是这样做,就像我们解决问题一样,有很多解决方案,但在不同的场合,不同的场景,考虑不同的角度,最终选择不同的解决方案,这是正常的。

因此,设计没有标准答案,也没有普遍的设计方案换句话说,它不太可能出现一个设计在这个系统中是这样做的,在其他系统中也是这样做的根本没有变化软件设计应该分析具体问题五:不要过度设计,不等于不设计,而是更精致的设计。

不要过度设计并不意味着没有设计,它的潜台词,是更精致的设计有些人用“不要过度设计”这句话当你看到某个系统做得不好时,你可能会说,你为什么这么做,你为什么不在这里设计它,你为什么不在这个地方提炼它,等等有些人会说“不要过度设计”。

事实上,这真的就像一块遮羞布,不要过度设计,不要让你不设计,不要让你盲目地做,我们必须正确理解这一点事实上,不要过度设计,他要求的是:你应该更精致地思考,你设计的东西也应该精致地选择,非常精致的选择,什么现在要做,什么不做,事实上,你的设计要求更高,而不是让你直接什么都不做。

事实上,通过精致的设计,既满足了现有的功能要求,又考虑了未来的变化因此,在未来的变化中添加正确的位置是很好的,这意味着不要过度设计不要过分的初衷是说:你不应该设计得太先进例如,你现在只需要实现三个功能即使考虑到变化,你也可能只需要实现四个或五个功能,这就足够了。

但有些人有很强的设计能力他说,当我想到这个功能时,未来可能会有20个变化我现在想做所有这20个变化吗?当然不是如果你把这20个都放在一边,那就叫过度设计也就是说,你以后可以多看一两步,多做一两步不要说,如果我能看到十步,我会做所有的十步。

这太过分了因为,随着业务的变化,你现在看到的未来可能不会朝着那个方向发展。现在你做得太多了,没有必要这样做。所以不要走得太远。这并不意味着你不需要设计,而是要考虑更精致的设计。

来源:艾瑞卡软件库

标签云