Project

General

Profile

Actions

Coding Guideline » History » Revision 7

« Previous | Revision 7/17 (diff) | Next »
Carsten Rose, 06.11.2022 10:38


Coding Guideline

QFQ General

I-MATH

  • Tabelle:
    • Name: Camel case, erster Buchstabe gross, kein Underscore. Bsp: FormElement
    • Im ERD sollte bei jeder Tabelle auch die zu verwendende Abkürzung genannt werden. Bsp: FormElement - fe
    • Sind in
  • Spalten:
    • Name: Camel case, erster Buchstabe klein, kein Underscore. Bsp: formId
    • Erste Spalte: id, Primary Key.
    • Vorletzte Spalte: created, datetime, default: current timestamp
    • Letzte Spalte: modified, datetime, default: current timestamp, on update current timestamp
    • Wird auf einen Primary Key einer anderen Tabelle verwiesen, ergibt sich der Name aus <Kuerzel><Id>. Bsp: pId.
      • Gibt es in einer Tabelle a) mehrere Spalten auf die gleiche Fremdtabelle (und muessen daher unterschiedlich sein) oder b) soll der Spaltenamen klarer beschreiben, kann eine Spezifizierung angehängt werden. Bsp: pIdApplicant, pIdHead. Auf jeden Fall steht das pId am Anfang .
  • Formular
    • Name: Camel case, erster Buchstabe klein, kein Underscore. Bsp: formElement
    • Sind in einer Instanz mehrere Tools, sollten die Forms anhand eines Prefixes unterschieden werden. Bsp: dissReview, maReview.
  • Spalte 'reference'
    • Name: Als Vorbereitung um unterschiedliche Tools aus verschiedenen Instanzen mergen zu koennen, wird empfohlen die Referenz Records mit einem eindeutigen Prefix zu versehen. Bsp: my_exercise_group
  • BPMN
    • Zeichnung via DrawIO
  • ERD
    • Zeichnung via DrawIO
  • Constants
    • Define constants in Extensions > QFQ > Custom > ...
    • Dynamic values under Extensions > QFQ > Dynamic > ...
  • QFQ content record
    • Name the record in the header field with:
      • Regular content: [QFQ] ...
      • Content in the left column: [QFQ,L] ...
      • Content in englisch: [QFQ,E] ...
    • The first lines should be comments, explaining what the record does and list all passed variables. Optional variables are indicated by using STORE_EMPTY or STORE_ZERO:
      #
      # Shows list of Persons living in {{country:SE}}
      #
      # {{country:SE}}
      #
      
    • A good practice is to define all possible STORE_SIP Parameter in a SQL at the beginning and copy them to STORE_RECORD:
      
      10 {
      # Normalize variables
      sql = SELECT '{{country:SE}}' AS _country
      
      # List selected persons per country
      20.sql = SELECT p.name FROM Person AS p WHERE p.country LIKE '{{country:R}}'
      }
      
    • Always comment the queries like shown above.
  • QFQ Form
    • Mandatory SIP parameter should to be mentioned in Form.requiredNew and/or Form.requiredEdit.
    • If the title of a FormElement isn’t descriptive enough, use tooltip, note or extraButtonInfo to explain to a user.
    • Every Form should show a descriptive title to identify the task and current record. E.g. Not ‘Person’ but ‘Person: John Doe’.
    • Often the length of a pill title if not sufficient, use a tooltip to give a more descriptive hint.

Updated by Carsten Rose over 1 year ago · 7 revisions