Natürlich kann man jedes Coding unübersichtlich machen. Ein 2.000-Zeilen-Monolith ohne Unterprogramme und lokale Variablen ist aber per Definition nicht übersichtlich. Wenn ich kleine Einheiten verwende, kann ich die ändern, ohne das Umfeld anpassen (und testen!) zu müssen. Dann ändere und teste ich genau das, was ich ändern will, ohne irgendwo bestehende Funktionen kaputtzumachen.Daniel hat geschrieben:So ähnlich wird das seit 40 Jahren für jede neue Idee proklamiert.
Bis heute arbeiten Prozessoren aber noch nicht so und jede weitere
Abstraktionsebene bringt zusätzliche Fehlerquellen.
Ein Programm mit 2000 Zeilen kann sehr übersichtlich sein wenn es
vernünftig gemacht ist. Mit vielen kleinen Modulen kann man ein
Programm sehr unübersichtlich machen. Das ist keine Frage des
Werkzeugs sondern eine des Handwerks.
Folgende Benutzer bedankten sich beim Autor Daniel für den Beitrag:
DeathAndPain
Mit einer FORM? Wer hat nochmal gesagt, dass er sich ein GOTO wünscht, weil eine FORM ihm zu aufwendig ist?Daniel hat geschrieben:Genau das kann man auch in einer Form oder einem FuBa.
Macht keinen Unterschied. Und ich warte Programme die
wesentlich größer sind. So 20- oder 30.000 Zeilen.
Keine Ahnung, ich nicht.Wer hat nochmal gesagt, dass er sich ein GOTO wünscht, weil eine FORM ihm zu aufwendig ist?
Sicher mehr als eineMit einer FORM?
Kann man. Ist aber ziemlich schlechter Stil. Da muss die Not schonSchon deshalb, weil du einem Funktionsbaustein kein Coding mitgeben kannst
Dann habe ich das Gespräch bestimmt geträumt. Interessanterweise erinnert sich meine Frau noch dran, dass ich ihr damals davon erzählt habe. Aber egal.Daniel hat geschrieben:Keine Ahnung, ich nicht.Wer hat nochmal gesagt, dass er sich ein GOTO wünscht, weil eine FORM ihm zu aufwendig ist?
Mit schlechtem Stil kann man immer alles machen. Es ist nicht vorgesehen und mit normalen Mitteln nicht möglich (klar kann man Text übergeben und damit alles Mögliche machen). Code Injection von außen ist aber nicht nur schlechter Stil, sondern ein Verfahren, das an Intransparenz nicht zu toppen ist. Im OO ist das ein Standardverfahren und das Coding ist auch normales Coding, das man nicht suchen muss, um es zu auditieren und zu warten.Daniel hat geschrieben:Kann man. Ist aber ziemlich schlechter Stil. Da muss die Not schonSchon deshalb, weil du einem Funktionsbaustein kein Coding mitgeben kannst
sehr groß sein. Aber ich gestehe ich habe es auch schon gemacht.
Code Injection ist überhaupt nur dann sinnvoll, wenn es eine geregelte Implementierung dafür gibt. Überspitzendes Beispiel: Wenn ich eine Textdatei mit ABAP-Coding hochladen und das ausführe, ist das gewaltiger Mist. Wenn es aber definierte Datenobjekte gibt, zu denen Coding GEHÖRT, das jeder sehen und warten kann, ist das etwas vollkommen anderes. Dafür ist es aber nötig, dass Daten und Coding eine Einheit bilden, was ohne OO im ABAP schon nicht der Fall ist.Daniel hat geschrieben:Also ist Code Injection nur gut wenn es mit OO gemacht wird?
Ich glaube wir beenden das jetzt besser.
Das habe ich nie gesagt, genau das Gegenteil ist richtig.Für dich ist OO im SAP Mist, immer und in jedem Kontext, das weiß ich seit vielen Jahren.
Wer will denn nur OO machen?Für jemanden mit einem Hammer ist jedes Problem ein Nagel.
Das ist absolut nicht nötig. Wie kommst du auf das schmale Brett?Dafür ist es aber nötig, dass Daten und Coding eine Einheit bilden
Methoden sind für so was sicher die bessere Wahl- aber dass das mit FuBas oder gar FORMs nicht gehen soll wage ich zu bezweifeln. Man muss halt nur sauber die Schnittstellen definieren was einem ein Interface abnimmtralf.wenzel hat geschrieben:Und nein, du kannst nicht alles mit Funktionsbausteinen erschlagen. Schon deshalb, weil du einem Funktionsbaustein kein Coding mitgeben kannst (was bei einer Methode kein Problem ist), ein Beispiel dafür gibt es hier.
Du wirst keins finden. Das Problem ist daß du immer nur hörst was du hören möchtest,Ehe ich jetzt noch Mails von dir raussuche, in denen genau das steht, lassen wir das wirklich besser.
Sicher nicht, es ist ja nicht einmal wahr.Dass eine Klasse einer Funktionsgruppe funktionell überlegen ist, dafür kann ich nix.