Un typage plus strict des objets basé sur les classes

Traduit automatiquement de Deepl

Avec 4D 20 R10, le typage d’objets fait un grand pas en avant, vous donnant plus de confiance et de contrôle dans votre code. Au lieu de simplement vérifier si une valeur est un objet, 4D vérifie désormais qu’il s’agit d’une instance d’une classe spécifique. Cela permet une auto-complétion plus intelligente, une validation en ligne et des contrôles de compilation plus stricts, ce qui vous aide à détecter rapidement les erreurs et à écrire un code plus clair et plus facile à maintenir.

Les avantages ne s’arrêtent pas aux variables et aux résultats des fonctions. Cette amélioration s’applique également à votre modèle de données : vous pouvez désormais affecter une classe définie par l’utilisateur ou une classe native (comme le nouveau 4D.Vector pour votre implémentation AI) directement à un champ d’objet dans l’éditeur de structure. 4D comprend alors la forme complète de l’objet, de la conception à l’exécution, ce qui permet une expérience de développement plus sûre et plus fiable.

Champ d’objet typé HDI

Contrôles de la syntaxe et du compilateur pour les attributs des champs d’objets

4D vérifie désormais le type d’objet dans les endroits suivants :

  • dans l’éditeur de code, lors de la saisie

  • Compilateur, lors de la vérification syntaxique complète

L’utilisation incorrecte d’un objet ou les fautes de frappe apparaîtront désormais sous forme d’avertissements ou d’erreurs précoces, ce qui améliorera la fiabilité lors de la refonte et du débogage.

Remarque : vous pouvez assigner un objet d’une classe à l’objet d’une autre classe, à condition qu’une classe hérite de l’autre. Cela permet à la fois l’upcasting (l’affectation d’une sous-classe à une variable de la classe mère) et le downcasting (le casting d’une classe mère vers une sous-classe, le cas échéant). Par exemple, puisque la classe Dog hérite de la classe Animal, vous pouvez écrire les deux en toute sécurité :
var $animal:cs.Animal:=cs.Dog.new()  // upcasting
// or
var $dog:cs.Dog:=cs.Animal.new()  // downcasting

Définir une classe pour les champs de type objet

Lorsque vous déclarez un champ de type objet dans votre structure de données, l’inspecteur de l’éditeur de structure comprend désormais un nouveau champ de saisie Classe. Cela vous permet d’associer le champ à une classe spécifique, telle qu’un objet commercial ou une classe native 4D.

Par exemple, vous pouvez attribuer le type 4D.Vector à un champ nommé Vector :

blank

Remarque : Le champ Classe n’est disponible que lorsque vous travaillez en mode projet.

Éditeur de code plus intelligent : Auto-complétion des attributs

Grâce à l’association de classes, l’éditeur de code suggère désormais les attributs définis dans la classe spécifiée lorsque vous écrivez du code impliquant le champ objet.

blank

Conclusion

Cette mise à jour représente une amélioration majeure dans la façon dont les champs d’objets sont traités dans 4D. En prenant en charge un typage plus strict avec les classes, 4D vous offre une expérience de développement plus robuste, plus facile à maintenir et plus intelligente, depuis la conception de la structure jusqu’à l’exécution.

Fabrice Mainguené
- Product Owner -Fabrice Mainguené a rejoint l'équipe du programme 4D en novembre 2016. En tant que Product Owner, il est en charge de rédiger les user stories puis de les traduire en spécifications fonctionnelles. Son rôle est également de s'assurer que l'implémentation de la fonctionnalité livrée répond au besoin du client.Après avoir obtenu une licence en informatique au CNAM, Fabrice a rejoint une petite société d'édition de logiciels en tant que développeur Windev. Il a ensuite travaillé pour différentes entreprises dans les domaines de l'industrie et du commerce en tant que développeur Windev et web ainsi que conseiller technique sur les nouvelles fonctionnalités.