La logica dietro a questi template è semplice ed è la stessa di qualsiasi modello, si hanno uno o più file esattamente identici a quelli che si vogliono come risultato, ma con alcuni placeholder (segnaposto), che verranno sostituiti in fase di generazione. La potenzialità dei template generati con Qt Creator è che i placeholder non sono solo statici, ma possono cambiare in base a semplici script Javascript che vengono eseguiti durante la generazione dei file. Un’altra caratteristica interessante è che i file generati possono essere inclusi automaticamente nel progetto su cui si sta lavorando e con questo si intende che vengono anche aggiunti al file .pro come source o include.

Codice

Questo esempio permette la creazione di un modulo di codice C strutturato secondo i principi di programmazione che determinano la modularità del codice, la sua documentabilità e la predisposizione ad essere analizzato staticamente e con eventuali unit test. Per come è strutturato il modulo che verrà generato per spiegare come costruire i propri wizard di codice, è possibile impiegarlo per lo sviluppo di codice embedded (firmware) anche certificato, ma allo stesso modo è valido per la scrittura di software con le medesime caratteristiche.

L’immagine seguente mostra come sarà strutturato il modulo completo che è possibile generare con l’esempio proposto:

Il modulo, come indicato anche in precedenza, è composto da:

  • Implementation
  • Public Interface
  • Private Interface
  • Shared Interface

Dove Private e Shared Interface sono generabili opzionalmente.

La documentazione Doxygen di questo modulo sarà suddivisa nei corrispondenti gruppi, tutti inclusi nel gruppo padre MODULE:

  • PUBLIC
  • PRIVATE
  • SHARED

Ovviamente non esiste un gruppo IMPLEMENTATION perchè nel modulo Implementation sono contenute le implementazioni delle funzioni e le dichiarazioni “Private” e “Public”.

Nella pagina successiva è possibile scaricare i file di esempio.


lu122131

Luca Bortolotti Lentsch Engineer And Photographer From Lombardia Currently in Friuli Venezia Giulia #lu122131ph