OOP vs. prozedurale Programmierung - Seite 13

 
Alexey Navoykov:

Was verstehen Sie unter Lösungseffizienz?

Mit Lösungseffizienz meine ich die Qualität der Lösung, bei der der Mechanismus - und die Software ist zweifellos ein Mechanismus - auf die stabilste Weise funktioniert. Der Mechanismus sollte klar, kohärent und produktiv sein. Die Funktionalität der Maschine sollte alle ihr zugewiesenen Aufgaben erfüllen. Der Mechanismus akzeptiert nichts Überflüssiges, und bei der Entwicklung dieses Mechanismus sollte alles Überflüssige abgeschnitten werden.

Andernfalls wird es entweder keine Entwicklung oder keine Effizienz geben.

Dies ist nur meine Meinung und ich will sie niemandem aufzwingen.

 
Комбинатор:

Ich bin kein Fan von OOP.

Aber im Hinblick auf Wartbarkeit, Skalierbarkeit und einfache Nutzung durch Dritte ist das, was TC (Peter, nicht Karputov) vorantreibt, einfach steinzeitlich.

Ich bin der festen Überzeugung, dass jeder Programmierer in einem Team arbeiten sollte, idealerweise mit mehr als 4 Personen, um zu verstehen, dass Effizienz und Universalität von Code nicht bedeuten, dass dieser Code gut ist.

Warum brauchen wir "guten", aber nicht unbedingt effizienten Code? Programmieren ist keine "Poesie" und der Wert von "Kunst" ist gleich Null. Mechanismen werden nicht nach ihrer Schönheit, sondern nach ihrer Effizienz beurteilt. Der Code ist ein Mechanismus.
 
Реter Konow:

Ich möchte hier keinen Chor bilden, aber ich frage mich, ob die Befürworter von OOP einen Code vorlegen können, der ein Problem löst, bei dem klar erkennbar ist, dass diese Lösung effizienter ist als eine Lösung ohne OOP?


Ich bin ein Meister im Lösen von Problemen ohne OOP und würde gerne gegen einen Meister im Lösen von Problemen mit OOP kämpfen.


Ich will versuchen, es Ihnen zu erklären: Nehmen wir an, Sie sind ein Macher und haben einen Kunden, der Ihnen immer wieder Arbeit gibt. Und nach 5-6 Aufträgen stellen Sie fest, dass sich alle seine Aufgaben in irgendeiner Weise ähneln... Und dass man sie zu einem Muster kombinieren kann... Und der Kunde kombiniert diese Vorlagen auch gerne in großen Mengen miteinander... Und wenn der Kunde wieder eine schwierige Aufgabe stellt, müssen Sie nur die erforderliche Anzahl von Instanzen (sagen wir 10) dieser Vorlage (Klasse) erstellen und für jede von ihnen die Eigenschaften (im Konstruktor) festlegen, die dem Kunden aufgefallen sind... Letztendlich wird die Entscheidung, einen Auftrag zu eröffnen, einfach auf einer Schleife basieren, die das Ergebnis in jeder der 10 Instanzen sieht, und das war's... Sie können solche Aufträge in 5 Minuten vernieten...

Aber Sie werden nicht in der Lage sein, eine Instanz ohne OOP zu erstellen, und Sie werden fast alles neu machen müssen, in der Hoffnung, dass die Änderungen das, was Sie haben, nicht kaputt machen... Infolgedessen werden Sie viel mehr Zeit aufwenden...


Fazit: Ein Programmierer, der OOP kennt, wird Probleme (die für OOP geeignet sind) viel schneller und mit weniger Fehlern lösen können...

 
Nikolay Ivanov:


Lassen Sie mich versuchen, das zu erklären: Nehmen wir an, Sie sind ein Künstler und haben einen Kunden, der Ihnen ständig Arbeit gibt... Und nach fünf oder sechs Aufträgen merkt man dann, dass alle seine Aufgaben in gewisser Weise gleich sind... Und dass man sie zu einem Muster kombinieren kann... Und der Kunde kombiniert diese Vorlagen auch gerne in großen Mengen miteinander... Und wenn der Kunde wieder eine schwierige Aufgabe stellt, müssen Sie nur die erforderliche Anzahl von Instanzen (sagen wir 10) dieser Vorlage (Klasse) erstellen und für jede von ihnen die Eigenschaften (im Konstruktor) festlegen, die dem Kunden in den Sinn kamen... Letztendlich wird die Entscheidung, einen Auftrag zu eröffnen, einfach auf der Grundlage einer Schleife getroffen, die das Ergebnis in jeder der 10 Instanzen anzeigt, und das war's... Sie können solche Aufträge in 5 Minuten vernieten...

Aber Sie werden nicht in der Lage sein, eine Instanz ohne OOP zu erstellen, und Sie werden fast alles neu machen müssen, in der Hoffnung, dass die Änderungen das, was Sie haben, nicht kaputt machen... Infolgedessen werden Sie viel mehr Zeit aufwenden...


Fazit: Ein Programmierer, der OOP beherrscht, wird in der Lage sein, Probleme (die für OOP geeignet sind) viel schneller und mit weniger Fehlern zu lösen...

Sie könnten Recht haben. Ich habe noch nie Bestellungen gemacht und weiß nicht, was die Kunden wollen. Was Sie beschreiben, sieht eher nach Routinearbeit aus, während ich hier von Entwicklung spreche. Wahrscheinlich ist OOP für die Routinearbeit (die auch von einem Team erledigt wird) unersetzlich. Ich habe keine solche Erfahrung und weiß es einfach nicht.

Und können Sie ein konkretes Beispiel für diese Einzelaufgaben nennen, die man besser nicht ohne OOP erledigt?

 
Комбинатор:

Ich bin kein Fan von OOP.

Aber im Hinblick auf Wartbarkeit, Skalierbarkeit und einfache Nutzung durch Dritte ist das, was TC (Peter, nicht Karputov) vorantreibt, einfach steinzeitlich.

Ich bin fest davon überzeugt, dass jeder Programmierer in einem Team arbeiten muss, idealerweise mit mehr als 4 Personen, um zu verstehen, dass die Effizienz und Allgemeinheit des Codes nicht bedeutet, dass der Code gut ist.


Oh, die Arbeit im Team ist ein eigenes Lied! Und ein Team von Programmierern zu leiten, ist in gleichem Maße wie die Anzahl der Teilnehmer ein Lied.

Ich erzähle Ihnen eine Geschichte von einem Samstagabend. Über die Zeiten, in denen unsere Firma immer wieder in Eisen getaucht wurde. Falls es sich wiederholt, bitte ich um Entschuldigung, vielleicht habe ich die Geschichte schon vor einiger Zeit durchgesehen.

Mein Chef rief mich zu sich und fragte: "Sind Sie zu sehr mit der Arbeit beschäftigt? Ich sagte: "Eigentlich nicht.

-Was machen Sie jetzt eigentlich? Der Chef wusste nie, was ich mache, weil ich mir einen persönlichen Zeitplan gemacht habe, der ständige Abwesenheit beinhaltete).

Ich sagte: "Ja, ich schreibe gerade ein Testpaket für unsere Geräte. Der Chef freute sich: "Großartig, gerade noch rechtzeitig, um es in Sibirien zu probieren". Alexey, wir müssen rüberfliegen, die Jungs sitzen dort fest, sie finden es nicht heraus. Ich liebte Geschäftsreisen, ich hatte völlige Freiheit.

Ich fliege nach Krasnojarsk, meine Jungs treffen mich und sehen mich an, sie sehen alle schuldbewusst aus. Wir gingen in ein Cafe, tranken etwas und kamen ins Gespräch. Ich fragte ihn, was mit dir los sei. Der Chef war perplex: Sie waren drei Monate lang auf Geschäftsreise und saßen an einem Punkt fest. Er hat nur Zeit, Ihnen Geld zu überweisen.

Nun, sie sind in der Öffentlichkeit präsent. Sie fuhren in ein sibirisches Dorf und übernachteten in einer Herberge, in der zwei junge Schwestern wohnten. Also wurde Liebe gesponnen und Freunde wurden hinzugezogen, um niemanden zu beleidigen.

Ich habe ihnen gesagt, dass ich dich nicht ausliefere, so bin ich auch. Aber wir müssen das Tempo beibehalten. Lass uns einfach den ganzen Kranz einstellen, nur noch ein paar Kilometer, 500 Kilometer, dann gebe ich dir einen Bonus, ich ringe dem Chef das Geld ab und du feierst mit diesen Freunden das neue Jahr, okay?

Jetzt werden die Frauen empört sein, aber Lekha war die erste, die zustimmte und sagte: "Meine Frau soll gebären, ich bleibe lieber noch eine Weile hier! Alle waren verheiratet, und aus irgendeinem Grund wollte keiner von ihnen nach Hause zurückkehren).

Andererseits verstand ich aus dem Bauch heraus, wie hart die Jungs arbeiten konnten, wenn junge, schöne sibirische Mädchen auf sie warteten).

 

Das ist überhaupt kein Argument.
Jede Aufgabe kann mit oder ohne OOP gelöst werden. Ohne OOP können Sie auch leicht einheitliche Funktionen erstellen, die oft verwendet werden und das gesamte Programm nicht durch Änderungen, die Sie einführen, beschädigen. Mit OOP gibt es ein bisschen mehr Code. Wird die Lesbarkeit durch die Verwendung von OOP verbessert? Ich weiß es nicht.
Ich habe jede Klasse in einer eigenen Datei gespeichert und jede Funktion ebenfalls in einer eigenen Datei. Das ist eine Frage der Gewohnheit und der Bequemlichkeit.

 

Ein weiteres einfaches Beispiel, das ganz an der Oberfläche liegt... EA-Generator in MetaEditor... Jeder, auch wenn er keine Ahnung vom Programmieren hat, kann in 10 Sekunden einen EA mit einer Vielzahl von Indikatoren und Bedingungen zusammenschustern))) Und all das ist OOP ))


 
Alexey Oreshkin:

Es gibt überhaupt keinen Grund zum Streiten.
Jede Aufgabe kann mit oder ohne OOP gelöst werden. Sie können auch leicht einheitliche Funktionen ohne OOP erstellen, die viele Male verwendet werden, und das gesamte Programm wird nicht durch Änderungen, die Sie einführen, beschädigt. Mit OOP gibt es ein bisschen mehr Code. Wird die Lesbarkeit durch die Verwendung von OOP verbessert? Ich weiß es nicht.
Ich habe jede Klasse in einer eigenen Datei gespeichert und jede Funktion ebenfalls in einer eigenen Datei. Das ist eine Frage der Gewohnheit und der Bequemlichkeit.


Hier in diesem Thread gab es ein Beispiel für ein Problem, das ohne OOP gelöst werden kann, aber auf eine sehr irrationale Weise.

 
Alexey Oreshkin:

Das ist überhaupt kein Argument.
Jede Aufgabe kann mit oder ohne OOP gelöst werden. Ohne OOP können Sie auch leicht einheitliche Funktionen erstellen, die oft verwendet werden und das gesamte Programm nicht durch Änderungen, die Sie einführen, beschädigen. Mit OOP gibt es ein bisschen mehr Code. Wird die Lesbarkeit durch die Verwendung von OOP verbessert? Ich weiß es nicht.
Ich habe jede Klasse in einer eigenen Datei gespeichert und jede Funktion ebenfalls in einer eigenen Datei. Das ist eine Frage der Gewohnheit und der Bequemlichkeit.

Ich kann mit Sicherheit sagen, dass ich OOP in meiner persönlichen Entwicklung nicht brauche, aber ich bin mir nicht so sicher, was die Teamarbeit an einem großen Projekt angeht. Das Entwickeln und Verknüpfen von Code, der von verschiedenen Programmierern erstellt wurde, ist mir noch nie in den Sinn gekommen, und ich weiß nicht, wie ich es auf meine Weise umsetzen würde. Dies ist das einzige Argument für OOP in der Entwicklung, das ich derzeit akzeptiere.
 
Реter Konow:
Ich kann mit Sicherheit sagen, dass ich OOP in der persönlichen Entwicklung nicht brauche, aber ich bin mir nicht sicher, was die Teamarbeit in einem großen Projekt angeht. Die Entwicklung und Kommunikation von Code, der von verschiedenen Programmierern erstellt wurde, ist mir nie in den Sinn gekommen, und ich weiß nicht, wie ich das auf meine Weise umsetzen würde. Dies ist das einzige Argument für OOP in der Entwicklung, das ich derzeit akzeptiere.

Dies ist nicht das Hauptargument.

Es gibt keine Entsprechung von Polymorphismus in der prozeduralen Programmierung.

Grund der Beschwerde: