OOP vs. prozedurale Programmierung - Seite 41

 
George Merts:

Du gehst zu einem Auto, das im Verkehr steht, schaust dir an, wie es eingestellt ist - und sagst dem Fahrer: "Gibt es einen cooleren Weg, das Problem zu verwirren, es ist hundert Meter entfernt".

Meine Erfahrung zeigt, dass solche "komplizierten Probleme" viel leichter zu verstehen sind als "problemlose" EAs, die durch Kopieren von einer einzigen Vorlage mit allen globalen Variablen erstellt wurden.


Georges, ich habe mich kürzlich mit einer alten Freundin von mir getroffen, sie ist Buchhalterin und versucht, die 1C zu meistern. Im Jahr 2007 versuchte sie, ihr Futter zu finden, und da erfuhr ich von MQL4.

Ich habe einen Blick auf diese 1C geworfen, und mir wurde übel ))

 
Реter Konow:

Zwei Jahre ununterbrochene Arbeit.

Der Kern der grafischen Oberfläche (es gibt übrigens auch einen Proto-Kern, 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 mir oft die Frage gestellt: "Was hätte ich erreicht, wenn ich OOP verwendet hätte?", und jedes Mal habe ich in der täglichen Praxis festgestellt, dass ich allein nicht so weit gekommen wäre.

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


Ich habe in meinen Artikeln eine Bibliothek mit grafischen Steuerelementen (die natürlich auch Mängel hat) - das war in vierzehn Tagen erledigt, und zwei Wochen, um den Artikel zu schreiben. Einige Jahre später benutzte ich es, als ich einen anderen Artikel schrieb - alles fiel mir sofort ein, als ich die Dropdown-Liste der Methoden betrachtete, ohne mir den Artikel oder den Code anzusehen.

 
Dmitry Fedoseev:

Ich habe in meinen Artikeln eine Bibliothek mit grafischen Steuerelementen (die natürlich auch Mängel hat) - sie wurde in zwei Wochen erstellt, und zwei Wochen, um den Artikel zu schreiben. Einige Jahre später benutzte ich es, als ich einen anderen Artikel schrieb - mir fiel fast alles sofort ein, wenn ich die Dropdown-Liste der Methoden ansah, ohne den Artikel oder den Code zu lesen.

Ich will Ihre Arbeit nicht schmälern oder meine eigene hervorheben, aber Sie vergleichen hier einen Elefanten mit einem Mosey. Der Maßstab ist ein anderer. Der Grad der Komplexität ist unterschiedlich. Ich habe nicht nur eine Reihe von Kontrollen. Es handelt sich um eine vollständige grafische Umgebung, die Sie mit Ihrer eigenen Auszeichnungssprache erstellen können. Und sie ist gezeichnet, nicht objektbasiert.
 
Реter Konow:
Ich will Ihre Arbeit nicht schmälern oder meine hervorheben, aber Sie vergleichen hier einen Elefanten mit einem Maulwurf. Der Maßstab ist ein anderer. Der Grad der Komplexität ist unterschiedlich. Ich habe nicht nur eine Reihe von Kontrollen. Es handelt sich um eine vollständige grafische Umgebung, die Sie mit Ihrer eigenen Auszeichnungssprache erstellen können. Und sie ist gezeichnet, nicht objektbasiert.

Es handelt sich jedoch nicht um einen Zweijahresjob. Der Arbeitsaufwand ist vergleichbar mit der Verwendung von grafischen Objekten, aber natürlich mit dem richtigen Ansatz. Aber zwei Jahre damit zu verbringen... Entschuldigung, rutschen Sie rüber.

Wir fügen die Erstellung von Canvas hinzu, aber es ist in einer übergeordneten Klasse, wir machen eine Methode zum Zeichnen eines Rechtecks und ein paar Methoden zum Zeichnen der einfachsten geometrischen Formen. Alles andere ist genau dasselbe.

Und dass Sie alle meine Arbeit herabwürdigen wollen, ist mir längst klar, so dass es keiner Vorrede bedarf. Diese Bibliothek hier ist wie ein Stein des Anstoßes, der die Menge in Massenhysterie versetzt hat.

 
Dmitry Fedoseev:

Es handelt sich jedoch nicht um einen Zweijahresjob. Der Arbeitsaufwand ist vergleichbar mit der Verwendung von grafischen Objekten, aber natürlich mit dem richtigen Ansatz. Aber zwei Jahre damit zu verbringen... Entschuldigung, rutschen Sie rüber.

Und dass Sie alle meine Arbeit demütigen wollen, habe ich längst begriffen, so dass es keiner Vorrede bedarf. Diese Bibliothek hier ist wie ein Stein des Anstoßes, der die Menge in Massenhysterie versetzt.

Es liegt nicht in meiner Natur, Menschen ohne Grund zu demütigen. Werd nicht schnippisch. Du verstehst es einfach nicht. Ich kann es wahrscheinlich nicht erklären. Betrachten Sie sich also als die "Schlange gorynych").
 
Реter Konow:
Es liegt nicht in meiner Natur, Menschen ohne Grund zu demütigen. Sei nicht so streng mit dir, du verstehst es einfach nicht. Ich werde es wahrscheinlich nicht erklären können. Betrachten Sie sich also als die "Schlange gorynych").

Denken Sie selbst, aber ich schreibe nicht zwei Jahre lang, was in einem Monat erledigt werden kann.

 
Dmitry Fedoseev:

Denken Sie selbst, aber ich schreibe nicht zwei Jahre lang, was in einem Monat erledigt werden kann.

Dann tun Sie es, wo ist das Problem?
 
Реter Konow:
Dann tun Sie es, wo ist das Problem?
Das brauche ich nicht.
 
George Merts:


SanSanych drüben schlägt vor, OOP durch Dokumentation zu ersetzen.

Sie sind derjenige, der diese Idee hatte - ich schlage sie nicht vor.

Aus meiner Praxis.

  • Die ToR ist ein Dokument von weit über 400 Seiten. Die ToR wird überprüft und genehmigt
  • Dann das technische Projekt. Dieses Dokument wurde von 40 bis 50 Personen erstellt. Von Beruf waren sie: Wirtschaftswissenschaftler verschiedener Fachrichtungen, Mathematiker, Algorithmenentwickler, Sysadmins in der heutigen Terminologie, Elektronikingenieure.
  • Dann der Arbeitsentwurf. Hier erscheint die Aufteilung in Funktionsprogramme. Die eigentliche Kodierung und Fehlersuche ist abgeschlossen. Dokumentation wird erstellt: für Entwickler, verschiedene Benutzer in der CPU, verschiedene Anwendungsbenutzer (Management, mittleres Management, Dispatcher...).
  • Außerdem gibt es einen Probebetrieb. Der wichtigste Indikator ist die mittlere Zeit zwischen zwei Ausfällen. Wenn alles richtig gemacht und dokumentiert wird und das Prinzip der primitiven Kodierung berücksichtigt wird, sollte die Zeit zwischen den Ausfällen nach dem nächsten Auftreten von Fehlern exponentiell abnehmen. Wenn sie linear ist, wird sie höchstwahrscheinlich überhaupt NIE funktionieren.

Wo ist hier das OOP? OOP ist eine Unternehmensanforderung während der Entwicklung. Und es hat wenig Einfluss auf das Endergebnis, aber es kann sehr nützlich sein (so scheint es mir), wenn eine Person gefunden wird und alle Klassen für das gesamte Projekt entwickelt, wird nichts durcheinander bringen, die Klassen werden natürlich vom Endziel des Projekts sein....

 
Weichen Sie bitte nicht vom Thema des Threads ab.