Neue Themen als SAP Entwickler

Getting started ... Alles für einen gelungenen Start.
138 Beiträge • Vorherige Seite 8 von 10 (current) Nächste
138 Beiträge Vorherige Seite 8 von 10 (current) Nächste

Re: Neue Themen als SAP Entwickler

Beitrag von ralf.wenzel (Top Expert / 3863 / 197 / 276 ) »
DeathAndPain hat geschrieben:
10.10.2024 15:44
Langer Rede kurzer Sinn: Deine Überzeugung, dass Fachleute mit entsprechendem Berufsabschluss bessere Leistungen bieten müssen als das, was man sich selber erarbeiten kann, teile ich keineswegs.
Sie haben das Potential dafür, weil sie eben Softwareentwicklung lernen und nicht programmieren. Dass da auch "Schlappen" dabei sind, liegt auf der Hand. In jedem Beruf gibt es gute und schlechte Leute.

Wenn ich mein Auto reparieren lassen wollen würde, würde ich aber in eine professionelle Werkstatt gehen und nicht meinen Nachbarn fragen, der autodidaktisch sich was beigebracht hat.
DeathAndPain hat geschrieben:
10.10.2024 15:44
Nach meiner Erfahrung ist es immer noch so, dass gute ABAP-Entwickler ein knappes Gut sind.


Und das ist auch gut so - für uns 😉
DeathAndPain hat geschrieben:
10.10.2024 15:44
Deshalb sind die Gehälter auch so hoch, und deswegen akzeptiert der Markt auch mittelmäßige und schlechte Leute - weil er halt nichts anderes bekommt. Ich frage mich wirklich, woher Du und black_adept die Überzeugung nehmen, dass die neuen (jungen) Leute gut seien. Kennt ihr so viele gute Entwickler?
Oh ja! Von denen lerne ich noch eine Menge von dem, was man als Wirtschaftsinformatiker oder Informatiker so lernt. Und sie lernen von meinen Erfahrungen.

Es gibt Leute, die in Regionen schweben, in die ich nie kommen werde (die sind nicht jung, sondern haben viel Erfahrung - aber allesamt "von der Pike auf gelernt").


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: Neue Themen als SAP Entwickler

Beitrag von black_adept (Top Expert / 4034 / 117 / 921 ) »
DeathAndPain hat geschrieben:
10.10.2024 13:40
Ehrlich gemeinte Frage: Denkst Du das nur, oder kennst Du reichlich davon? Ich urteile anhand der Codes, die ich zu sehen bekomme. Solides OO mit mehr als einer Instanz pro Klasse und dann womöglich sogar noch nachvollziehbar programmiert statt leere Methodenschnittstellen und alles in globale Variablen mit Etikett "Attribut" dran - das bekomme ich so gut wie gar nicht zu sehen.
Ja - ich kenne reichlich davon. Ich denke mal, dass ich selber auch halbwegs brauchbar in diesem Bereich bin. Allerdings wirst du auch von mir größtenteils Klassen mit maximal 1 Instanz finden weil das eben in den allermeisten Fällen hinreichend ist. Wie weiter oben schon mal erwähnt: KISS. Das hilft auch denjenigen, die das später warten müssen, wenn diese eben nicht so firm im OO sind. Irgendwo hatte doch mal jemand geschrieben, dass es deutlich leichter ist VA02 zu debuggen als ME22N. Und das liegt am OO-Ansatz in letzterer.
ralf.wenzel hat geschrieben:
10.10.2024 13:48
Und ja: Ich habe schon Kunden abgelehnt, weil die nach Hausregel stur prozedural programmieren. Da hat der IT-Leiter dumm aus der Wäsche geguckt, aber ich hab das durchgezogen.
Als wenn prozedurale Programmierung verwerflich sei. Gerade im SAP Umfeld ist es nach meiner Erfahrung so, dass die Aufgaben, die man bekommt linear gestrickt sind bzw. sehr gut so gelöst werden können.
DeathAndPain hat geschrieben:
10.10.2024 15:44
Nach meiner Erfahrung ist es immer noch so, dass gute ABAP-Entwickler ein knappes Gut sind. Deshalb sind die Gehälter auch so hoch, und deswegen akzeptiert der Markt auch mittelmäßige und schlechte Leute - weil er halt nichts anderes bekommt. Ich frage mich wirklich, woher Du und black_adept die Überzeugung nehmen, dass die neuen (jungen) Leute gut seien. Kennt ihr so viele gute Entwickler? Mir laufen irgendwie fast keine über den Weg, auch nicht indirekt (dass ich fremden Code zu sehen bekommen würde, der was taugt).
Ich habe nie gesagt, dass nur die neuen Leute gut seien. Und das mit den "gute ABAP-Entwickler sind knappes Gut": Dem kann ich insofern zustimmen, als das es einfach so wenig ABAP-Entwickler gibt. Und da hast du dann die Standardverteilung von gut bis schlecht. Denn wer kommt denn schon in die ABAP-Entwicklung. Zu Hause kann man es genaugenommen nicht lernen/üben, zufällig kommt auch kaum damit in Berührung und im Studium hat ein mir bekannter Junior, der letzens seinen Master gemacht hat, davon auch nicht mal am Rande was mitbekommen. Ich glaube einfach, dass auf Grund des knappen Angebots und der Tatsache, dass man als guter SAP-Entwickler eben nicht nur gut coden können muss sondern zusätzlich einfach viel Erfahrung damit haben muss, wie SAP funktioniert, die Situation ist wie von dir beschrieben.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Neue Themen als SAP Entwickler

Beitrag von ralf.wenzel (Top Expert / 3863 / 197 / 276 ) »
black_adept hat geschrieben:
10.10.2024 16:09
ralf.wenzel hat geschrieben:
10.10.2024 13:48
Und ja: Ich habe schon Kunden abgelehnt, weil die nach Hausregel stur prozedural programmieren. Da hat der IT-Leiter dumm aus der Wäsche geguckt, aber ich hab das durchgezogen.
Als wenn prozedurale Programmierung verwerflich sei. Gerade im SAP Umfeld ist es nach meiner Erfahrung so, dass die Aufgaben, die man bekommt linear gestrickt sind bzw. sehr gut so gelöst werden können.
Nicht verwerflich. Aber sie hat Grenzen, die OO nicht hat. Und wenn ich mich für ein Paradigma entscheide, dann für das, das mir mehr Möglichkeiten bietet.


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: Neue Themen als SAP Entwickler

Beitrag von DeathAndPain (Top Expert / 1868 / 238 / 404 ) »
Ralf hat geschrieben:Wenn ich mein Auto reparieren lassen wollen würde, würde ich aber in eine professionelle Werkstatt gehen und nicht meinen Nachbarn fragen, der autodidaktisch sich was beigebracht hat.
Wenn Du nicht beurteilen kannst, was seine autodidaktisch erlangten Fähigkeiten taugen, dann ist es sicher der solidere Ansatz, im Zweifel zu jemandem zu gehen, der das beruflich macht. Ich wollte ja nur darauf hinaus, dass autodidaktisch erlangte Fähigkeiten sich mitnichten immer vor denen verstecken müssen, die man in einer Berufsausbildung erlangt. Und wenn man es selber macht, kann man - wenn man ehrlich zu sich selber ist - schon beurteilen, auf welchem Niveau man sich befindet.

Ich habe mir als Jugendlicher selber programmieren beigebracht - auf dem C64 und später Amiga. Gerade dadurch ist mein Gehirn so strukturiert worden, dass ich später an der Uni spielend eine 1 im Fach "Theoretische Grundlagen der Informatik" geschafft habe. Denn das ganze für die Programmierung erforderliche logische Denken hatte ich schon im Blut.

Was man nur in der IT-Branche halt haben muss und was vielen ABAP-Entwicklern abgeht, ist die Bereitschaft, mit der Zeit zu gehen. Ich habe kein Verständnis dafür, wenn jemand heute noch nicht bereit ist, sich mit den Vorteilen der 7.40-Syntax auseinanderzusetzen und zu schauen, wo er das in seinen Programmen nutzbringend anwenden kann. Oder wenn jemand nicht Eclipse einsetzen möchte mit dem einzigen Grund, dass er halt so an die Optik der SE38 gewöhnt ist.

Ich halte es aber für legitim, die Werkzeuge an die eigene Arbeitsweise anzupassen, wenn man sich damit wohl fühlt. Einst war ich ein Guru der (geisteskranken) Tastaturkürzel im SE38-Backend Editor. Ab einem bestimmten Release hat sie SAP es mit den offiziellen Mitteln unmöglich gemacht, sich den Backend Editor einzustellen. Er funktionierte aber noch, wenn man ihn bereits eingestellt hatte. In einem noch späteren Release haben sie ihn dann final abgekniffen. Damit funktionierten die ganzen Kürzel, die ich in Fleisch und Blut hatte, nicht mehr. Das war für mich der Punkt, an dem ich auf Eclipse gegangen bin, um nicht vom ganz alten zum halb alten zu wechseln, sondern dann wenigstens gleich auf die ganz neue Technik umzusatteln. Tja, und in Eclipse habe ich mir dann viele Tastaturkürzel wieder genau so eingestellt wie damals und damit die Lernkurve für mich drastisch vereinfacht. Für einen Neueinsteiger wären diese Kürzel vermutlich eine Zumutung, aber es muss ja kein anderer mit meinem Eclipse-Workspace arbeiten, so dass ich das für komplett legitim halte.
black_adept hat geschrieben:Allerdings wirst du auch von mir größtenteils Klassen mit maximal 1 Instanz finden weil das eben in den allermeisten Fällen hinreichend ist. Wie weiter oben schon mal erwähnt: KISS.
Das halte ich für einen Widerspruch, denn gerade KISS besagt doch, dass in dem Fall, in dem Du genau weißt, dass Du nur eine Instanz brauchst, eine statische Klasse keine Nachteile hat, aber übersichtlicher zu handhaben ist.
black_adept hat geschrieben:Das hilft auch denjenigen, die das später warten müssen, wenn diese eben nicht so firm im OO sind. Irgendwo hatte doch mal jemand geschrieben, dass es deutlich leichter ist VA02 zu debuggen als ME22N. Und das liegt am OO-Ansatz in letzterer.
Genau so ist es. Wobei es eben nicht nur mit "firm in OO" zu tun hat, sondern daran, dass fremder OO-Code in aller Regel generell schwerer zu verstehen ist, eben weil mit OO die Rückkehr der globalen Variablen wieder Einzug gehalten hat. Damit sind die Datenflüsse im Programm nicht mehr so transparent, wie wenn sie durch die Schnittstellen der Unterprogramme erfolgen, und wenn man das Programm nicht selbst geschrieben hat, dann ist es halt schwierig nachzuvollziehen, wozu eine bestimmte globale Variable da ist, wann und nach welchen Kriterien sie ihre Werte erhält und wo diese Werte später überall genutzt werden. Man kann versuchen, sich über Verwendungsnachweise heranzutasten, aber das ist oft ein sehr hartes Brot.
black_adept hat geschrieben:Denn wer kommt denn schon in die ABAP-Entwicklung. Zu Hause kann man es genaugenommen nicht lernen/üben
Theoretisch schon, denn meines Wissens kann man sich privat kostenlos einen SAP-Server zu spielen aufsetzen. Da sind dann Beschränkungen drauf, die das für einen professionellen Einsatz ungeeignet machen (ich weiß nicht mehr die Details, aber es war sowas wie "maximal 5 Benutzer"). Aber zum Üben mit ABAP, Datenbank usw. ist das perfekt geeignet.

Man muss also eigentlich nur wissen, dass es das gibt und sich damit beschäftigen wollen. Bücher für das Selbststudium findet man an jeder Straßenecke.
black_adept hat geschrieben:Denn wer kommt denn schon in die ABAP-Entwicklung.
Nach meiner Erinnerung bieten das diverse Hochschulen an (ohne dass ich jetzt aus dem Kopf ein Beispiel nennen könnte). Allerdings bin ich immer erschreckt, wenn jemand, der offenbar irgendwo an einem ABAP-Lehrgang teilnimmt, hier im Forum auftaucht und Fragen zu seinen Aufgaben stellt, denn diesen Aufgabenstellungen sind immer in antikem ABAP gehalten. Anscheinend wird veraltetes ABAP immer noch überall unterrichtet. Und das finde ich sehr ärgerlich.

Eine Sache, die mich auch maximal aufregt, besteht darin, dass ich eigentlich nie Code zu sehen bekomme, in denen sortierte oder gar gehashte Tabellen verwendet werden. Deren Existenz scheint an gefühlten 100% der ABAP-Entwickler (außerhalb dieses Forums hier) vorbeizugehen, egal ob diese prozedural oder OO programmieren. Es wird immer nur mit Standardtabellen gearbeitet, meistens noch mit der ollen TYPE TABLE OF-Syntax deklariert (dementsprechend auch nie mit EMPTY KEY, obwohl der Defaultschlüssel so gut wie nie genutzt wird). Wenn, dann wird noch nach Release 3.x-Manier mit SORT sortiert und dann mit READ...BINARY SEARCH gelesen. Und selbst diese Mühe machen sich viele nicht.

Da fehlt mir jedes Verständnis. Sortierte und gehashte Tabellen gab es schon vor 7.40, und schon damals waren sie in der Verwendung super (und in der Performance sowieso).

Re: Neue Themen als SAP Entwickler

Beitrag von msfox (Specialist / 349 / 56 / 72 ) »
Man, schreibt ihr immer viel :). Habe gar nicht Zeit das alles zu lesen...
Oder wenn jemand nicht Eclipse einsetzen möchte mit dem einzigen Grund, dass er halt so an die Optik der SE38 gewöhnt ist.
...oder wenn man einfach kein Eclipse nutzen kann. Zu 90% gehen ich bei Kunden via Citrix auf das System. Dort ist zu 100% kein Eclipse installiert. Auch als ich den Citrix Desktop hatte, wurde mir da kein Eclipse eingerichtet.

Folgende Benutzer bedankten sich beim Autor msfox für den Beitrag:
gtoXX


Re: Neue Themen als SAP Entwickler

Beitrag von ralf.wenzel (Top Expert / 3863 / 197 / 276 ) »
DeathAndPain hat geschrieben:
11.10.2024 10:54
Was man nur in der IT-Branche halt haben muss und was vielen ABAP-Entwicklern abgeht, ist die Bereitschaft, mit der Zeit zu gehen.
Richtig.
DeathAndPain hat geschrieben:
11.10.2024 10:54
Ich halte es aber für legitim, die Werkzeuge an die eigene Arbeitsweise anzupassen, wenn man sich damit wohl fühlt.


Auch richtig.
DeathAndPain hat geschrieben:
11.10.2024 10:54
black_adept hat geschrieben:Irgendwo hatte doch mal jemand geschrieben, dass es deutlich leichter ist VA02 zu debuggen als ME22N. Und das liegt am OO-Ansatz in letzterer.
Genau so ist es. Wobei es eben nicht nur mit "firm in OO" zu tun hat, sondern daran, dass fremder OO-Code in aller Regel generell schwerer zu verstehen ist
....weil das Coding nichts über das Beziehungswissen der Objekte verrät. Deshalb ist eine Doku über das Coding hinaus bei OO-Anwendungen eben viel wichtiger als bei prozedural programmiertem Code. Das vergessen leider viele, weil sie keine Dokus schreiben wollen.
DeathAndPain hat geschrieben:
11.10.2024 10:54
black_adept hat geschrieben:Denn wer kommt denn schon in die ABAP-Entwicklung. Zu Hause kann man es genaugenommen nicht lernen/üben
Theoretisch schon, denn meines Wissens kann man sich privat kostenlos einen SAP-Server zu spielen aufsetzen.
Also was für Nerds....
DeathAndPain hat geschrieben:
11.10.2024 10:54
Anscheinend wird veraltetes ABAP immer noch überall unterrichtet. Und das finde ich sehr ärgerlich.
Weil erstens auch die, die schulen, nicht mit der Zeit gehen und weil man prozedural einfach schneller Lösungen für kleine Probleme bekommt.

Ich kann einen einfachen SELECT auf SFLIGHT lehren und den immer weiter aufbohren mit allen möglichen Optionen. Da haben die Leute dann schon genug zu lernen.

Wenn ich denen jetzt auch noch zeigen muss, dass sie eine Klasse brauchen hinter einem Interface, damit sie einen datenbankunabhängigen Unit-Test dafür schreiben können, rennen die Leute schreiend weg.
DeathAndPain hat geschrieben:
11.10.2024 10:54
Eine Sache, die mich auch maximal aufregt, besteht darin, dass ich eigentlich nie Code zu sehen bekomme, in denen sortierte oder gar gehashte Tabellen verwendet werden.
Da gebe ich dir vollkommen recht. ABER:

Ich habe HIER mal geschrieben, dass es eigentlich selten eine Existenzgrundlage für Standardtabellen gibt. Wenn ich Daten aus z. B. der MARA ziehe, dann ziehe ich die Schlüsselfelder mit und schon habe ich einen potentiellen Schlüssel für eine sortierte Tabelle und kann dann beliebig viele sekundäre Schlüssel aufbauen. Es braucht für eine Standardtabelle eigentlich ebenso eine Rechtfertigungsgrundlage wie für einen Funktionsbaustein 😉

Damals wurde ich hier öffentlich gevierteilt für den Spruch 😉


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: Neue Themen als SAP Entwickler

Beitrag von DeathAndPain (Top Expert / 1868 / 238 / 404 ) »
Also was für Nerds....
Sind wir das nicht alle? 😁

Davon abgesehen: Wenn jemand mit 19 gerade das Abi in der Tasche hat und vielleicht schon ein bisschen in irgendeiner Programmiersprache programmieren kann und das Laufbahnpotenzial eines SAP-Entwicklers (Gehalt usw.) erkannt hat, warum soll der sich dann nicht auf irgendeinem ollen PC einen kleinen SAP-Server aufsetzen und sich das selber beibringen? Man mag so nicht alles lernen können (insbesondere nicht den modulspezifischen Kram, der Praxis mit lebenden Daten erfordert), aber eine ABAP- und Basis-Grundlage könnte sich solch 19-jähriger damit schon schaffen und wäre damit exzellent vorbereitet, wenn er dann irgendwelche SAP-bezogenen Kurse belegt.
Ich kann einen einfachen SELECT auf SFLIGHT lehren und den immer weiter aufbohren mit allen möglichen Optionen. Da haben die Leute dann schon genug zu lernen.

Wenn ich denen jetzt auch noch zeigen muss, dass sie eine Klasse brauchen hinter einem Interface, damit sie einen datenbankunabhängigen Unit-Test dafür schreiben können, rennen die Leute schreiend weg.
Du sagst doch selbst, dass mein auf statischen Klassen aufsetzender Ansatz letztlich prozedural ist. Warum also nicht diesen wählen? Da hat man zumindest schon mal moderne Syntax und fängt nicht mit Formroutinen an. Wenn die Schüler das drauf haben, dann kann man später immer noch hingehen und ihnen zeigen, was eine Instanziierung ist und was man mit Klassen noch so alles machen kann und kann das schrittweise weiter ausbauen.

Das halte ich für besser als wenn man ihne Release 3.1i-Syntax beibringt und im nächsten Schuljahr dann sagt: "Was ihr letztes Jahr gelernt habt, ist alles für die Tonne. Jetzt bringe ich euch ABAP OO bei, und das funktioniert komplett anders."

Das einzige Gegenargument, dass man in meinen Augen anerkennen kann, besteht darin, dass auch neu ausgebildete Entwickler in der Lage sein müssen, den alten PERFORM-Kram zu lesen, weil sie ihn in der Praxis noch überall antreffen werden. Aber wenn es danach geht, musst Du auch noch Kopfzeilen unterrichten. Die sind sogar heute in jedem SELECT-OPTIONS noch ein Thema, egal wie objektorientiert Dein Programm nachher ist.
Ich habe HIER mal geschrieben, dass es eigentlich selten eine Existenzgrundlage für Standardtabellen gibt.
Ich meine mich zu erinnern, dass Du damals gesagt hast, eine Standardtabelle ist für Dich nichts anderes als eine Liste. Diese Definition wurde damals kontrovers diskutiert, aber ich persönlich bin da durchaus Deiner Meinung. Es gibt aber genug Fälle, in denen sowas ausreichend und adäquat ist, z.B.:
  • Wenn Du eine Textdatei einliest, z.B. mit dem TRANSFER-Befehl und diese in eine interne Tabelle packst
  • Wenn Du Daten mit bestimmten Eigenschaften (z.B. Materialien eines bestimmten Lagerortes) in eine temporäre interne Tabelle einliest mit dem einzigen Zweck, hinterher darüber einen LOOP zu machen und Dir die Reihenfolge dabei egal ist, solange nur alle Daten drankommen. Dann wäre es Performanceverschwendung, diese interne Tabelle zu sortieren.
  • Wenn Du einen Datentyp für eine Liste von Werten definiert, die in irgendeinem Interface übergeben werden sollen. Dann kannst Du sagen TYPE liste_der_matnrn TYPE STANDARD TABLE of matnr WITH EMPTY KEY und nachher METHODS materialien_bearbeiten IMPORTING matnrn TYPE liste_der_matnrn.
  • Wenn Du eine Tabelle für ein ALV definierst, um ihn der Methode CL_SALV_TABLE=>FACTORY zu übergeben.
  • Wenn Du eine Tabelle definierst, die einem Fuba per TABLES-Parameter übergeben werden soll. TABLES-Parameter gelten laut SAP zwar schon seit langem als veraltet. Das ändert aber nichts daran, dass man sie noch an jeder Ecke antrifft.
  • Wenn Du Daten bearbeitest und dabei in einer internen Tabelle der Reihe nach Zeilen ein Fehlerprotokolls aufbaust, das nachher irgendwo festgehalten oder ausgegeben wird.
Obenstehende Liste ist sicher nicht erschöpfend. Wenn es keine Standardtabelle wird, musst Du Dir auch überlegen, ob es eine sortierte oder eine Hashtabelle werden soll. Für beide gibt es Kriterien. Man muss sich halt bei jeder internen Tabelle überlegen, was das für eine Tabelle ist und welcher Typ dafür passend ist. Standardtabellen haben dabei ihre genauso ihre Daseinsberechtigung wie die beiden anderen Typen. Nicht ohne Grund hat die SAP ja erst relativ neu die Option hinzugefügt, Standardtabellen mit leeren Schlüsseln zu definieren.

Gleichwohl bin ich Deiner Meinung, dass die meisten internen Tabellen, die man braucht, natürlicherweise einen Schlüssel haben und diesen in ihrer Definition auch per SORTED oder HASHED bekommen sollten. Es ist ärgerlich, wenn Leute die Tabelle zur Standardtabelle erklären, weil sie zu faul sind, sich zu überlegen, was der natürliche Schlüssel der Daten ist, die sie in dieser Tabelle ablegen wollen. Aber dieses Problem zieht sich ja durch bis in die SE11. Nur selten sehe ich Datenbanktabellen mit durchdacht gewähltem Primärschlüssel. Selbst die SAP bekleckert sich da nicht immer mit Ruhm. Bei Nicht-SAP-Entwicklern ist es aber meist schlimmer, bis hin zu der Praxis, im Zweifel alle Felder zu Schlüsselfeldern zu machen. Das ist schön bequem; da kann man beim Einfügen nie eine nervige Meldung eines doppelten Primärschlüssels bekommen und muss sich keine Gedanken darüber machen, welche Spalten es eigentlich sind, die eine Zeile dieser Tabelle im Sinne der angedachten Semantik ausmachen. Und schon gar nicht darüber, welche Schlüsselfelder man zuerst in den Schlüssel packen sollte, weil sie am meisten einschränken und zugleich bei Suchen am wahrscheinlichsten bekannt sind (d.h. auf Gleichheit geprüft werden können). Dumm nur, dass man die Zeilen solcher Tabellen nachher überhaupt nicht mehr ändern kann (sondern nur löschen und neu anlegen). Aber das kriegt man auch leicht gelöst: Einfach eine fortlaufende Nummer als einzige Schlüsselspalte, und schon kann man alle Nutzdatenspalten nach Belieben ändern. 😁 Für die fortlaufende Nummer kann man dann sogar noch einen Nummernkreis definieren und sich mit den entsprechenden Fubas neue Werte holen. Dann sieht das gleich richtig professionell aus. 😆

Re: Neue Themen als SAP Entwickler

Beitrag von ralf.wenzel (Top Expert / 3863 / 197 / 276 ) »
Noch professioneller wird es mit einer GUID 😉

Folgende Benutzer bedankten sich beim Autor ralf.wenzel für den Beitrag (Insgesamt 2):
gtoXXDeathAndPain

Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: Neue Themen als SAP Entwickler

Beitrag von gtoXX (Specialist / 201 / 43 / 34 ) »
DeathAndPain hat geschrieben:
10.10.2024 01:24

Vererbung ist die Möglichkeit, Klassen unter neuem Namen wiederzuverwenden und dabei bestimmte Methoden zu redefinieren (was in aller Regel auf Spezialisierung hinausläuft). Dafür ist das TOP-Include einer Funktionsgruppe komplett ungeeignet.

Eine Behauptung, die Du nicht belegst, während das Gegenteil offensichtlich ist: Jeder Befehl, also auch das Erzeugen einer Instanz, kostet Rechenzeit. Das ist mehr Rechenzeit, als stattdessen nichts zu machen, soviel steht fest. Und "stattdessen nichts machen" ist genau das, was bei einer statischen Klasse nötig ist. In dem Fall, in dem nur eine einzige Instanz erforderlich ist (und nur von diesem Fall habe ich gesprochen) ist beides funktional gleichwertig, denn eine statische Klasse hat eine implizite Instanz, die nicht händisch erzeugt werden muss. Zugleich ist die Lesbarkeit besser, da der dann nutzlose Objekterzeugungswasserkopf im Quellcode fehlt.

Als kleines Bonbon erlauben statische Methoden die Nutzung des STATICS-Befehls, was zuweilen nützlich sein kann. Kann man mit Objekten natürlich nachbauen, aber nicht so einfach.

In dem Moment, in dem Du mehrere Objektinstanzen benötigst, ja. Ich habe explizit von dem Fall gesprochen, in dem im ganzen Programm stets nur eine einzige Instanz der Klasse angelegt wird. In den "objektorientierten" Programmen, die ich von anderen zu sehen bekomme, kommt dies nicht nur vor, sondern ist sogar der erdrückende Löwenanteil. Und das finde ich bescheuert; dann brauche ich keine Instanziierung.

Dafür ist bei Methoden ein EXPORTING gleichzeitig ein CHANGING, jedenfalls solange nicht explizit Wertübergabe definiert ist.

Aber das nur am Rande. Wir sind uns einig, dass es sich mit Methoden bedeutend schöner arbeitet als mit Formroutinen.

Da bin ich vom Gegenteil überzeugt, aus Gründen, die ich im Verlauf dieses Threads bereits dargelegt habe. Was Du mutmaßlich nicht gelesen hast.


Um Himmels willen, was für eine Aussage!!! Das kann ich nicht glauben, dass jemand ernsthaft sowas behauptet.

Das haben diese Leute nicht, aber das wirft ein Schlaglicht auf den Umstand, das nahe an 0% der ABAP-Programmierer OO verstanden haben. Und das wiederum wirft ein Schlaglicht auf OO, denn eine Sprache, die so akademisch ist, dass keiner ihrer praktischen Verwender in der realen Welt sie wirklich versteht und weiß, wie er damit umgehen muss, ist eben genau das: akademisch und nicht praxistauglich. Auch wenn das verbleibende Prozent der Entwickler, die es verinnerlicht haben, tolle Sachen damit veranstalten kann.

Nach meiner Überzeugung kann es dabei auch eine Rolle spielen, dass das Bildungsniveau in Deutschland aus Gründen, die man leider nicht mehr laut diskutieren darf, förmlich in sich zusammengebrochen ist. Das sehe ich sehr schön, wenn ich mir anschaue, was meine Kinder im Gymnasium lernen und was ich damals gelernt habe. Damals war Mathematik im Gymnasium nahezu 100% Beweise führen, gemäß dem Prinzip, dass man an der Realschule lernt, Kochrezepte korrekt anzuwenden und am Gymnasium, eigenständig zu denken und Lösungswege zu erarbeiten (statt sie nur anzuwenden). Die heutigen Mathematiklehrpläne sehen am Gymnasium keine Beweise mehr vor. Offenbar sieht man sich nicht mehr in der Lage, die Schüler zu befähigen, eigenständig eine mathematische Aussage zu beweisen. Wie sollen solche Absolventen dann eigenständig Konzepte wie OO kreativ anwenden können? Es ist einfach nur traurig. Deutschland hat keine Bodenschätze. Das Bildungsniveau ist das Einzige, was uns je ausgezeichnet hat. Ich sehe keinen Grund, weshalb Deutschland perspektivisch noch in der Lage sein sollte, seine besondere wirtschaftliche Stärke aufrechtzuerhalten. Aber ich schweife ab.
Woher die Werte eines Attributs kommen ist per OO Definition klar : Nur das Objekt selbst, verwaltet seine Attribute.
Und das Objekt kann 100 Methoden haben, die dies tun. Mit der gleichen Berechtigung könnte ich als herkömmlicher Programmierer sagen: Mein Programm selbst verwaltet seine globalen Variablen. In irgendeiner meiner Formroutinen haben sie ihre Werte erhalten (von denen Du jetzt an einer bestimmten Programmstelle grübelst, wo sie herkommen und was sie an anderer Stelle im weiteren Programmverlauf bewirken werden).

Nur sind die Attribute auch dann nur dann konsistent, wenn es keine Programmierfehler gibt. Dies zu beurteilen, wenn die Klasse nicht von einem selber ist, ist alles andere als trivial. Und selbst dann kann solch fremder Code unfassbar schwer zu verstehen sein. Das ist genau die gleiche Sch… wie seinerzeit mit den herkömmlichen globalen Variablen. Genau deshalb hat man seinerzeit zu recht gesagt, die Werte, die ein ein Unterprogramm nutzt oder verändert, gehören in seine Schnittstelle. Auch wenn dieses Unterprogramm im privaten Teil der Klasse sitzt.

Du gehst von einem Objekt als einer Black Box aus, deren Inhalt und Funktionsweise von außen keinen was angeht. Das funktioniert aber nur unter zwei Prämissen: erstens musst Du genau wissen, wie man das Objekt benutzt und zweitens darfst Du Dich nie in der Verlegenheit befinden, am Code des Objektes (der Klasse) etwas ändern zu müssen. Spätestens dann musst Du die Datenflüsse innerhalb der Klasse nämlich überblicken, und das ist bei Attributen, die in Wahrheit einfach nur klassenglobale Variablen sind, ein Albtraum.
Für mich hast Du OO überhaupt nicht verstanden und auch Softwarearchitektur nicht. Ein Teil der Aussagen halte ich für gefährlich bis hin zu absolutem Unsinn.
Ich erlese viel Unkenntnis. Allein schon die Beschreibung von Vererbung. Ein OO Grundkurs wäre wohl nicht verkehrt. Ich würde behaupten du könntest den OO Entwicklern die Du so tadelst kein Stück einer Architektur, eines Patterns, geschweige denn die korrekte Anwendung des KISS Prinzips verdeutlichen.

"an 0% der ABAP-Programmierer OO verstanden haben" Diese Aussage ist ziemlich lächerlich. Ich habe jahrelang auf Projekten mit Entwicklern zusammengearbeitet, die OO absolut beherrschen und entsprechende Frameworks etc. geschrieben haben. Und das waren teilweise bis zu 80 Entwickler auf einem einzigen Projekt.

Aber wenn man so "Anti" ist wie Du, ohne das ganze Thema verstanden zu haben wundert .mich die Meinung nicht. Denn die Codes der Leute mit dieser Einstellung kenne ich zur genüge. Meisten sind sie unwartbarer Schrott.

Bei mir jedenfalls schreibt keiner eine Zeile in einer FORM.
OO ist genauso alt, wie prozedurale Programmierung, das sollte man nicht vergessen. Und OO ist mitnichten akademisch. Wer das sagt, hat kein Abstraktionsvermögen, was für Programmierung generell eine Voraussetzung ist.

By the way : Auch eine Klasse mit statischen Methoden wird geladen. Analog zu einer Funktionsgruppe, die sogar komplett geladen wird, auch wenn man nur 1 FB braucht.

Du hast auch scheinbar noch nie mit guten Variablenbezeichnungen zu tun gehabt. Ich kenne genug OO Programme die lesen sich wunderbar herunter.

Desweiteren sind deine Argumente gegen OO stets jene, von falsch eingesetztem OO.

Korrekt ein Objekt ist eine Black Box und soll auch eine sein. Der Verwender muss nicht wissen, wie sie intern funktioniert. Sich hier auf Programmierfehler zu beziehen : Ja, klar, wenn der Entwickler nie was von Mocks und Unittests gehört hat kann das immer passen. Und wenn intern schlecht programmiert wurde ist es schlicht schlechter Code. Das hat aber nichts mit OO zu tun.
Zuletzt geändert von gtoXX am 11.10.2024 23:21, insgesamt 2-mal geändert.
"Code lügt nicht ^^"

Re: Neue Themen als SAP Entwickler

Beitrag von gtoXX (Specialist / 201 / 43 / 34 ) »
ralf.wenzel hat geschrieben:
11.10.2024 18:06
Noch professioneller wird es mit einer GUID 😉
Wer eine neue Tabelle ohne GUID anlegt und im schlimmsten Fall noch den Flaschenhals Nummerkreisobjekt nutzt, gehört eine Woche an den Dorfpranger.

Der technische Schlüssel einer neuen Tabelle hat immer eine UUID zu sein.

--
Warum wird hier eigentlich noch soviel von 7.40 geredet. Mich nervt schon, dass ich nicht immer 7.50 nutzen kann oder noch besser 7.52, weil 7.40 noch viele Schwächen hat, wo unnötige Zusatzdeklarationen nötig sind .
"Code lügt nicht ^^"

Re: Neue Themen als SAP Entwickler

Beitrag von gtoXX (Specialist / 201 / 43 / 34 ) »
ralf.wenzel hat geschrieben:
10.10.2024 13:48

Darum finde ich es nicht vermessen, von einem Softwareentwickler im Jahre 2024 (egal, wie lange der in seinem Job arbeitet) dass er mit Objektorientierung was anfangen kann. Und ja: Ich habe schon Kunden abgelehnt, weil die nach Hausregel stur prozedural programmieren. Da hat der IT-Leiter dumm aus der Wäsche geguckt, aber ich hab das durchgezogen.


Ralf
Das würde ich Dir sofort gleich tun. Soviel kann mir gar keiner zahlen, das zu tun.

Erinnert mich an meinen alten Chef. Der Verbot OO auch, weil er es nicht verstand.
Der ist weg und Chef bin ich.
"Code lügt nicht ^^"

Re: Neue Themen als SAP Entwickler

Beitrag von ralf.wenzel (Top Expert / 3863 / 197 / 276 ) »
gtoXX: Zwei Tipps: Bitte mach mal das Vollzitat oben raus. Und den Regulars hier würde ich mit mehr Respekt gegenübertreten. Die, mit denen man so reden sollte, sind lange weg 😉

Ralf

Folgende Benutzer bedankten sich beim Autor ralf.wenzel für den Beitrag:
DeathAndPain

Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: Neue Themen als SAP Entwickler

Beitrag von gtoXX (Specialist / 201 / 43 / 34 ) »
So ein klein wenig OO Grundkurs dann doch noch :

Warum ist Definition und Implementierung getrennt ? KISS-Prinzip.

Eine Klasse ist eine Beschreibung eines "möglichen" Objekts. Eine Klasse muss nicht zwangsläufig eine Implementierung haben. Eine abstrakte Klasse mit nur abstrakten Methoden braucht keinen Implementierungscode. Die oberste Klasse ist die Klasse Object, die weder Methoden noch Attribute hat.
"Code lügt nicht ^^"

Re: Neue Themen als SAP Entwickler

Beitrag von gtoXX (Specialist / 201 / 43 / 34 ) »
ralf.wenzel hat geschrieben:
11.10.2024 22:49
gtoXX: Zwei Tipps: Bitte mach mal das Vollzitat oben raus. Und den Regulars hier würde ich mit mehr Respekt gegenübertreten. Die, mit denen man so reden sollte, sind lange weg 😉

Ralf
Manchmal kann ich bei Unsinn nicht anders. Aber ich mach jetzt eh Feierabend und gehe auf ein Bier.
"Code lügt nicht ^^"

Re: Neue Themen als SAP Entwickler

Beitrag von DeathAndPain (Top Expert / 1868 / 238 / 404 ) »
gtoXX hat geschrieben:
11.10.2024 22:29
Wer eine neue Tabelle ohne GUID anlegt und im schlimmsten Fall noch den Flaschenhals Nummerkreisobjekt nutzt, gehört eine Woche an den Dorfpranger.
Der Teil war das Highlight. Und ausgerechnet er wirft mir vor, was nicht verstanden zu haben! 🤣 Aber ich werde jetzt mal black_adepts Rat folgen und den Troll nicht füttern. Das ist echt zu niveaulos, was er hier beiträgt. Möge jeder sich seine eigene Meinung dazu machen.

Vergleichbare Themen

0
Antw.
1879
Views
OO-Themen die in anderen Threads OT sind
von black_adept » 23.08.2018 09:01 • Verfasst in ABAP Objects®
10
Antw.
14068
Views
Suche Videotutorials zu folgenden Themen
von Up4Anything » 02.03.2011 14:01 • Verfasst in Tutorials & Cookbooks
2
Antw.
2998
Views
Aktuelle Themen / Forschungstrends im SAP Bereich
von OnkelSAP » 28.03.2011 12:35 • Verfasst in SAP - Allgemeines
18
Antw.
4459
Views
Entwickler vs Berater
von BecomingAnAbapGuru » 05.07.2021 09:21 • Verfasst in Tips + Tricks & FAQs
4
Antw.
9310
Views
SAP-Entwickler Gehalt ?
von Frank59 » 17.12.2006 15:41 • Verfasst in SAP - Allgemeines

Aktuelle Forenbeiträge

Get und Set
vor einer Stunde von msfox 17 / 3085
Neue Themen als SAP Entwickler
vor 15 Stunden von ralf.wenzel 138 / 18485
Wissensdatenbank
vor 22 Stunden von ralf.wenzel 13 / 1809
Workflow, LOOP alle 15 Minuten durchlaufen
vor 22 Stunden von tar 6 / 1113

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

Get und Set
vor einer Stunde von msfox 17 / 3085
Neue Themen als SAP Entwickler
vor 15 Stunden von ralf.wenzel 138 / 18485
Wissensdatenbank
vor 22 Stunden von ralf.wenzel 13 / 1809
Workflow, LOOP alle 15 Minuten durchlaufen
vor 22 Stunden von tar 6 / 1113