OOP vs. prozedurale Programmierung - Seite 40

 
Andrei:

Genau, von einer bestimmten Person. Warum sollte ein Programmierer, der nicht an Schizophrenie leidet, den Zugang zu einem Teil seines eigenen Codes, den er gerade debuggt, mühsam vor sich selbst verbergen? Würden Sie sich nicht lieber selbst die Hände binden? :)

Wie gesagt, versuchen Sie es mit der Strukturdatei, die Peter oben angegeben hat. "Holen" Sie sich die benötigten Daten von dort und stellen Sie sie dann wieder an der richtigen Stelle ein.

Vergleichen Sie das mit den Daten, die Sie von einer "beschnittenen" Schnittstelle erhalten, die Ihnen nur einen winzigen Teil der gleichen Struktur bietet. Bei einer Schnittstelle gibt es einfach keine Möglichkeit, etwas anderes zu bekommen oder etwas "falsch" zu schreiben.

Nein, es ist verständlich, dass Sie, wenn Sie ein Titan des Gedächtnisses mit verkümmertem Vergessensvermögen sind, Glück haben und kein OOP brauchen. Aber nicht jeder hat so viel Glück.

SanSanych bietet also an, OOP durch Dokumentation zu ersetzen - im Prinzip ist das auch eine Option, denn es kommt den von Peter vorgeschlagenen Strukturen viel näher. Aber bei Peter sind alle Unterlagen "im Kopf" und bei SanSanych - auf Papier (oder auf elektronischen Medien).

 
Andrei:

Ich frage mich, was dieser "Horror" ist.

Übrigens, Renat Fatkhullin, es wäre in der Tat interessant, sich Beispiele anzuschauen...

 
George Merts:

Nein, es ist verständlich, dass Sie, wenn Sie ein Titan des Auswendiglernens mit einer verkümmerten Fähigkeit zum Vergessen sind, Glück haben und kein OOP brauchen. Aber nicht jeder hat so viel Glück.

So schlägt SanSanych vor, OOP durch Dokumentation zu ersetzen, was im Prinzip auch eine Option ist, die den von Peter vorgeschlagenen Strukturen viel näher kommt. Aber Peters Unterlagen sind alle "im Kopf", während die von SanSanych auf Papier (oder auf einem elektronischen Medium) sind.

Die Bedeutung einer Variablen muss in jedem Fall bekannt sein, aber man muss sie sich nicht merken - man kann einen Kommentar schreiben, wenn der Zusammenhang unklar ist. Das scheint offensichtlich.

Bei OOP muss man sich viel mehr merken und dokumentieren, nämlich, was wann und zu welchem Zeitpunkt erzeugt und zerstört wird, durch welche Schnittstellen zu welchem Zeitpunkt fließt und anderes für das Endergebnis absolut nutzloses Mausgetue - allein davon kann jeder vernünftige Mensch verrückt werden und sich das Gehirn zermartern.

 

Übrigens, an alle Gegner von OOP - es wäre gut, sich an die Zeiten zu erinnern, als Programme noch in Assembler geschrieben wurden.

Und vor allem - die Arbeit mit Dateien unter BIOS und DOS.

Meiner Meinung nach ist der Unterschied zwischen prozeduralen und OOP-Ansätzen derselbe wie bei der Handhabung von Festplatten mit BIOS- und DOS-Tools.

Sowohl BIOS als auch DOS verfügen über alle Funktionen, die für die Arbeit mit der Festplatte erforderlich sind.

Eine Datei mit BIOS-Funktionen zu erstellen und dort "Hallo, Welt!" zu schreiben, ist jedoch selbst für FAT-Laufwerke ein ziemlich großes Problem. Früher habe ich das bei einer Wette gemacht, und es war nicht einfach für mich. Unter DOS ist das mit einer einzigen Funktion leicht zu bewerkstelligen.

Ich kann mir vorstellen, wie schwierig es wäre, eine solche Datei für ein NTFS-System mit BIOS zu erstellen...

 
Andrei:

Lesen Sie genau, es geht um die Klasse, nicht um den Klassenkonstruktor.

Außerdem schlagen Sie wieder vor, einen Affenjob zu machen - ein Feld auf einem Grundstück zu pflanzen, wenn wir Zugriff auf Parameter haben können, ohne irgendetwas im Falle von externen Variablen zu tun oder sie direkt zu übergeben, ohne unnötige Kopfschmerzen mit Konstruktoren-Destruktoren und all den dazugehörigen Speicherlecks.


Ja, ich muss da rein und du zeigst mir die Tür hier. Sie wissen wahrscheinlich nicht, was ein Klassenkonstruktor ist.

Nur allgemeine Parameter - sie sind bereits innerhalb der Klasse sichtbar, aber sie zu verwenden ist nicht gut, OOP ist gut für die Fähigkeit, aus dem gemeinsamen Raum zu entkommen.

Und wie direkt? Wenn nicht durch eine Tür, dann durch eine Wand? Die Übergabe über den Konstruktor ist genauso wie die direkte Übergabe. Sie können Parameter sofort bei der Erstellung eines Objekts übergeben, auch ohne new. Sie sind also zu faul, die Parameter zu beschreiben, die die Klasse akzeptieren muss? Sind Sie nicht zu faul, Funktionen zu schreiben und Variablen zu deklarieren?

Sie haben offensichtlich nichts von dem verstanden, was ich geschrieben habe.)

 

Dmitry Fedoseev:

Sind Sie nicht zu faul, Funktionen zu schreiben und Variablen zu deklarieren?

Sie müssen überall Funktionen schreiben und Variablen deklarieren, auch in der OOP. Nur bei OOP wird man viel mehr Aufhebens darum machen, und zwar dann, wenn man im Voraus prophetisch voraussieht, wie die Datenstruktur am Ende des Projekts aussehen wird, so dass man sie nicht hundertmal neu schreiben muss. Das scheint offensichtlich.

 
Andrei:

Sie müssen überall Funktionen schreiben und Variablen deklarieren, auch in der OOP. Nur in OOP wird es viel aufwändiger, und zwar dann, wenn man im Voraus prophetisch voraussieht, welche Datenstruktur am Ende des Projekts vorhanden sein wird, so dass man sie nicht hundertmal neu schreiben muss. Das scheint offensichtlich.


Es ist zwar mühsamer, aber es gibt viele Fälle, in denen es sich lohnt. Im Allgemeinen ist sie nicht tödlich.

 
Dmitry Fedoseev:

Es ist zwar mühsamer, aber es gibt viele Fälle, in denen es sich lohnt. Im Allgemeinen ist es nicht tödlich.

Sie wissen schon, wenn es die Mühe wert ist - wenn Sie nach Stunden bezahlen, denn je mehr Aufwand, desto mehr Gewinn. :)
 
Dmitry Fedoseev:

Wie lange arbeiten Sie schon an Ihrer Bibliothek?

Zwei Jahre ununterbrochene Arbeit.

Der GUI-Kernel (es gibt übrigens auch einen Proto-Kernel, der Prototyp-Elemente enthält. Sie belegt 2 Megabyte. Sie besteht aus solchen Tabellen wie der von mir zitierten und enthält Tausende von Variablen. Glauben Sie, dass ich meine Aufgabe bewältigt hätte, wenn ich nicht den Kernel als Zentrum verwendet und die Variablen über Klassen und Strukturen verstreut und die Kommunikation zwischen ihnen über verschiedene Zugriffsbeschränkungen eingerichtet hätte? - Ich bin nie allein. Ich hätte die Anzahl der Entitäten in meinem Programm vervielfacht. Die Verknüpfungen innerhalb des Codes zwischen Funktionen und Klassen würden so komplex werden, dass ich nicht mehr alleine weiterarbeiten könnte. Die Effizienz des gesamten Mechanismus wäre drastisch gesunken.

Ich hätte mein Limit viel früher erreicht und aufgehört.

Ich habe mich oft gefragt: "Was hätte ich erreicht, wenn ich OOP verwendet hätte?", und jedes Mal wurde mir in der täglichen Praxis klar, dass ich allein nicht so weit hätte kommen können.

Außerdem ist mein Denken bereits strukturiert, so dass ich in dieser Hinsicht keinen Bedarf an OOP habe.

 
Renat Fatkhullin:

Um der Freude willen - R ist in einem absolut ekelhaften "alles in einem Mülleimer ohne Differenzierung des Zugriffs" Modus geschrieben. Ein veralteter Ansatz von vor zwanzig Jahren, ohne Bereiche der Sichtbarkeit, des Schutzes oder der Multisession. Ich schreibe, als ob ich der Einzige wäre. Ja, das Projekt wurde unter einer Person von unprofessionellen Entwicklern geboren. Sie muss von Grund auf neu geschrieben werden. Wenigstens einmal.

Ich hatte die Idee, aus MQL5 eine normale Schnittstelle in R zu machen, aber nachdem ich mich näher damit beschäftigt hatte, entschied ich mich sofort dagegen, sie zu integrieren. Das System ist kategorisch nicht in der Lage, Daten und Sitzungen zu schützen.

Solange ein Programmierer nicht in normalen Entwicklungsteams mit strengen Anforderungen arbeitet (und sich dabei mindestens ein paar Jahre lang die Hände schmutzig macht), wird er nicht zu einem Entwickler im normalen Sinne. In 90 % der Fälle fassen wir uns an den Kopf, wenn wir uns bei der Auswahl von Bewerbern Testaufgaben ansehen. Totales Entsetzen in der gesamten Entwicklungsindustrie.

Also noch einmal - die Gegner von OOP stellen hier eine Art von Possenreißer dar.

Nochmals Entschuldigung.


Renat, sei bitte nicht nervös. Ich selbst bin kein Befürworter von R. Sie sind ein ausgezeichneter Manager und Programmierer, nehmen Sie sich das Geschrei im Forum nicht zu Herzen.

Ich wünsche Ihnen und Rashid und Ihrem Team viel Gesundheit und kreativen Erfolg!

Grund der Beschwerde: