Se non prevedi di estenderlo a più parti, sarei riluttante ad aggiungere un database ancora. Avere un database significa una grande pila di cose da imparare per te e più cose da installare per farlo funzionare per altre persone. L'aggiunta di un database incorporato mantiene portatile l'eseguibile finale, ma ora qualcuno con il tuo codice sorgente ha ancora una cosa per iniziare a lavorare.
Penso che un elenco di costanti chiaramente definite e funzioni di implementazione delle regole aiuteranno molto. Se dai a tutto nomi naturali e ti concentri su tecniche di programmazione letteraria , dovresti essere in grado di creare un programma leggibile.
Idealmente, finirai con un codice che dice:
LeftBearingHoleDepth = BearingWidth + HoleDepthTolerance;
if (not CheckPartWidth(LeftBearingHoleDepth, {other parameters})
{whatever you need to adjust}
A seconda di quanto sono locali le costanti, sarei tentato di dichiararle nelle funzioni in cui sono usate, ove possibile. È abbastanza utile girare:
SomeAPICall(10,324.5, 1, 0.02, 6857);
in
const NumberOfOilDrainHoles = 10
const OilDrainHoleSpacing = 324.5
{etc}
SomeAPICall(NumberOfOilDrainHoles, OilDrainHoleSpacing, {etc}
Questo ti dà in gran parte un codice auto-documentante e incoraggia anche chiunque modifichi il codice a dare nomi altrettanto significativi a ciò che aggiungono. L'avvio locale consente inoltre di gestire più facilmente il numero totale di costanti che accumulerai. Diventa un po 'fastidioso se devi continuare a scorrere un lungo elenco di costanti per assicurarti che il valore sia quello che desideri.
Un consiglio per i nomi: metti la parola più importante a sinistra. Potrebbe non leggere altrettanto bene, ma rende le cose più facili da trovare. La maggior parte delle volte stai guardando un pozzetto e ti chiedi del bullone, non guardi un bullone e ti chiedi dove lo fa, quindi chiamalo SumpBoltThreadPitch non BoltThreadPitchSump. Quindi ordinare l'elenco delle costanti. Successivamente, per estrarre tutti i passi del thread è possibile ottenere l'elenco in un editor di testo e utilizzare la funzione find oppure utilizzare uno strumento come grep per restituire solo le righe che contengono "ThreadPitch".