Je vais développer ici un commentaire que j'ai fait à When a method has too many parameters? où l'OP avait des problèmes mineurs avec la fonction de quelqu'un d'autre qui avait 97 paramètres. Je suis un grand croyant dans l'écriture de code maintenable (et il est souvent plus facile d'écrire que de lire, d'où Steve McConnell (éloge soit sur son nom) "écrire seulement le code"). Comme les statistiques montrent comment la plupart des accidents de voiture se produisent aux intersections et mon expérience (ymmv) montre que la plupart des anomalies se produisent aux interfaces, je vais lister certaines choses que je fais pour éviter les malentendus aux interfaces et inviter vos commentaires si Je vais vraiment mal. Mais, plus important encore, j'invite vos suggestions pour rendre les choses encore plus prophylactiques (voir, il y a une question après tout - comment améliorer les choses?).Comment améliorer la maintenabilité des fonctions
- Une documentation adéquate, sous la forme de commentaires au format DoxyGen (à jour) décrivant la nature et le marsouin de chaque paramètre.
- absolument NON shenanigans de porte arrière avec des variables globales comme paramètres cachés. Essayez de limiter les paramètres à six ou à huit. Si plus, passez les paramètres liés en tant que structure; si elles ne sont pas liées alors reconsidérer sérieusement la fonction. S'il a besoin d'autant d'informations, est-ce trop complexe à maintenir? Peut-il être décomposé en plusieurs fonctions plus petites?
- utiliser le CONST aussi souvent que possible et significatif.
- une norme de codage qui dit que les paramètres d'entrée viennent en premier, puis seulement en sortie, et enfin en entrée/sortie, qui sont modifiés par la fonction.
J'ai aussi quelques macros #define vides pour faire des déclarations encore plus facile à lire:
#
Définir l'entrée
#
définir SORTIE
#
définissent MODIFY
bool DoSomething (INPUT int howOften, ACTUALISATION Wdiget * MyWidget, SORTIE WidgetPtr * const nextWidget)
Juste quelques idées. Comment puis-je améliorer cela? Merci.
Limiter les paramètres à six ou huit? Pourquoi pas sept? Et quand le maximum serait-il l'un ou l'autre? – waiwai933
Quoi de neuf avec le titre? – womp
Votre fonction DoSomething a ses paramètres dans le désordre. :-) – xpda