我能否用宽泛的、概括性的陈述来描

Advancing Forum Analytics at China Data
Post Reply
rumiseoexpate5
Posts: 56
Joined: Wed Dec 11, 2024 3:56 am

我能否用宽泛的、概括性的陈述来描

Post by rumiseoexpate5 »

述我的设计?或者它是否漏洞百出,我不得不这样说:

我们所有的程序都可以{插入行为}!
……除了{特殊情况},即{特殊用户}在周一做了一件{坏事}……”

如果你发现自己使用了“除了”这个词,你就发现了矛盾之处。找出例外并解决它们!

4 正交性
不要将独立的东西联系起来。一个功能的改变不应该影响另一个功能:每个动作只改变一件事,而不会影响其他事情。换句话说:不应该有副作用。保持功能的独立性可以确保没有“陷阱”需要解决,从而避免挫 埃及 whatsapp 电话号码列表 败感。在家里,你通常会认为打开灯不会降低恒温器,这也不会影响冰箱的温度;如果每个开关都会对其他开关产生意想不到的影响,那就太让人抓狂了。如果你打开洗碗机的门却发现它挡住了你站在水槽前,使你无法轻松地冲洗和放入脏盘子,这也会令人沮丧。这类问题使你很难让环境“恰到好处”或有效地完成日常任务,所以架构师会努力捕捉这些情况并解决它们。

然而,几乎所有家庭都存在一个突出的违反正交性的情况:水龙头控制。

Image

下载
对于许多淋浴器和水龙头,作为用户,您需要管理两件事:水量和温度。然而,控件总是令人沮丧地不正交,而是由两个旋钮组成:“热”和“冷”。它们有副作用:如果您想让水更热,您可以转动“热”旋钮,但这样做会影响水量。如果您已经喜欢温度,但只是想要更大的压力,您需要小心地以正确的方式转动两个旋钮。可以做得更好。通过恒温阀可以实现更安全、更简单的控制方式,它允许您完全独立地调节温度和流量。

同样,如果您小心确保您的功能是正交的,那么操作起来就不会那么棘手,而且当您需要改进设计时,您需要解决的“问题”也会更少。代码重用性会显著提高,因为其他工程师可以简单地取一个组件并在新的地方重用而不用担心。干净的正交性也有助于坚持简约性:您可以安全重用的越多,您需要为新情况添加的额外(可能是冗余的)功能就越少。

此外,独立性意味着您将能够单独测试组件,并且需要测试的案例更少。因此,可测试性显著提高。在相反的情况下,当功能纠缠在一起时,您将面临O(N 2 )个案例需要考虑,其中N是可能相互影响的功能数量。
Post Reply