OOP与程序化编程 - 页 40

 
Andrei:

确切地说,是来自一个特定的人。为什么一个没有精神分裂症的程序员会极力隐藏对自己正在调试的某部分代码的访问?难道你不愿意绑住自己的手吗?:)

好吧,正如我所说的,试着用彼得在上面给出的结构文件来工作。从那里 "获取 "你需要的数据,然后把它放回正确的地方。

并将其与从一个 "修剪过的 "界面中获得你所需要的数据进行比较,这个界面给你提供的是相同结构的一小部分。有了接口,就根本不可能得到别的东西,也不可能写出 "错误 "的东西。

不,可以理解的是,如果你是一个记忆的巨人,有萎缩的遗忘能力--那么你很幸运,你不需要OOP。但不是每个人都这么幸运。

所以,SanSanych提出用文档来代替OOP--原则上,这也是一种选择,事实上,它更接近Peter提出的结构。但对于彼得来说,所有的文件都是 "在心里",而对于桑桑尼茨来说,则是在纸上(或电子媒体上)。

 
Andrei:

我想知道这个 "恐怖 "是什么。

顺便说一下,雷纳特-法特库林, 看看例子的确很有意思......

 
George Merts:

不,可以理解的是,如果你是一个记忆力强、遗忘能力萎缩的泰斗,那么你很幸运,你不需要OOP。但不是每个人都这么幸运。

因此,SanSanych建议用文档代替OOP,这也是一个选择,原则上来说,更接近于Peter提出的结构。只是彼得的文件是 "在心里",而桑桑尼茨的文件是在纸上(或电子媒体上)。

变量的含义在任何情况下都必须知道,但没有必要记住--如果上下文不清楚,你可以写一个注释。这似乎很明显。

使用OOP,你必须记住和记录更多的东西,即什么是在什么时候创建和销毁的,在什么时候通过哪些接口流动,以及其他对最终结果绝对无用的鼠标小动作--仅仅从这一点来看,任何正常的人都会发疯并打破他的大脑。

 

顺便说一句,对于所有反对OOP的人来说--最好能记住用汇编语言编写程序的时代。

尤其是 - 使用BIOS和DOS处理文件。

在我看来,程序化和OOP方法之间的区别就像用BIOS和DOS工具处理磁盘一样。

BIOS和DOS都有使用磁盘所需的所有功能。

然而,创建一个具有BIOS功能的文件并在那里写下 "Hello, world !"即使对FAT驱动器来说也是一个相当大的问题。我曾经在打赌时做过,这对我来说并不容易。在DOS中,只用一个函数就可以轻松做到。

我可以想象,使用BIOS为NTFS系统创建这样的文件会有多困难......

 
Andrei:

仔细阅读,这是关于类,而不是类的构造函数。

此外,你再次建议做一个猴子的工作--在地块上种田,如果我们可以在不做任何事情的情况下访问参数的外部变量或直接传递它们,而不需要任何不必要的头痛的构造函数-分解函数和所有随之而来的内存泄漏。


是的,我需要进去,你在这里给我看门。你可能不知道什么是类构造函数

只是一般的参数--它们在类里面已经是可见的了,但使用它们并不好,OOP对逃离公共空间的能力有好处。

而直接如何?如果不通过门,那就通过墙?通过构造函数,就像直接传递一样。你可以在创建一个对象时立即传递参数,甚至不需要new。所以你懒得描述类必须接受的参数?你不是懒得写函数和声明变量吗?

你显然没有理解我所写的任何东西))。

 

Dmitry Fedoseev:

你不是懒得写函数和声明变量吗?

你必须到处写函数和声明变量,在OOP中也是如此。只有在使用OOP的时候才会有更多的麻烦,那就是如果你提前预见到了一切,在项目结束的时候,数据结构 会是什么,这样你就不必重写一百次。这似乎很明显。

 
Andrei:

你必须到处写函数和声明变量,在OOP中也是如此。只有在OOP中,才会有更多的挑剔,那就是如果你提前预见到了一切,在项目结束后会有什么样的数据结构,这样你就不用重写一百次了。这似乎很明显。


这比较麻烦,但有很多情况下是值得的。一般来说,这不是致命的。

 
Dmitry Fedoseev:

这比较麻烦,但有很多情况是值得的。一般来说,这不是致命的。

你知道,当它值得麻烦时--当你按小时付费时,因为那时越是大惊小怪越是有利可图。:)
 
Dmitry Fedoseev:

你在你的这个图书馆工作了多长时间?

两年来不间断的工作。

GUI内核(顺便说一下,也有一个包含原型元素的原核。它占用了2兆字节。它由诸如我所引用的表格组成),并包含数千个变量。你认为如果我不以内核为中心,将变量分散在类和结构中,并通过各种访问限制在它们之间设置通信,我是否能应付我的任务?-从不靠 自己。我本想在我的程序中乘以实体的数量。代码中函数和类之间的联系会变得如此复杂,以至于我根本无法继续自己的工作。整个机制的效率会急剧下降。

我本来会更早地达到我的极限并停止。

很多时候,我问自己:"如果我使用OOP,我会取得什么成就?"每一次,根据日常的实践,我都意识到我自己不可能走那么远。

另外,我的思维是结构化的,因此在这方面我不需要OOP。

 
Renat Fatkhullin:

为了高兴--R是以绝对令人厌恶的 "全部在一个垃圾桶里,没有区别对待的访问 "模式写的。二十年前的老式方法,没有可见性、保护性或多会话的领域。我写的东西就像我是唯一的人一样。是的,这个项目是由不专业的开发者在一个人手下诞生的。它必须从头开始重写。至少有一次。

我有一个想法,想在R中用MQL5做一个正常的界面,但在深入研究后,我立即决定不整合它。该系统断然无法保护数据和会话。

除非一个程序员在有严格要求的正常开发团队中工作(至少敲打他的手几年),否则他不会成为正常意义上的开发者。我们在考虑候选人时,90%的时间都是抓着脑袋看测试工作。整个开发行业的全面恐怖。

因此,OOP的反对者又一次在这里表现出某种愚蠢的行为。

再次抱歉。


雷纳特,请不要紧张。我自己不是R的支持者。你是一个优秀的管理者和程序员,不要把论坛上的喊话放在心上。

我祝愿你和拉希德以及你的团队身体健康,创作成功!