In 'fremden' Programmen gebe ich Dir recht.Alexander D. hat geschrieben: Ob bei mir im SE80 die Tabelle nun LT_EKKO oder BESTELLUNGEN heisst, in beiden Fällen habe ich keine Gewissheit wie die Tabelle aufgebaut ist. Ich werde in beiden Fällen einen Dopelklick auf den Tabellennamen machen, in die Deklaration springen und mir dort die Tabellenstruktur sowie ggf. die Kommentare zu der Tabelle anschauen. In diesem Fall gibt es in meinen Augen kein fichtig oder falsch.
das ist sicherlich bei jedem Entwickler soUnit605 hat geschrieben: D.h. ich kann meine Programme wesentlich schneller und leichter lesen und auch wesentlich schneller und einfacher pflegen.
gilt das auch für das Programm XY05 das du mal vor 5 Jahren auf die Schnelle erstellt hast? Also ich habe damit so meine Probleme, so ein Doppelklick ist aber schnell gemachtUnit605 hat geschrieben: In meinen eigenen Programmen kann ich Dir, ohne nachzusehen, sagen, wie die internen Tabellen aufgebaut sind oder ob man mit Doppelklick nachsehen muss.
ralf.wenzel hat geschrieben:Meine persönliche Meinung dazu ist: Bei IMPORTING/USING-Parametern ist es vielleicht sinnvoll, sie zu kennzeichnen, weil man sie nicht ändern kann, bei EXPORTING im Zweifel auch, weil man sie initialisieren muss, [...]
Passt das zusammen?ralf.wenzel hat geschrieben:Ich verwende gern die Option Aktualparameter = Formalparameter. Das kann man total vergessen, wenn man irgendwelche Präfixe setzen muss.
Das ist genau das Problem an der Diskussion: Jeder ist sich und seinen Gewohnheiten am nächsten. Der nächste, der an das Programm ran muss, kann dann sehen, wo er bleibt. Auf bestimmte Eigenarten kann man sich (muss man sich) einstellen. Schneller geht's, wenn man sich an gewisse "Standards" hält. Das die sich mit der Zeit ändern, ist klar.Unit605 hat geschrieben: In 'fremden' Programmen gebe ich Dir recht.
In meinen eigenen Programmen kann ich Dir, ohne nachzusehen, sagen, wie die internen Tabellen aufgebaut sind oder ob man mit Doppelklick nachsehen muss.
D.h. ich kann meine Programme wesentlich schneller und leichter lesen und auch wesentlich schneller und einfacher pflegen.
Oha, ich bin davon sogar SEHR überzeugt. Bei meinem aktuellen Kunden dreht man gerade gepflegt frei, weil hier ALLE in Eclipse arbeiten, nur die SAPler nicht (SE80 hat für die was von "Mit Nagelscheren Löcher in Lochkarten schneiden"). Gerade bei den Mixed-Projekten, die hier die Mehrzahl sind (hier ein bisschen Java, da ein bisschen ABAP, schön garniert mit XML-Krams) wird sich das auszahlen, so hofft man hier.zzcpak hat geschrieben:Von ADT bin ich noch nicht wirklich überzeugt, auch wenn es einige chice Gimmicks bietet. Bin aber mal gespannt, wohin der Weg da noch führt.

Ich glaube dass du einfach eine zu dünne Haut hast.ralf.wenzel hat geschrieben:Wie sind eure Beobachtungen? Ist UML bei euren Kunden ein Begriff? Gibt es dort definierte Entwicklungs-, Test- und Abnahmeszenarien? Ist meine Beobachtung repräsentativ oder gerate ich einfach immer nur an die falschen Kunden?
sogar dabei ist in unseren Programmierrichtlinien ein Präfix vorgeschrieben. Auch das finde ich ggfs. sinnvoll. Damit weiss man gleich, ob das gute Stück auf eine einfache Variable oder einen Arbeitsbereich zeigt.ewx hat geschrieben:3. Für Feldsymbole verwende ich fast nie einen Präfix, da diese (fast) immer lokal definiert sind. Bei Methoden immer. Da geht's gar nicht anders.
Dem stimme ich zu. Die Frage wäre doch dann, was kann man als "verantwortungsvoller" Entwickler tun, damit ggfs. der Nachfolgeentwickler nicht wie ein Ochs vorm Berg vor dem vererbten Coding steht und es lieber neuschreiben als ändern wollteewx hat geschrieben: Das ist genau das Problem an der Diskussion: Jeder ist sich und seinen Gewohnheiten am nächsten. Der nächste, der an das Programm ran muss, kann dann sehen, wo er bleibt. Auf bestimmte Eigenarten kann man sich (muss man sich) einstellen. Schneller geht's, wenn man sich an gewisse "Standards" hält. Das die sich mit der Zeit ändern, ist klar.
Nein, das passt in der Tat derzeit nicht zusammen und ich ringe mit mir, welchen Weg ich gehen sollte. Auf der einen Seite ist der Hinweis "das kannst du nicht ändern" ganz praktisch, auf der anderen Seite: Was auf der einen Seite ein Exporting-Parameter ist, kann auf der anderen Seite ein Importing-Parameter sein. Und dann wechselt das Präfix hin und her und verwirrt eher als dass es aufklärt.ewx hat geschrieben:ralf.wenzel hat geschrieben:Meine persönliche Meinung dazu ist: Bei IMPORTING/USING-Parametern ist es vielleicht sinnvoll, sie zu kennzeichnen, weil man sie nicht ändern kann, bei EXPORTING im Zweifel auch, weil man sie initialisieren muss, [...]Passt das zusammen?ralf.wenzel hat geschrieben:Ich verwende gern die Option Aktualparameter = Formalparameter. Das kann man total vergessen, wenn man irgendwelche Präfixe setzen muss.
Richtig.ewx hat geschrieben:Die Funktionen, die ADT bietet, sind IMHO anders zu bewerten, als ein Muster einzufügen.
Aber es ist auf jeden Fall ein Hinweis. Ich schreibe gerade an einem Programm, dass mit Normalbestellungen und Retourenbestellungen arbeitet. Ich selektiere aus den EK*-Tabellen einige Daten davon und nenne die resultierenden Tabellen retbest und normbest (oder von mir aus lt_retbest und lt_normbest). Dann ist sofort klar, was drin ist. Dass letztlich EK*-Felder (nicht zwingend EKKO, was soll ich mit der Kopie der gesamten Tabellenbreite?) drin sind, ergibt sich aus Kontext oder Doppelklick. Ich bin übrigens ein Freund davon, solche Beschreibungen in deutscher Sprache zu halten, es sei denn, man hat es wirklich mit internationalen Teams zu tun, was selten der Fall ist.ewx hat geschrieben:1. den technischen Typ zu verwenden, hat häufig den Vorteil, dass man ihn kennt. Man weiß als SAP-Programmierer MATNR ist eine Materialnummer. Basta. Kein Flag, keine Tabelle, kein Equipment, kein Zähler. Wenn ich die Variablennamen beschreibend vergebe, gibt es bei 5 Programmierern 8 verschiedene Namen (service_material_number, mat_for_service, srv_mat,...) Gerade wenn dann noch englische Begriffe verwendet werden, weiß man nicht mehr, ob man den Spediteur nun "carrier" oder "forwarder" oder "forwarding agent" oder was auch immer nennen soll.
Doppelklick drauf und du weißt esewx hat geschrieben:Wenn man es allerdings macht, dann ist es deutlich, dass der Programmierer ein System hat. Wenn ich in einem Programm auf "ungepräfixte" Variablen treffe, muss ich mich immer fragen: "hat der das nun nur in der lokalen methode gemacht, oder macht der das auch bei globalen Variablen?". Und schon kann ich mir nicht sicher sein, ob die verwendeten Variablen lokal oder global definiert sind.
Du erklärst doch nicht DIR dein Programm, sondern anderen! Abgesehen davon ist (ich wiederhole mich) die viel schwieriger zu ermittelnde Frage die, was ist denn da nun drin? Klar, EKKO-Daten. Bestellungen? Anfragen? Angebote? Um das zu ermitteln, muss ich mich durchs Coding wühlen. Ganz ehrlich: Da hab ich lieber die weniger wenig naheliegenden Dinge erklärt als die, die nur einen Doppelklick entfernt sind. Und in Eclipse muss ich nichtmal mein Coding verlassen (um per Doppelklick ins TOP-Include zu springen), sondern kriege das schön im Fenster eingeblendet.Unit605 hat geschrieben: In 'fremden' Programmen gebe ich Dir recht.
In meinen eigenen Programmen kann ich Dir, ohne nachzusehen, sagen, wie die internen Tabellen aufgebaut sind oder ob man mit Doppelklick nachsehen muss.
Richtig. Leider hat die nie jemand erarbeitet und bei der SAP selbst machts jeder wie er will. Da hab ich schon alles gesehen von L_T_TABLE über LT_TABLE und L_TABLE hin zu TABLE. Wie gesagt: Ungarische Notation ist das alles nicht. Nur Abguckerei a la "das ist von der SAP, dann ist das sicher gut".ewx hat geschrieben:Schneller geht's, wenn man sich an gewisse "Standards" hält. Das die sich mit der Zeit ändern, ist klar.

So ist das mit Meinungen: Wenn ich eine Meinung habe, halte ich die für richtig und sag das auch. Wenn ich nicht weiß, ob etwas richtig ist oder nicht, hab ich noch keine Meinung dazu.Unit605 hat geschrieben:Bei Deinem Diskussionstil habe ich persoenlich immer das Gefuehl, dass nur das gilt und richtig ist, was Du fuer gueltig und richtig haelst..

Komisch. Ich weiß das ziemlich oft gar nicht, wenn ich das Programm schreibe. Gerade bei Feldsymbolen nicht.zzcpak hat geschrieben:sogar dabei ist in unseren Programmierrichtlinien ein Präfix vorgeschrieben. Auch das finde ich ggfs. sinnvoll. Damit weiss man gleich, ob das gute Stück auf eine einfache Variable oder einen Arbeitsbereich zeigt.
Man sollte sich mal zusammensetzen und sowas wie ein "Handbuch für gutes Coding" schreiben - aber dazu müssten sich genug Leute erstmal einig werdenzzcpak hat geschrieben:Dem stimme ich zu. Die Frage wäre doch dann, was kann man als "verantwortungsvoller" Entwickler tun, damit ggfs. der Nachfolgeentwickler nicht wie ein Ochs vorm Berg vor dem vererbten Coding steht und es lieber neuschreiben als ändern wollte

Ich finde <LS_..> sieht einfach unschön aus...zzcpak hat geschrieben:sogar dabei ist in unseren Programmierrichtlinien ein Präfix vorgeschrieben. Auch das finde ich ggfs. sinnvoll. Damit weiss man gleich, ob das gute Stück auf eine einfache Variable oder einen Arbeitsbereich zeigt.ewx hat geschrieben:3. Für Feldsymbole verwende ich fast nie einen Präfix, da diese (fast) immer lokal definiert sind. Bei Methoden immer. Da geht's gar nicht anders.
Ja, das ist Kleinkram. Trotzdem kann man sich herrlich lange darüber streiten. Wirklich erstaunlich...zzcpak hat geschrieben:Aber halten wir uns nicht zu sehr an diesem Punkt auf? Präfixe sehe ich eher als kosmetisches Problem.
Ich denke, wir sind uns einig, dass Pauschalisierungen à la "ABAP OO ist kagge" oder "nur ABAP OO" oder "niemals SELECT *" wenig zielführend sind.
Das ist ein schwieriges Thema und hängt davon ab, was für einen Anspruch der Kunde hat.zzcpak hat geschrieben:Dem stimme ich zu. Die Frage wäre doch dann, was kann man als "verantwortungsvoller" Entwickler tun, damit ggfs. der Nachfolgeentwickler nicht wie ein Ochs vorm Berg vor dem vererbten Coding steht und es lieber neuschreiben als ändern wollteewx hat geschrieben: Das ist genau das Problem an der Diskussion: Jeder ist sich und seinen Gewohnheiten am nächsten. Der nächste, der an das Programm ran muss, kann dann sehen, wo er bleibt. Auf bestimmte Eigenarten kann man sich (muss man sich) einstellen. Schneller geht's, wenn man sich an gewisse "Standards" hält. Das die sich mit der Zeit ändern, ist klar.
Tut sie das?ralf.wenzel hat geschrieben:Die SAP lässt "uns" mit dem Thema ja allein.
Weil ich frage, wie es bei anderen Kunden läuft?black_adept hat geschrieben:Hallo Ralf,Ich glaube dass du einfach eine zu dünne Haut hast.ralf.wenzel hat geschrieben:Wie sind eure Beobachtungen? Ist UML bei euren Kunden ein Begriff? Gibt es dort definierte Entwicklungs-, Test- und Abnahmeszenarien? Ist meine Beobachtung repräsentativ oder gerate ich einfach immer nur an die falschen Kunden?
Das frage ich JEDEN Kunden, ehrlich. Und ich bekomme immer zur Antwort: Weil die SAP das auch so macht. Dass sie das schon lange nicht mehr so macht und nie konsequent durchgezogen haben, wissen die nicht. Die wissen auch nicht, dass es Ungarische Notation gibt und wie die *korrekt* aussieht.black_adept hat geschrieben:Warum wendet man so etwas an?
Sprich: Du betrachtest dich als ausführendes Organ (ich hätte fast "Tippkraft" geschrieben, aber damit würde ich dich beleidigen - was ich explizit NICHT tun möchte)? Ich betrachte mich als Berater und wenn ein Kunde in meinen Augen Mist macht, dann sag ich ihm das. In vielen Dingen wird das durchaus positiv aufgenommen.ralf.wenzel hat geschrieben:Wenn ich gute Laune habe verrate ich dem Kunden auch meine Gedanken - aber er zahlt letztlich und ist damit König.
Hm, mein derzeitiger Kunde überlegt, u. a. WEGEN ADT schneller hochzuwechseln.ralf.wenzel hat geschrieben:Find ich ja alles ganz toll - aber die meisten meiner Kunden (und ich damit auch) werden auf die neuen Kernels ( 7.4 aufwärts ) wohl noch ein paar Jährchen verzichten so sie denn mit dem alten gut über die Runden kommen.
Aber du musst doch irgendwie Testszenarien aufbauen und sie sowie deren Ergebnisse dokumentieren. Und da man die Änderung ohnehin (hoffentlich!) dokumentiert, hat man schnell einen Stapel Papier zusammen, der sich zusammensetzt aus:black_adept hat geschrieben:Das ist so eins meiner Lieblingsthemen. Ich habe bisher noch keinen Kunden gehabt, wo ich das hätte einbauen müssen. In der Theorie ist das was ganz Schickes - aber wenn das Geld/Zeit knapp werden ist das die erste Stelle an der gespart wird. Ich denke schon länger darüber nach, wenn ich eine neue Methode schreibe, ob ich da nicht einen Unit-test hinterklemmen könnte.

Das Buch steht auf der Liste der Bücher, die ich lesen werde, wenn Galileo im 21. Jahrhundert angekommen ist, was wohl in einigen Wochen passieren wird. Fachbücher brauche ich bei der Arbeit, darum will ich sie auf dem iPad haben und nicht in zwei Koffern mit mir herumschleppenewx hat geschrieben:Tut sie das?ralf.wenzel hat geschrieben:Die SAP lässt "uns" mit dem Thema ja allein.
Buch: ABAP Programmierrichtlinien

Und du erwartest nicht, dass, wenn du mit einer schlechten Idee kommst und der Fachmann hat eine bessere, dass er sie dir zumindest vorschlägt, ohne dass du ihn explizit nach Verbesserungsvorschlägen fragst?ewx hat geschrieben:Das ist ein schwieriges Thema und hängt davon ab, was für einen Anspruch der Kunde hat.
Wenn ich mein Auto zum Tunen in die Werkstatt bringe, dann erwarte ich, dass es professionell gemacht wird.
Auja, solche Diskussionen führe ich gerade mit einem gemeinsamen Bekannten von uns. Ganz - schweres - Brot.ewx hat geschrieben:Und auch bei professionell gibt es ja eine gewisse Bandbreite...
