À moins que vous ne prévoyiez d'étendre cela à plusieurs parties, je serais réticent à ajouter une base de données pour l'instant. Avoir une base de données signifie un gros tas de choses à apprendre pour vous, et plus de choses à installer pour le faire fonctionner pour d'autres personnes. L'ajout d'une base de données intégrée conserve l'exécutable final portable, mais quelqu'un avec votre code source a maintenant une chose de plus à faire fonctionner.
Je pense qu'une liste de constantes clairement nommées et de fonctions d'implémentation de règles sera très utile. Si vous donnez tout à des noms naturels et que vous vous concentrez sur des techniques de programmation alphabétisées , vous devriez pouvoir créer un programme lisible.
Idéalement, vous vous retrouverez avec un code qui dit:
LeftBearingHoleDepth = BearingWidth + HoleDepthTolerance;
if (not CheckPartWidth(LeftBearingHoleDepth, {other parameters})
{whatever you need to adjust}
Selon la façon dont les constantes sont locales, je serais tenté de les déclarer dans les fonctions dans lesquelles elles sont utilisées dans la mesure du possible. Il est très utile de tourner:
SomeAPICall(10,324.5, 1, 0.02, 6857);
dans
const NumberOfOilDrainHoles = 10
const OilDrainHoleSpacing = 324.5
{etc}
SomeAPICall(NumberOfOilDrainHoles, OilDrainHoleSpacing, {etc}
Cela vous donne un code largement auto-documenté et encourage également toute personne qui modifie le code à donner des noms similaires à ce qu'ils ajoutent. Le démarrage local facilite également le traitement du nombre total de constantes que vous accumulerez. Cela devient un peu ennuyeux si vous devez continuer à faire défiler une longue liste de constantes pour vous assurer que la valeur est celle que vous souhaitez.
Un conseil pour les noms: mettez le mot le plus important à gauche. Il peut ne pas lire aussi bien, mais cela facilite la recherche des choses. La plupart du temps, vous regardez un puisard et vous vous interrogez sur le boulon, vous ne regardez pas un boulon et vous vous demandez où il se trouve, alors appelez-le SumpBoltThreadPitch et non BoltThreadPitchSump. Triez ensuite la liste des constantes. Plus tard, pour extraire tous les pas de thread, vous pouvez obtenir la liste dans un éditeur de texte et utiliser la fonction de recherche ou utiliser un outil comme grep pour renvoyer uniquement les lignes qui contiennent "ThreadPitch".