Je comprends l'importance d'un code bien documenté. Mais je comprends aussi l’importance du code auto-documenté . Plus il est facile de lire visuellement une fonction particulière, plus nous pouvons avancer rapidement pendant la maintenance du logiciel.
Cela dit, j'aime séparer les grandes fonctions en d'autres plus petites. Mais je le fais à un point où une classe peut en avoir plus de cinq simplement pour servir une méthode publique. Maintenant, multipliez cinq méthodes privées par cinq publiques et vous obtiendrez environ 25 méthodes cachées qui ne seront probablement appelées qu'une seule fois par ces méthodes publiques.
Bien sûr, il est maintenant plus facile de lire ces méthodes publiques, mais je ne peux pas m'empêcher de penser qu'avoir trop de fonctions est une mauvaise pratique.
[Modifier]
Les gens me demandent pourquoi, à mon avis, avoir trop de fonctions est une mauvaise pratique.
La réponse simple: c'est un instinct.
Ma conviction n’est pas, pour une part, étayée par des heures d’expérience en génie logiciel. C'est juste une incertitude qui m'a donné un "blocage de l'écrivain", mais pour un programmeur.
Dans le passé, je ne programmais que des projets personnels. Ce n'est que récemment que je suis passé aux projets en équipe. Maintenant, je veux m'assurer que les autres peuvent lire et comprendre mon code.
Je n'étais pas sûr de ce qui améliorera la lisibilité. D'un côté, je pensais séparer une grande fonction en une autre plus petite avec des noms intelligibles. Mais il y avait un autre côté de moi qui disait que c'était simplement redondant.
Donc, je demande à ceci de m'éclairer afin de choisir le bon chemin.
[Modifier]
Ci-dessous, j'ai inclus deux versions permettant de résoudre mon problème. Le premier résout le problème en ne séparant pas de gros morceaux de code. Le second fait des choses séparées.
Première version:
public static int Main()
{
// Displays the menu.
Console.WriteLine("Pick your option");
Console.Writeline("[1] Input and display a polynomial");
Console.WriteLine("[2] Add two polynomials");
Console.WriteLine("[3] Subtract two polynomials");
Console.WriteLine("[4] Differentiate two polynomials");
Console.WriteLine("[0] Quit");
}
Deuxième version:
public static int Main()
{
DisplayMenu();
}
private static void DisplayMenu()
{
Console.WriteLine("Pick your option");
Console.Writeline("[1] Input and display a polynomial");
Console.WriteLine("[2] Add two polynomials");
Console.WriteLine("[3] Subtract two polynomials");
Console.WriteLine("[4] Differentiate two polynomials");
Console.WriteLine("[0] Quit");
}
Dans les exemples ci-dessus, ce dernier appelle une fonction qui ne sera utilisée qu'une seule fois pendant toute la durée d'exécution du programme.
Remarque: le code ci-dessus est généralisé, mais il est de même nature que mon problème.
Maintenant, voici ma question: laquelle? Est-ce que je choisis le premier ou le second?