在休息室谈论巴解组织的问题 - 页 11

 
Andrei:

OOP中的手势量原则上不能少,因为所有这些接口都是额外的开销,这往往超过了编写逻辑本身的成本。而且,尽管任何函数都已经有了一个接口,即建议再建一个花园,这基本上是没有意义的。

同时,代码中的任何变化,无论是界面还是功能,都会变得更加复杂,因为一个是挂在另一个上的,这意味着我们在可能的bug数量和劳动强度上至少有四倍的增长......。这有点明显,不是吗?

终端是一个与你的代码有关的类。你有多少次需要改变终端代码中的一些东西,这些代码对你来说是隐藏的,只提供公共方法--用于实现你的程序的函数。
 
Andrei:

OOP中的手势量原则上不能少,因为所有这些接口都是额外的开销,这往往超过了编写逻辑本身的成本。而且,尽管任何函数都已经有了一个接口,也就是说,我们不得不再做一个本质上无用的对冲。

在这种情况下,界面和功能中的任何代码变化都会变得更加复杂,因为一个是挂在另一个上的,也就是说,我们至少有四次可能的错误和劳动强度的增加。这有点明显,不是吗?

关于交易、自动交易系统和交易策略测试的论坛

在后院谈论OOP

fxsaber, 2018.01.14 11:35

编程本身是生产的一个特例。O OP方法是一种生产任何东西的原则性方法。因此,谈论编程是非常狭窄的。OOP在出现在编程中之前就已经成功应用了。

工业的历史来到了面向对象的PRODUCTION,作为输送的下一个阶段。因此,谈论OO编程是一种狭隘的观点。就像谈论OO型缝纫靴一样。我们正在谈论组织任何生产的算法方法,包括作为一个非常特殊的案例,软件的创造。


事实证明,OOP生产在竞争上优于传统的装配线。有短期的生产计划,当有必要让它现在就发挥作用。还有就是长期的--当你目前奠定了很多 "额外的",但这个基础有利于简单地扩大生产规模。同样,这不是关于编程,而是关于创造生产的一般方法。


甚至在现代的权力机构中也可以看到OOP的方法。

 
Artyom Trishkin:
终端是一个与你的代码有关的类。你多长时间需要改变终端代码中的某些内容?

这个例子是不正确的。我们谈论的是你程序中的接口...

 
fxsaber:

工业的历史来到了面向对象的PRODUCTION,作为输送的下一个步骤。

OO编程也有其处理管道,OOP引入了另一层抽象,这只会增加每个单独的传送带和整个生产的开销。

 
Andrei:

OO编程也有自己的处理传送带,OOP引入了另一层抽象,只会增加每个单独传送带和整个生产的开销。

不幸的是,你是愚蠢的。你会被告知这个行业的历史,以及作为这个历史中的一个阶段的OOP,它在你周围的所有物质(不仅仅是)事物中发挥了巨大的作用。而你一直在谈论编程的一个特殊情况。

对人类发展史的无知。你将不会在你的直系子孙的记忆中留下任何痕迹。

 
fxsaber:

你会被告知这个行业的历史,以及作为这个历史的一个阶段的OOP,它在你周围所有的物质(不仅仅是)事物中发挥了巨大的作用。

你把巴解组织拖入工业史的天真尝试很有趣,但可悲的是你是个文盲。

 
Andrei:

这个例子是不正确的。我们谈论的是你程序中的接口...

为什么是 "不正确"?

程序与计算机上运行的所有软件有什么不同?

毕竟,它与任何用户程序中的一系列指令和数据集相同。为什么不正确呢--在这里或那里,软件的一部分除了通过既定的交换协议外,不能访问软件的另一部分?


没关系,如果你认真编程--迟早你会遇到需要区分访问权限的问题。

我也一样,在从真实模式切换到安全模式的日子里,我讨厌不能访问任何物理内存地址。我甚至用一个DMA控制器做捻子,把数据从受保护的系统区域复制到我的区域(虽然相当难弄清那里复制了什么,所以我没有)。 在我年轻的时候,我很愤慨--我怎么能没有直接的访问权--这几乎是对我权利的侵犯......而在方案中,允许我不接触一些东西吗?

好吧,随着我经验的积累,我经常发现访问权限的区分对程序员本人来说是个福音,因为它经常使我在编写模块时免于出错。你上了一个课,你想使用它,但它却无法访问一些数据...你很愤慨,怎么会这样,你开始调查......。和Oops...有些事情需要考虑到,数据不能直接访问,有 "间接路径",系统架构是这样的,通过直接访问,我可能会得到无效的数据。但我也可以得到有效的数据--这完全取决于时间点。而这样的错误是很难发现的。

这里,最简单的问题是访问缓存中的数据。如果你需要缓存的数据,而你直接访问它--你确定你会得到正确的数据吗?在没有区分的程序性方法中--你必须了解什么时候可以使用,什么时候不可以,什么时候数据有效,什么时候不有效......在OOP方法中--一切都很简单,你不能访问缓存数据,你只能调用函数,它返回所需的数据,如果它是无效的,它会获取有效的数据。现在想象一下,你在写完这个缓存一年后使用它。当你完全忘记了缓存刷新和有效性定义的原则。在OOP方法中,你并不关心。类功能将为你提供一切。但在功能性方法中--你必须详细记住,何时以及如何更新缓存,其中的数据何时有效,何时无效。

 
Andrei:

这个例子是不正确的。我们谈论的是你的方案中的接口...

这再正确不过了--它是一个等级制度。
你的程序,用OOP的方法,看到了类的 公共方法,你使用它们而不去考虑它们的组成部分。就像你使用标准语言函数一样。当你改变程序时,你不需要改变类。同样,在使用过程性方法时,你不需要改变语言的标准功能。
 
Artyom Trishkin:
终端是一个与你的代码有关的类。你有多少次需要改变终端代码中的一些东西,这些代码对你来说是隐藏的,只提供公共方法--实现你的程序的函数。

+++ )))

 
Artyom Trishkin:
终端是一个与你的代码有关的类。你有多少次需要改变终端代码中的一些东西,而这些东西对你来说是隐藏的,只提供公共方法--实现你的程序的函数

这样的需求经常出现。开发商这样做才是可取的。

一个简单的例子。由于某些原因,开发者认为没有必要为指标图提供一个水平坐标网格。当然,他们也没有为此提供一个合适的方法)。