Tipizzazione più rigorosa degli oggetti in base alla classe

Tradotto automaticamente da Deepl

Con 4D 20 R10, la tipizzazione degli oggetti compie un importante passo avanti, offrendo maggiore sicurezza e controllo sul codice. Invece di verificare semplicemente se un valore è un oggetto, 4D ora verifica che sia un’istanza di una classe specifica. Questo sblocca un completamento automatico più intelligente, una convalida in linea e controlli di compilazione più severi, aiutandovi a individuare tempestivamente gli errori e a scrivere codice più chiaro e manutenibile.

I vantaggi non si fermano alle variabili e ai risultati delle funzioni. Questo miglioramento si applica anche al modello di dati: ora è possibile assegnare una classe definita dall’utente o nativa (come il nuovo 4D.Vector per l’implementazione dell’IA) direttamente a un campo oggetto nell’editor delle strutture. 4D comprende quindi la forma completa dell’oggetto, dal momento della progettazione a quello dell’esecuzione, consentendo un’esperienza di sviluppo più sicura e affidabile.

Campo oggetto tipizzato HDI

Controlli di sintassi e compilatore per gli attributi dei campi oggetto

4D ora controlla il tipo di oggetto nei seguenti punti:

  • Editor del codice, durante la digitazione

  • Compilatore, durante il controllo completo della sintassi

L’uso non corretto degli oggetti o gli errori di battitura appaiono ora come avvisi o errori precoci, aumentando l’affidabilità durante il refactoring e il debugging.

Nota: è possibile assegnare un oggetto di una classe a un oggetto di un’altra classe, purché una classe erediti dall’altra. Questo supporta sia l’upcasting (assegnazione di una sottoclasse a una variabile della classe genitore) che il downcasting (fusione di una classe genitore in una sottoclasse, se opportuno). Ad esempio, poiché la classe Cane eredita dalla classe Animale, si possono scrivere tranquillamente entrambe:
var $animal:cs.Animal:=cs.Dog.new()  // upcasting
// or
var $dog:cs.Dog:=cs.Animal.new()  // downcasting

Definire una classe per i campi oggetto

Quando si dichiara un campo di tipo oggetto nella struttura dati, l’ispettore dell’editor Struttura include ora un nuovo campo di input Classe. Questo permette di associare il campo a una classe specifica, come un oggetto business o una classe nativa 4D.

Ad esempio, è possibile assegnare un tipo 4D.Vector a un campo denominato Vector:

blank

Nota: il campo Classe è disponibile solo quando si lavora in modalità progetto.

Smarter Code Editor: Completamento automatico degli attributi

Grazie all’associazione di classi, l’editor di codice suggerisce ora gli attributi definiti nella classe specificata quando si scrive codice che coinvolge il campo oggetto.

blank

Conclusione

Questo aggiornamento rappresenta un importante miglioramento nel trattamento dei campi oggetto in 4D. Supportando una tipizzazione più rigorosa con le classi, 4D offre un’esperienza di sviluppo più robusta, manutenibile e intelligente, dalla progettazione della struttura fino all’esecuzione in runtime.

Fabrice Mainguené
- Product Owner -Fabrice Mainguené si è unito al team di 4D Program nel novembre 2016. In qualità di Product Owner, è incaricato di scrivere le storie degli utenti e di tradurle in specifiche funzionali. Il suo ruolo è anche quello di assicurarsi che l'implementazione della funzionalità fornita soddisfi le esigenze del cliente.Dopo aver conseguito una laurea in Informatica presso il CNAM, Fabrice è entrato a far parte di una piccola società di pubblicazione di software come sviluppatore Windev. In seguito ha lavorato per diverse aziende del settore industriale e commerciale come sviluppatore Windev e web e come consulente tecnico su nuove funzionalità.