babap hat geschrieben:naja, etwas OO-Verständnis sollte man schon haben.
Naja, mehr als die SAP, aber das ist nicht so schwierig. Ich hab ne ziemliche Kappe wenn ich an ABAP OO denke. Keiner (von den Kunden) weiß was das ist, alle wollen es haben und die Mehraufwände in der Entwicklung nicht bezahlen (weil sie denken, das sei billiger, weil neuer und moderner).
babap hat geschrieben:Im Prinzip ist ABAP-OO nur die Fortführung dessen, was mit FORMS und Funktionsbausteinen schon länger gemacht wurde. Funktionen, die mehrfach gebraucht werden, sind in sich abgeschlossen programmiert und wiederverwendbar.
Dann guck dir mal das Coding von der SAP an, wie herrlich vermischt Prozedurales mit OO man da findet. Da basteln die große Klassenkonstrukte und springen dann per PERFORM raus und machen prozedural weiter. Sowas ist alter Wein in alten Schläuchen, die ein bisschen aufgepeppt sind.
babap hat geschrieben:ABAP-OO kapselt die Module noch restriktiver und zwingt so, zu SAUBERER Programmierung. Hinter den Kulissen läuft ganz normales ABAP-Coding.
Das Problem ist eher, dass hinter den Kulissen ganz normale Programmierer sitzen. Wenn ich wirklich objektorientiert anfange zu programmieren, sind die ersten die mir das Projekt um die Ohren hauen, die Inhouse-Entwickler des Kunden.
babap hat geschrieben:Nein, es gibt keine Aufgabe, die mit herkömmlichem prozeduralem Code besser zu lösen wäre.
(Ab und zu fällt man auf den Gedanken rein. Dann büßt man es aber recht schnell ...)
Richtig.
babap hat geschrieben:Ich löse schon seit längerem alle Aufgaben nur noch mit Abap-OO. Tatsächlich benötigt man als Einstieg oft noch eine Transaktion und ein herkömmliches Programm, um Parameter anzugeben. Wenn nötig, nutze ich zum Aufruf oder zur Anzeige von Dynpros einen Funktionsbaustein.
Da gehts doch schon los. Man braucht prozedurales Coding zum Einstieg. Ich habe mal einen einfachen Vergleich gemacht - nicht repräsentativ natürlich. Ich habe ein x-beliebige und sehr einfache Reportanforderung (Selektieren, zusammenführen, Ausgabe als ALV-Grid) genommen und einmal prozedural und einmal in OO umgesetzt. Das OO-Coding war erheblich aufgeblasener, der Aufwand 50% höher (und das war eine Aufgabe, wo nichts zu planen war - versuch doch einem x-beliebigen Programmierer mal zu erklären was Design Patterns sind). Und: Das prozedurale Coding konnte ich so zusammenfassen, dass ich es in eine Datei runterladen konnte.
DAS ist Wiederverwendbarkeit -- ich habe seit dieser Zeit eine prozedurale ALV-Listen-Vorlage (ca. 500 Codingzeilen für fast alle Eventualitäten gerüstet, gut dokumentiert). Ca. 50 mal benutzt und sehr beliebt bei Kunden, weil dann nämlich alle Listencodings sehr ähnlich aussehen.
Ich nehme OO wenn ich dazu gezwungen werde. In den meisten Fällen reicht eine einfache Aufwandschätzung in zwei Versionen, um dem Kunden das auszureden. Ich programmiere auf des Kunden Wunsch in 80 Prozent aller Fälle ganz einfache Funktionsgruppen (für alles andere) oder Reports für Listen.
Ralf