Strengere klassenbasierte Typisierung für Objekte

Automatisch übersetzt von Deepl

Mit 4D 20 R10 macht die Objekttypisierung einen großen Schritt nach vorn und gibt Ihnen mehr Sicherheit und Kontrolle über Ihren Code. Anstatt einfach zu prüfen, ob ein Wert ein Objekt ist, überprüft 4D jetzt, ob es sich um eine Instanz einer bestimmten Klasse handelt. Dies ermöglicht eine intelligentere Autovervollständigung, Inline-Validierung und strengere Kompilierungsprüfungen, die Ihnen helfen, Fehler frühzeitig zu erkennen und einen klareren, besser wartbaren Code zu schreiben.

Die Vorteile beschränken sich nicht nur auf Variablen und Funktionsergebnisse. Diese Verbesserung gilt auch für Ihr Datenmodell: Sie können jetzt eine benutzerdefinierte oder native Klasse (wie die neue 4D.Vector für Ihre AI-Implementierung) direkt einem Objektfeld im Struktureditor zuweisen. 4D versteht dann die gesamte Form des Objekts, von der Entwurfszeit bis zur Laufzeit, was eine typsichere und zuverlässigere Entwicklung ermöglicht.

HDI typisiertes Objektfeld

Syntax- und Compiler-Prüfungen für Objektfeld-Attribute

4D prüft jetzt den Objekttyp an folgenden Stellen:

  • Code-Editor, während der Eingabe

  • Compiler, während der vollständigen Syntaxprüfung

Falsche Objektverwendung oder Tippfehler werden nun als frühe Warnungen oder Fehler angezeigt, was die Zuverlässigkeit beim Refactoring und Debugging erhöht.

Hinweis: Sie können ein Objekt aus einer Klasse einem Objekt einer anderen Klasse zuweisen, sofern die eine Klasse von der anderen erbt. Dies unterstützt sowohl Upcasting (Zuweisung einer Unterklassenvariable an eine Oberklassenvariable) als auch Downcasting (Casting einer Oberklasse an eine Unterklasse, wenn dies sinnvoll ist). Da zum Beispiel die Klasse Dog von der Klasse Animal erbt, können Sie beide sicher schreiben:
var $animal:cs.Animal:=cs.Dog.new()  // upcasting
// or
var $dog:cs.Dog:=cs.Animal.new()  // downcasting

Definieren Sie eine Klasse für Objektfelder

Wenn Sie in Ihrer Datenstruktur ein Feld vom Typ Objekt deklarieren, enthält der Inspektor des Struktureditors jetzt ein neues Eingabefeld Klasse. Damit können Sie das Feld einer bestimmten Klasse zuordnen, z. B. einem Business-Objekt oder einer nativen 4D Klasse.

Als Beispiel können Sie einem Feld mit dem Namen Vector den Typ 4D.Vector zuweisen:

blank

Hinweis: Das Feld Klasse ist nur verfügbar, wenn Sie im Projektmodus arbeiten.

Smarter Code Editor: Auto-Vervollständigung von Attributen

Dank der Klassenzuordnung schlägt der Code-Editor jetzt Attribute vor, die in der angegebenen Klasse definiert sind, wenn Sie Code schreiben, der das Objektfeld einbezieht.

blank

Fazit

Dieses Update stellt eine wesentliche Verbesserung in der Behandlung von Objektfeldern in 4D dar. Durch die Unterstützung einer strengeren Typisierung mit Klassen bietet Ihnen 4D eine robustere, wartbare und intelligente Entwicklungserfahrung vom Strukturentwurf bis zur Laufzeitausführung.

Fabrice Mainguené
- Product Owner -Fabrice Mainguené gehört seit November 2016 zum 4D Program Team. Als Product Owner ist er verantwortlich für das Schreiben der User Stories und deren Umsetzung in funktionale Spezifikationen. Seine Aufgabe ist es auch, sicherzustellen, dass die gelieferte Funktionsimplementierung den Kundenanforderungen entspricht.Nach seinem Bachelor-Abschluss in Informatik am CNAM arbeitete Fabrice als Windev-Entwickler bei einem kleinen Software-Verlag. Danach arbeitete er für verschiedene Unternehmen in Industrie und Handel als Windev- und Webentwickler sowie als technischer Berater für neue Funktionen.