Verbesserte Kompilierung mit Direct Typing in 4D

Mit 4D 20 R7 können Sie sich von „Compiler_“-Methoden verabschieden und haben mehr Freiheit, wie und wo Sie Ihre Variablen deklarieren. Sparen Sie Zeit und konzentrieren Sie sich dank Direct Typing auf Ihren Entwicklungsworkflow und Ihren Programmierprozess.

In früheren Versionen von 4D hatten Entwickler zwei Möglichkeiten, die Variablentypisierung während der Kompilierung zu handhaben. Wenn die Einstellung „Kompilierungspfad“ auf etwas anderes als „Alle Variablen sind typisiert“ gesetzt war, versuchte der Compiler, die Typen der nicht typisierten Variablen auf der Grundlage ihrer Verwendung im Code zu ermitteln. Dies konnte zwar die Variablendeklarationen vereinfachen, hatte aber einen Nachteil:

  • Langsamere Kompilierung: Die Typisierung erfordert einen zusätzlichen Kompilierungsdurchgang, was den gesamten Kompilierungsprozess verlangsamt.
  • Risiko von Fehlern: Der Compiler könnte falsche Typen ableiten, was die Fehlersuche erschweren könnte.

 

Um diese Probleme zu vermeiden, wurde den Entwicklern empfohlen, eine strenge Typisierung mit der Option „Alle Variablen sind typisiert“ zu erzwingen. Dies erforderte jedoch die Deklaration aller Prozess- und Interprozessvariablen in speziellen „Compiler_“-Methoden.

Einführung der direkten Typisierung

Um diese Herausforderungen zu bewältigen, haben wir Direct Typing eingeführt, das die Art und Weise, wie Variablen während der Kompilierung deklariert und typisiert werden, vereinfacht.

Mit Direct Typing müssen Sie keine „Compiler_“-Methoden mehr verwenden, um Prozess- oder Interprozessvariablen zu deklarieren. Stattdessen können Sie sie jetzt dort definieren, wo sie logischerweise in Ihren Code gehören, sei es innerhalb einer Methode, einer Klasse oder in einem anderen geeigneten Kontext. Dadurch erhalten Sie mehr Kontrolle über die Organisation Ihres Codes und verbessern die Kapselung.

Diese Änderung bietet Ihnen die Flexibilität, Ihren Code so zu organisieren, wie Sie es wünschen, und gewährleistet gleichzeitig Typsicherheit und effiziente Kompilierung.

Einführung der direkten Typisierung in Ihren Projekten

Unabhängig davon, ob Sie an einem neuen oder einem bestehenden Projekt arbeiten, lässt sich Direct Typing leicht in Ihren Arbeitsablauf integrieren.

  • Neue Projekte verwenden immer Direct Typing. Das bedeutet, dass Sie sofort von den Vorteilen der flexiblen Variablendeklaration und der besseren Codeorganisation profitieren können.

  • Für bestehende Projekte finden Sie eine neue Einstellung im Kompilierungspfad, mit der Sie Direct Typing ein- oder ausschalten können. Dies gewährleistet die Kompatibilität mit älterem Code und gibt Ihnen die Möglichkeit, in Ihrem eigenen Tempo zu migrieren.

Aktivieren Sie einfach diese Einstellung, und Sie können Ihre Prozess- und Interprozessvariablen dort deklarieren, wo es in Ihrem Code am sinnvollsten ist.

Was ist neu bei der direkten Typisierung?

Die #declare Syntax ist jetzt obligatorisch für die Deklaration von Methodenparametern mit direkter Typisierung, wodurch traditionelle Compiler-Befehle wie C_TEXT, C_LONGINT, und andere obsolet. Einer der Hauptvorteile ist, dass Sie, insbesondere bei Komponenten, die Komponenten nicht mehr kompilieren müssen, wenn Sie eine Host-Basis kompilieren. Der Compiler holt die Methodenprototypen automatisch direkt aus dem Code der Komponente, wodurch der Entwicklungsprozess vereinfacht und beschleunigt wird.

Zur Unterstützung bei der Konvertierung von Compiler-Befehlen wie C_TEXT und C_LONGINT in die Deklarationssyntax var haben wir ein 4D Makro auf GitHub zur Verfügung gestellt. Sie können es hier aufrufen: 4D-Makros auf GitHub.

Wie funktioniert es?

  • Wenn der Compiler auf eine Variable stößt, die nicht explizit typisiert wurde, fügt er diese Variable zu einer Liste von „zu typisierenden“ Variablen hinzu.
  • Der Compiler unterbricht dann vorübergehend die Kompilierung der aktuellen Methode und fährt mit der Kompilierung anderer Methoden fort.
  • Bevor er die Kompilierung unterbricht, sammelt er alle Variablendefinitionen in der Methode.
  • Nach der Kompilierung aller Methoden prüft der Compiler, ob alle Variablen in der Liste der zu typisierenden Variablen gefunden und einem Typ zugeordnet wurden.
    • Ist dies der Fall, wird die Kompilierung der zuvor angehaltenen Methoden fortgesetzt.
    • Ist dies nicht der Fall, werden Fehler erzeugt, die auf nicht typisierte Variablen hinweisen.

Schlussfolgerung

Die Einführung von Direct Typing stellt eine wesentliche Verbesserung in der Handhabung von Variablendeklarationen in 4D dar. Durch den Wegfall der „Compiler_“-Methoden und die Möglichkeit, Variablendeklarationen frei im Code vorzunehmen, haben 4D Entwickler nun mehr Flexibilität und Kontrolle über die Strukturierung ihrer Projekte.

Um mehr über Direct Typing zu erfahren und wie Sie es in Ihren Projekten implementieren können, lesen Sie unsere Dokumentation.

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.