Potenziate il vostro processo di sviluppo con i vostri moduli

Tradotto automaticamente da Deepl

Durante la fase di sviluppo, il rilevamento tempestivo degli errori di sintassi è importante per produrre codice di qualità. Il controllo del codice in tempo reale è un valido aiuto per gli sviluppatori. Non solo migliora l’efficienza, ma anche la qualità e la produttività. Correggendo immediatamente gli errori, ci si può concentrare sullo sviluppo funzionale dell’applicazione, anziché sui fastidiosi bug che emergono durante la compilazione.

Con 4D 20 R8, siamo lieti di introdurre due nuove funzionalità che trasformeranno il vostro modo di lavorare.

  • La prima è la possibilità di associare una classe a un modulo, consentendo il controllo della sintassi con espressioni come Form.myProperty.
  • La seconda è un controllo in tempo reale delle espressioni nell’elenco delle proprietà, con la visualizzazione di una descrizione dell’errore o dell’avviso.

Associare una classe a un modulo

È ora possibile associare una classe utente a un modulo utilizzando il nuovo attributo“Form class“. Questo attributo consente di digitare l’oggetto restituito dal comando Form consentendo l’uso di espressioni come Form.myProperty. La classe utente può provenire dal progetto host o da un componente.

Istanziazione automatica in fase di esecuzione

Quando si apre un modulo, è possibile passare un oggetto al comando DIALOG al comando. Questo oggetto diventa quindi accessibile all’interno del modulo tramite il comando Form.

L’oggetto passato al comando DIALOG può essere un’istanza di una classe. Ecco come fare:

var $h : Integer
var $o : cs.Person
$o :=cs.Person.new()
$h :=Open form window("FormWithClass")
DIALOG ("FormWithClass"; $o)

A partire dalla versione 4D 20 R8, se si definisce la proprietà“Form class” nel modulo senza passare un oggetto al comando DIALOG comando, 4D ne gestisce automaticamente l’istanziazione. È sufficiente scrivere:

var $h : Integer
$h :=Open form window("FormWithClass")
DIALOG ("FormWithClass")

Il comando Form restituisce un oggetto che è un’istanza della classe “Persona”. È possibile verificarlo nel modulo con il comando OB Instance of comando.

$n:=OB Instance of(Form; cs.Person)

Ora è possibile richiamare una funzione di classe semplicemente scrivendo: “Form.message()”.

Vantaggi per l’editor di codice

Funzione di completamento automatico

Il comando Form beneficia del completamento automatico nell’editor di codice. Digitando “Form.”, 4D suggerisce tutte le proprietà e le funzioni dichiarate nella classe associata. Non è più necessario invertire due lettere nel nome di una proprietà o usare una lettera minuscola invece di una maiuscola nel nome di una funzione.

Ad esempio, con la nostra semplice classe “Persona” definita come segue:

property firstname : Text
property lastname : Text
property email : Text

Class constructor
This .firstname:="
This .lastname:=""
This .email:="

Function get fullname () : Text
return This .firstname+" "+This.lastname

Quando si utilizza il comando Form all’interno di un metodo di form, l’editor di codice offre un elenco accurato per completare il codice:

blank

Controlla la sintassi

Quando si utilizzano espressioni del tipo “Form.myProperty” nel metodo del modulo o nei metodi degli oggetti del modulo, si beneficia della potenza del controllore di sintassi.

Prendiamo l’esempio della classe precedente. Nel codice del metodo del form, noi:

  • forziamo un numero intero in un attributo di testo,
  • utilizziamo un attributo sconosciuto,
  • assegniamo un intero a un attributo calcolato di tipo testo.

Nell’immagine seguente, si può notare che l’editor di codice ha identificato efficacemente gli errori o le avvertenze.

blank

Vantaggi per l’editor di moduli

Controllo della sintassi integrato nell’elenco delle proprietà

Il controllo della sintassi non è più limitato all’editor di codice. Questa funzionalità è stata estesa alle espressioni dell’elenco delle proprietà (come“Datasource” o“Meta info expression“). Di conseguenza, riceverete notifiche immediate di errori e avvisi.

blank

Non è necessario attendere i risultati della compilazione per scoprire gli errori. Grazie a questa funzione, sarete informati già in fase di editing.

Compilazione

Naturalmente, se non avete risolto direttamente i nuovi errori, il compilatore li individuerà comunque durante il processo di compilazione.

Finestra di dialogo del compilatore

Tutte le avvertenze e gli errori vengono visualizzati nella finestra di compilazione. Facendo doppio clic sull’espressione di un oggetto del modulo, si aprirà il modulo corrispondente, evidenziando l’oggetto problematico e la sua proprietà nell’elenco delle proprietà.

blank

Comando di compilazione del progetto

In caso di fallimento della compilazione, il comando Compile project restituisce un oggetto con le avvertenze e gli errori. Il comando è stato esteso anche per restituire le avvertenze o gli errori rilevati nelle espressioni degli oggetti form.

{
    "success":false,
    "errori":[{
        "message": "Proprietà non dichiarata 'firstName' utilizzata. (550.26)",
        "isError":false,
        "code":{
            "type": "formObjectExpression",
            "formName": "Persona",
            "objectName": "InputFirstname",
            "propertyName": "dataSource",
            "file":"[oggetto File]".
            }
        }]
}

Cosa c’è dopo

Queste nuove funzionalità renderanno la scrittura del codice più semplice ed efficiente.

Non esitate a condividere le vostre esperienze con questi miglioramenti. I vostri commenti sono preziosi per aiutarci a capire come questi strumenti vi aiutano quotidianamente e per adattarli meglio alle vostre esigenze.

Vanessa Talbot
- Product Owner - Vanessa Talbot è entrata a far parte del team di 4D Program nel giugno 2014. In qualità di Product Owner, è incaricata 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. Ha lavorato sulla maggior parte delle nuove funzionalità di multi-threading preemptive e anche su un argomento molto complesso: la nuova architettura per le applicazioni con motore. Vanessa si è laureata presso Telecom Saint-Etienne. Ha iniziato la sua carriera presso il Criminal Research Institute come sviluppatrice per il dipartimento audiovisivo. Ha lavorato anche nei settori dei media e della medicina come esperta di supporto tecnico, produzione e documentazione di nuove funzionalità.