Strategien und Best-Practise für die Namensgebung von Feldern, Beziehungen und Layouts.
Ziele sind:
- Teamkollegen und nachfolgende Programmierer sollen die Programmierung gut nachvollziehen können.
- der Überblick soll auch bei wachsenden Anwendungen und steigender Komplexität bestehen bleiben.
- Wie wird eine Historie der Veränderungen erstellt? Wie arbeitet man effizient im Team?
- Schrittweise Entwicklung der Regeln, deren Optimierung
- Beispiel
- Anwendungs Beispiele
- Grenzen der Regeln
- Fallen und Fehlerquellen
- Diskussion / Fragen
Vortrag erklärt die Vorraussetzungen für 2. Teil: Aufbau von eigener FrameWorks in FileMaker
Fmk2019 Produktentwicklung mit FileMaker by Harald Mair
FMK2015: Strukturierte Namensgebung als Basis für komplexe Programmierung by Wolfgang Wunderlich
1. Wolfgang Wunderlich (r)
Strukturierte Namensgebung
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
Strukturierte Namensgebung
…als Basis für komplexe Programmierung im Team
Erfahrungsbericht mit Empfehlungen
für Coding-Conventions
2. Wolfgang Wunderlich
FrameWork-Konzepte in FileMaker
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
Wolfgang Wunderlich
• Dipl.Soz.Pädagoge
• Gesprächstherapeutische Ausbildung
• Jugendarbeit, Psychatrie
• EDV-Pädagoge, Ausbildung auf DOS, SINIX, Siemens 2000
• Anwendungsprogammierer IHK (COBOL, PASCAL)
• Systematics HH
• Produktmananger RagTime 3/4 UNICORN
• Selbsständig seit 1989, Trainer und FM-Entwickler
• GF DeskTop Organisation GmbH seit 1993
4. Wolfgang Wunderlich
Strukturierte Namensgebung
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
Erfahrung
• Neue Mitarbeiter brauchen Zeit bis Produktivität möglich ist
• …kosten ohne Produktiv zu sein
• ..benötigten Einweisung, Gespräche, Zeit … Aufwand
• Jeder Mitarbeiter-Wechsel bedeutet Verlust von Know How
• Neue Mitarbeiter können keine Erinnerung an frühere Vorgänge haben…
• Nicht alles geht mit Dokumentation
5. Wolfgang Wunderlich
Strukturierte Namensgebung
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
Typische Ausgangs-Situationen
für TeamBildung
• Mehr Aufträge oder Chancen, als man allein schafft
• Kunden verlangen Personen-unabhängiges „Backup“
• Mehrere Programmierer, gemeinsames Projekt oder Produkt
• Partnerschaften / Firmengründung um größere Kunden zu gewinnen
• Weitere Programmierer kommen ins Team
• Anfänger kommen ins Team (Ausbildung)
• Manpower für Produktentwicklung
• Manpower für Support
6. Wolfgang Wunderlich
Strukturierte Namensgebung
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
Klassische Herausforderungen an
Teamarbeit
• Klarheit der Abrechnungs-Modi
• Wer ist federführend, wer bringt das Projekt / den Kunden?
• Was ist mit Kundenschutz nach Ende des Projekts?
• Wer ist für den Kunden erreichbar (support)?
• Wer bearbeitet die Reklamationen / liefert ggf. kostenlosen Support?
• Schutz meines Codes ?
• Toleranz, Geduld und Vertrauen sind Schlüsselqualifikationen!
• Fehlende oder nur rudimentäre Naming-Conventions
• Namensgebung, Programmierstil, Dokumentation
7. Wolfgang Wunderlich
Strukturierte Namensgebung
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
Klassische Herausforderungen an
Teamarbeit
• Namensgebung für Felder, Beziehungen, Skripte und Variable ist mehr als
das, was die Programmierung zum Funktionieren benötigt:
• Namensgebung ist Teil der Dokumentation!
• Namensgebung ist Kommunikation!
• Das gilt nicht nur für FileMaker
9. Wolfgang Wunderlich
Strukturierte Namensgebung
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
Fehlende Nachvollziehbarkeit?
(das Anti-Pattern)
• Ich verstehe nach einiger Zeit nicht mehr, was ich warum genau so
programmiert habe
• Ich verstehe nicht was und warum ein/e ANDERE/R etwas so programmiert hat
• Ich verstehe nicht warum es DAMALS so programmiert wurde
• D.h ich kann im Nachhinein keine Muster, keine Redundanz erkennen
• Ergebnis:
• Ich bin nicht handlungsfähig oder habe extrem hohen Aufwand
• Ich kann nichts delegieren
10. Wolfgang Wunderlich
Strukturierte Namensgebung
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
Nachvollziehbarkeit: der Umkehrschluss
• Wenn ich nach längerer Zeit noch verstehe, was ich getan habe und warum
• Wenn ich auch komplexen Code immer noch gut lesen kann, dann…
• …habe ich es selber leichter
• …und auch andere haben ein Chance, meine Arbeit weiter zu
führen
• Voraussetzung für Teamarbeit, Arbeitsteilung
• Heute ist das gestern von morgen
• D.h: dass ich sich JETZT Gedanken machet, was SPÄTER nötig ist um
die Programmierung noch zu verstehen.
11. Wolfgang Wunderlich
Strukturierte Namensgebung
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
Die einzig richtige Methode für
Namensgebung
• …gibt es natürlich nicht.
• FTS-Zitat:
„Wichtig ist, dass Sie eine Methode finden, mit der Sie gut zurechtkommen“
• Wie kommt man zu seiner eigenen Methode?
• Sich selber Regeln geben
• …und daran halten
• die Regeln weiter entwickeln
• Im Team gemeinsame ( Meta-) Regeln finden
• ….die von allen Beteiligten akzeptiert werden
• Ziel: Nachvollziehbarkeit erzeugen
12. Wolfgang Wunderlich
Strukturierte Namensgebung
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
Regelbildung im Team: Akzeptanz
• Regeln sollten…
• möglichst einfach sein
• nachvollziehbar
• praktikabel
• gut zu merken,
• flexibel
• …und alle Beteiligten sollten Einfluss darauf haben
• Es darf kein starres Regelwerk sein!
• Regeln müssen ausgesprochen werden!
• Erst dann werde sie zu explizitem Wissen!
13. Wolfgang Wunderlich
Strukturierte Namensgebung
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
Regelbildung, das richtige Maß
• Wie viel Regeln braucht man?
• So wenig wie möglich
• Kritische Elemente rausfinden
• NICHT ALLES regeln wollen
• Man merkt schnell, wenn Regeln sinnlos oder überflüssig sind
14. Wolfgang Wunderlich
Strukturierte Namensgebung
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
Situationen, die von klarer
Namensgebung profitieren
• Die eigene Lösung wächst und wird unübersichtlich
• Ich brauche Supporter für meine Lösungen
• Ich verstehe meine eigene Programmierung (von damals) nicht mehr :-(
• Meine Lösung soll übergeben werden
• Ich entwickele und pflege ein Produkt
• Eine Fremd-Lösung soll übernommen / überarbeitet werden
16. Wolfgang Wunderlich
Strukturierte Namensgebung
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
Zur Erinnerung:
• Formeln und Referenzen sind unabhängig von Feldnamen!!!
• Namen können geändert werden …
• … Funktionalität und Referenzen bleiben erhalten !!
• Ausnahmen:
• SQL-Queries
• …hole(Feldname)
• Feld nach Namen einstellen
• …es gibt Lösungen dafür…
Technische Ebene: FileMaker Pro
17. Wolfgang Wunderlich
Strukturierte Namensgebung
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
• Sich immer und immer wieder Fragen:
• OK, es funktioniert, aber geht es einfacher (als es es ist) ?
• Kann ich es besser?
• Wenn ja, dann..
• Never CHANGE RUNNING CODE!
• Überarbeitung von bereits funktionierenden Lösungen nach den Regeln.
• Evtl. Neuprogrammierung - wenn es nicht anders geht.
Was kann muss man tun?
18. Wolfgang Wunderlich
Strukturierte Namensgebung
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
Grundsatz-Entscheidungen,
(Meta-) Regeln für Namensgebung
• Sprache: deutsch, englisch oder gemischt?
• Abkürzen oder Namen möglichst ausschreiben?
• Abkürzungen-Liste
• Singular oder Plural verwenden („Adresse“ oder „Adressen“)
• Genitive verwenden? („RechnungsPosten“ oder „RechnungPosten“)
• Standards aufbauen
• Gleiche Name für gleiche Funktionen, Variablen etc.
• Wieviel Dokumentation im Code ? (Scripte, Formeln, CF’s)
• Grundsatz:
• Nachvollziehbarkeit vor Code-Optimierung ! - ??
19. Wolfgang Wunderlich
Strukturierte Namensgebung
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
Beispiele aus der täglichen
Programmierer-Praxis von DTO
(Patterns)
…..über mehr als 10 Jahre gewachsen
mit über einem Dutzend Beteiligter
20. Wolfgang Wunderlich
Strukturierte Namensgebung
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
Namensregeln für Felder (DTO)
• Primary Key in Basistabellen:
• ID
• Secondary-Keys: ID_Basistabelle
• z.B. ID_Adressen
• ID_Personen
• ID_Rechnungen
• Im Beziehungen-Dialog
• ID = ID_Basistabelle
21. Wolfgang Wunderlich
Strukturierte Namensgebung
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
Weitere Standards für Felder(DTO)
• Systemdaten beginnen mit „Sys_ „
• z.B. Sys_Erstellt_am, Sys_erstellt_von, Sys_geändert_am usw.
• Kategorisierung durch gemeinsame Prefixe: z.B. „Adr_“
• Adr_Firma
• Adr_Strasse
• Adr_PLZ
• Adr_Ort
• Vorteil: …Diese Felder werden auch gemeinsam sortiert
22. Wolfgang Wunderlich
Strukturierte Namensgebung
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
• Flags (Inhalt 1,leer oder 0) beginnen immer mit flg_
• flg_Feiertag, flg_aktuell, flg_offen, flg_bezahlt, flg_Kassenstand_negativ
• Werte indizierbar
• Konstante Werte:
• kWert z.B. kEins = 1
• Globale Felder beginnen mit kleinem g -> gFeldname
• z.B. gTitel, gUser, gSuchfeld, gExportString etc.
• Berechnete Strings für diverse Zwecke (Label) beginnen mit lbl_
• z.B: lbl_Person_voller_Name
Weitere Standards für Feldbenennung
(DTO)
23. Wolfgang Wunderlich
Strukturierte Namensgebung
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
Namensregeln für Basis-Tabellen und
Beziehungen (DTO)
• Lesart: _ = „zu“
z.B.:
PERSONEN
Verteilerposten_Personen
Verteiler_Verteilerposten_Personen
24. Wolfgang Wunderlich
Strukturierte Namensgebung
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
Namensregeln für Basis-Tabellen und
Beziehungen (DTO)
Plural-Namen:
• Adressen
• Personen
• Rechnungen
• Jobs
• Aufgaben
• Inventar
• Einkauf
etc.
GROSSBUCHSTABEN für TO’s
der BASIS-Tabellen:
• ADRESSEN
• RECHNUNGEN
• DOKUMENTE
etc.
25. Wolfgang Wunderlich
Strukturierte Namensgebung
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
Namensregeln für Beziehungen (DTO)
• Lesart: # = gefiltert nach
Kontakte_Personen#JJJJ
• Lesart: . = im Kontext von
Adressen_Personen.Firmenwechsel
27. Wolfgang Wunderlich
Strukturierte Namensgebung
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
• Standard-Tabellen-Namen und Abkürzungen
• GLOBAL
• Voreinstellungen -> VE
• z.B. VE_Adressen
• Beziehung zum aktuellen Benutzer-Datensatz:
• CurrUser
• Wiedervorlagen -> WV
• z.B. WV_Rechnungen
Benennung von Basis-Tabellen
und Beziehungen (TO’s)
28. Wolfgang Wunderlich
Strukturierte Namensgebung
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
Layout der Basis-Tabelle = NAME DER BASISTABELLE in
GROSSBUCHSTABEN
z.B. RECHNUNGEN
Layout-Varianten mit „ - „ angehängt an Basis-Layout
• Liste -> Rechnungen - Liste
• Suche -> Rechnungen - Suche
• Printouts -> Rechnungen - Printout: Rechnung
• Rechnungen - Printout: Mahnung etc.
• Hilfslayout -> Rechnungen - Hilfslayout
• Tabelle -> Rechnungen - Tabelle
Benennung von Layouts
29. Wolfgang Wunderlich
Strukturierte Namensgebung
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
Skriptnamen (DTO)
• Aktion: Bezeichnung
• z.B.: NEU: Adressen
• Aktualisieren: Rechnung-Summen
• Bei Parameterübergabe*
• Aktion: Bezeichnung [Param1, Param2, {opt.Param3}; …]
• Neu: Bezugsdatensatz [Tabelle, ID; {Zugriffsbereich}, {01=Dialog}]
• Parameter in [ ]
• optionale Parameter in { }
*Übergabe mehrerer Parameter an Scripte mit CF - wird an anderer Stelle
beschrieben (->P.R.)
30. Wolfgang Wunderlich
Strukturierte Namensgebung
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
Variable in Skripten
• Variablen-Namen möglichst Ausschreiben
• Für lesbaren Skriptlauf formulieren
• Gleiches immer gleich benennen
• Nicht: $Datei, $DateiName, $PDFName - immer gleich!!
• evt. Liste für Standard-Variable führen (Coding-Conventions)
• Variable Schrittweise aufbauen
• $Ordnerpfad = Hole(DeskTopPfad)
• $Dateiname = „Rechnung_“& RgNr & „.pdf“
• $Dateipfad = $Ordnerpfad & $Dateiname
31. Wolfgang Wunderlich
Strukturierte Namensgebung
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
Variable in Skripten
• Variable Schrittweise aufbauen
• Wenn( $AufSchreibtischSpeichern = 1
• Variable setzen: $Ordnerpfad = Hole(DeskTopPfad)
• sonst
• Variable setzen: $Ordnerpfad = Hole(TemporärerPfad)
• Ende Wenn
• Nachvollziehbarkeit vor Code-Optimierung
33. Wolfgang Wunderlich
Strukturierte Namensgebung
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
Variable in Skripten
• Variable in Skripten initialisieren
• D.h: Skriptparameter zu Begin eines
Skripts auslesen
• $Tabelle = SkriptParam [1]
• $Feldname = SkriptParam [2]
• $Tabelle = SkriptParam [3]
34. Wolfgang Wunderlich
Strukturierte Namensgebung
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
• Namensgebung kann jeder, kostet nichts, scheint keine hohe Kunst zu sein,
aber mit den beschriebenen Regeln haben wir erreicht was wir wollten:
• Entlastung im Team
• Kürzere Einarbeitungszeiten
• Mehr Sicherheit bei der Arbeitsteilung
• Große Entlastung bei der Programmierung
• Hohe Nachvollziehbarkeit bei CodePflege und Fehlersuche
• Vorraussetzung für höhere Komplexität der Programmierung
• Vorraussetzung für FrameWork-Konzepte mit FileMaker umsetzen
Fazit