Je modélise un système chimique et j'ai des problèmes pour nommer mes éléments / éléments dans une énumération.
Je ne sais pas si je dois utiliser:
- la formule atomique
- le nom chimique
- un nom chimique abrégé.
Par exemple, l'acide sulfurique est H2SO4 et l'acide chlorhydrique est HCl.
Avec ces deux, j'utiliserais probablement juste la formule atomique car elles sont raisonnablement courantes.
Cependant, j'en ai d'autres comme l'hexafluorosilicate de sodium qui est Na2SiF6.
Dans cet exemple, la formule atomique est pas aussi évidente (pour moi) mais le nom chimique est affreusement longue: myEnum.SodiumHexaFluoroSilicate
. Je ne sais pas comment je pourrais trouver en toute sécurité un nom chimique abrégé qui aurait un modèle de dénomination cohérent.
Il y a quelques problèmes que j'essaie de résoudre en nommant les éléments enum.
Le premier est la lisibilité, les noms plus longs présentant un problème.
La seconde est la facilité à récupérer le code pour les nouveaux responsables, et ici les noms plus courts posent un problème.
Le problème suivant est que les propriétaires d'entreprise se réfèrent généralement au nom chimique complet, mais pas toujours. Les produits chimiques "en bouchée" sont désignés par leur formule.
La dernière préoccupation est de s'assurer qu'elle est cohérente. Je ne veux pas d' une convention de dénomination mixte car il sera impossible de se rappeler laquelle utiliser.
Du point de vue de la maintenance, laquelle des options de dénomination ci-dessus préféreriez-vous voir et pourquoi?
Remarque: tout ce qui se trouve en dessous de la ligne est supplémentaire | matériel de clarification. Veuillez ne pas vous enliser. La principale question concerne la dénomination des objets maladroits.
Option atomique
myEnum.ChemTypes public { H2SO4, HCl, Na2SiF6 }
Option de nom chimique
myEnum.ChemTypes public { Acide sulfurique, Acide hydrochlorique, SodiumHexafluorosilicate }
Voici quelques détails supplémentaires des commentaires sur cette question:
- Le public du code sera uniquement des programmeurs, pas des chimistes.
- J'utilise C #, mais je pense que cette question est plus intéressante lorsque l'on ignore le langage d'implémentation.
- Je commence avec 10 à 20 composés et j'aurais au plus 100 composés, donc je n'ai pas besoin de m'inquiéter pour chaque composé possible. Heureusement, c'est un domaine fixe.
L'énumération est utilisée comme clé pour les recherches afin de faciliter les calculs chimiques communs / génériques - ce qui signifie que l'équation est la même pour tous les composés, mais vous insérez une propriété du composé pour compléter l'équation.
- Par exemple, la masse molaire (en g / mol) est utilisée lors du calcul du nombre de moles à partir d'une masse (en grammes) du composé. FWIW, Masse Molaire == Poids Molaire.
- Un autre exemple de calcul commun est la loi du gaz idéal et son utilisation de la constante de gaz spécifique
Un exemple de fonction pourrait ressembler à ceci:
public double GetMolesFromMass (double mass_grams, myEnum.ChemTypes chem) { double molarWeight = MolarWeightLookupFunctionByChem (chem); // renvoie des grammes / mole double mole = masse / poids molaire; // convertit en taupes taupes de retour; } // Exemple d'appel: myMoles = GetMolesFromMass (1000, myEnum.ChemTypes.Na2SiF6); //*ou* myMoles = GetMolesFromMass (1000, myEnum.ChemTypes.SodiumHexafluorosilicate);
public double GetSpecificGravity (myEnum.ChemTypes chem, double conc) { // récupère la gravité spécifique du composé chimique en fonction de la concentration double sg = SpecificGravityLookupTableByChem (chem, conc); }
Ainsi, l'énumération du nom du composé est utilisée comme clé et pour assurer la cohérence du référencement du composé avec les fonctions associées.
Substance
toutes les propriétés dont ils ont besoin.