Frage

Ich weiß nicht, etwas über ABAP, abgesehen davon eine OO-Seite hat, und ich möchte eine Art von helicopterview davon haben, bevor ich es im Detail zu sehen beginnen. Ich weiß, ich kann all das finden, wenn es zu studieren, aber wie ich für den Anfang, sagte Ich mag zu wissen, was ich zu tun haben.

  • Ist es (immer) zusammengestellt?
  • Typestem: Ist es stark typisierte? Ist es Typinferenz verwenden?
  • Vererbung: single / muliple, Interface-ähnliche Strukturen
  • Kollektionen: Hat es Sammlungen abgesehen von Arrays? Hat es generische Sammlungen? Nutzt es Liste Verständnis?
  • Wie wäre es (con / contra / in) Varianz in Arrays, returntypes, parametertypes, zwingende?
  • Jedes Exceptionhandling?
  • Alle Build in Design by Contract unterstützt?
  • Alles, was bemerkenswert wie oposed zu anderen bekannten Sprachen?
  • ...

Jede allgemeine Informationen über Merkmale würden grundsätzlich willkommen!

War es hilfreich?

Lösung

  

Ist es (immer) zusammengestellt?

ABAP „kompiliert“ in eine Art von Byte-Code (die so genannten „Last“ aus historischen Gründen), die dann durch eine virtuelle Maschine innerhalb des Kernels ausgeführt wird. Sie können dies mit Java, mit einem großen Unterschied vergleichen: Die Last ist nicht maschinenunabhängig, aber für den Zielmaschinentyp optimiert. Dies bedeutet, dass in einer Systemlandschaft mit mehreren verschiedenen Arten von Anwendungsservern, können Sie mehrere vorkompilierte Lasten für ein einziges Programm haben. Nicht, dass Sie jemals irgendetwas davon sehen werden -. Der gesamte Übersetzungsvorgang automatisch gehandhabt wird

  

Typestem: Ist es stark typisierte? Ist es Typinferenz verwenden?

Stark mit einem System von generischen Typen oben eingegeben hat. Beachten Sie, dass es ein vollständiges Datenwörterbuch, das in die Sprache integriert ist - sehr praktisch.

  

Vererbung: single / multiple, Interface-ähnliche Strukturen

Single Vererbung. Schnittstellen unterstützt werden, einschließlich Verbund Schnittstellen und Implementierungskomponente Umbenennungs (zwei Schnittstellen IF_FOO IF_BAR und kann sowohl ein Verfahren BAZ definieren, und eine Klasse beide Schnittstellen Implementierung hat dann zwei Methoden IF_FOO ~ BAZ und IF_BAR ~ BAZ).

  

Kollektionen: Hat es Sammlungen abgesehen von Arrays? Hat es generische Sammlungen? Nutzt es Liste Verständnis?

Was Sie wissen als „Array“ in anderen Programmiersprachen existiert nicht wirklich in ABAP - Sie in der Regel so genannte „interne Tabellen“ statt verwenden werden. Denken Datenbank artig strukturierten In-Memory-Tabellen. Es gibt einige Ideen von Collection-Klassen verteilt über verschiedene Module, aber der übliche Weg, dies zu tun, ist die interne Tabellen verwenden - definieren eine sogenannte Tabellentyp von Linien, die entweder Verweise auf Instanzen oder Strukturen darstellen, die eine solche Referenz enthalten.

  

Wie wäre es (con / contra / in) Varianz in Arrays, returntypes, parametertypes, zwingende?

Arrays: siehe oben. Aufschalten: Sie können nicht die Methodensignatur ändern, wenn Interface-Methode implementieren oder übergeordnete Klasse Methoden überschreiben. Wie für die Parameter -, der davon abhängt, ob Sie Daten (oder Datenreferenzen) oder Objektreferenzen. Im Allgemeinen kann Upcasting passieren implizit, während Sie die einziehe explizit ausführen müssen.

  

Jedes Exceptionhandling?

Ja. Mehr als nur ein Weg - wieder für die historischen Gründe (Abwärtskompatibilität). Klassenbasierte Ausnahmen werden unterstützt.

  

Jeder Build in Design by Contract unterstützt?

Nichts, dass ich bin mir dessen bewusst.

  

Alles, was bemerkenswert wie oposed zu anderen bekannten Sprachen?

Viele Sachen. Sie könnten http://www.volker-wegert.de/en/node/ überprüfen möchten 17 und http://www.volker-wegert.de/en/node / 21 für einen zugegebenermaßen voreingenommen Überblick: -)

Andere Tipps

Ich werde versuchen, einige Dinge zu schaffen, die vorherige Antwort nicht hat, während das Überspringen was sie erwähnt haben:

Ist es (immer) zusammengestellt?
Nun, die Schnittstelle für den Programmierer sagt „Aktivieren“, nicht kompiliert werden, aber das ist, weil es in der Versionsverwaltung integriert ist. Wenn Sie etwas aktivieren, kompiliert es und macht die Quelle und Binärversionen die „aktive“ Version. Wenn jemand versucht, Quelle ausführen, die nicht kompiliert wird, wird es automatisch erstellt werden, wie sie es ausgeführt werden.

Typestem: Ist es stark typisierte
? Grundsätzlich ja. ABAP ist wie eine seltsame Kreuzung zwischen Pascal und COBOL. Es gibt „Feldsymbole“, die wie Zeiger sind. Darüber hinaus gibt es jetzt generische Typen. (Und generische Feldzeiger). Eines der coolsten Dinge ist, dass es kein Unterschied zwischen ABAP-Typen und Datenbanktypen. Jede Tabelle Sie einen Strukturtyp machen werden automatisch. Das heißt, wird ABAP mit der Datenbank in einer Weise integriert, die so gut wie keine anderen Sprachen sind. Sie können auch SQL schreiben, das ist eigentlich ein Teil des ABAP ist, im Gegensatz zu nur ein String ist, wie in anderen Sprachen.

Vererbung: single / muliple, Interface-ähnliche Strukturen
Es gibt Schnittstellenstrukturen, ich in der Regel nicht benutzen. Wenn Sie eine Menge von wiederverwendbaren Klassen gemacht, hätten sie eine gute Idee sein, aber.

Kollektionen: Hat es Sammlungen abgesehen von Arrays? Hat es generische Sammlungen? Nutzt es Liste Verständnis?
Besser, es hat „Interne Tabellen“, die im Grunde eine Art von dynamischen Arrays sind. Sie können von fast jeder Art erklärt werden, einschließlich der im Data Dictionary. Sie können durchgeschleift werden, sortiert, etc. Es gibt verschiedene Arten, darunter gehasht und sortiert Varianten.

Jede Ausnahmebehandlung?
Sowohl OOP und nicht-OOP-Typen.

Alles, was bemerkenswert wie oposed zu anderen bekannten Sprachen?
Wie die anderen Poster sagte, eine ganze Menge. Es ist sehr gut auf alles, was mit Datenbank-Operationen zu tun, und die Wiederverwendung von komplexen Strukturen und Datentypen. Es ist selbstverständlich ist Cross-Datenbank und Cross-Plattform (O und Prozessor). Es hat ein sehr gutes Versionsmanagement und Transportsystem. Das gesamte SAP-System hat eine sehr gute Unterstützung für mehrere Sprachen. Sie können automatisch einfache Bildschirme mit entsprechenden Titeln und Auswahlbox erhalten, was bedeutet, dass Sie weniger Programmierung und mehr Arbeit tun. Sie müssen nicht zwischen DB-Typen und Sprachtypen zugeordnet usw.
Dinge, es ist weniger als gut:
1. Zahlen werden in der Regel als ASCII gespeichert, das macht es weniger als schnell in Mathe in vielen Anwendungen.
2. Die meisten der Datenstrukturen sind sehr normalisiert, Ihre Daten bedeutet manchmal über 50 Tabellen verteilt werden kann. „Star“ Anfragen sind sehr häufig. Eingebaute Funktionen zum Abrufen von Daten (F. E. Logische Datenbanken) sind dein Freund in diesen Fällen.
3. SAP versucht, alles für alle zu sein, so gibt es eine Menge von Konfigurationsoptionen sind usw. und manchmal eine Funktion nicht tut, was man zu erwarten, basierend auf Verhalten in der Vergangenheit.
4. ABAP ist manchmal sehr ausführlich. Versuchen Sie, die „Muster“ auf etwas Einfaches wie GUI_DOWNLOAD verwenden.
5.SAP war sehr ehrgeizig, was sie nahm an, und damit lief in Grenzen von Hardware, Betriebssystemen und RDBM Systeme früh auf. So haben sie Vermächtnis kludges damit zu beschäftigen, die nicht schön sind. (Billardtische, Cluster-Tabellen, etc.)
6. Wenn Sie ein Programm aktivieren, ist es nicht tun, volle Kompatibilität Prüfung mit den Funktionsmodulen eingesetzt. Es gibt Situationen, in denen etwas ohne Probleme aktiviert wird, aber dann stürzt zu Laufzeit, auch in Fällen, in denen es bei der Kompilierung gefangen werden können.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top