2010-03-10 6 views
2

ReSharper (jumelé avec StyleCop) m'a fait un peu d'un maniaque de la propreté quand il vient d'obéir à la plupart de ses règles. L'un des jeux de règles (je crois de StyleCop) impose d'abord de placer les fonctions publiques, puis les fonctions static, ensuite protected, puis private static et enfin private.Une bonne organisation des fonctions publiques/privées protégées/dans les classes

Les fonctions privées sont généralement celles qui sauvegardent la fonctionnalité des fonctions publiques en tant qu'aides. Disons que je l'ordre renforcé StyleCop des fonctions ci-dessous:

public FunctionA 
public FunctionB 

private FunctionAHelper1 
private FunctionAHelper2 
private FunctionBHelper1 
private FunctionBHelper2 

... mais ce n'est pas si mal, je me trouve vouloir garder les méthodes privées de soutien à proximité de la fonction qui est de les appeler, il semble plus comme ceci:

public FunctionA 
private FunctionAHelper1 
private FunctionAHelper2 

public FunctionB 
private FunctionBHelper1 
private FunctionBHelper2 

Qu'avez-vous appris qui a guidé l'organisation des méthodes dans une classe? Quel est le raisonnement de StyleCop pour vouloir la commande publique/protégée/privée? Est-ce vraiment une question de préférence, ou y a-t-il des avantages que je ne vois pas?

+0

duplication possible de [Meilleure pratique: commande publique/protégée/privée dans la définition de la classe?] (Http://stackoverflow.com/questions/1760850/best-practice-ordering-of-public-protected-private- définition intra-classe) – nawfal

Répondre

6

Il vient vraiment à ce que vous préférez, et comment vous aimez naviguer dans votre code.

Vous pouvez commander vos méthodes:

  • alphabétiquement (GetEntityA, GetEntityB, StoreEntityA, ...)
  • Par zone fonctionnelle (méthodes, méthodes entityA entityB, ...)
  • Par classification (méthodes de validation, les méthodes de conversion, les méthodes d'aide, ...)
  • Par visibilité (méthodes publiques, méthodes internes, les méthodes protégées, ...)

Vous pouvez bien sûr combiner alphabétiquement avec la visibilité ou ce que vous voulez. Je préfère une combinaison de l'alphabet avec la visibilité et pour les grandes classes avec classification. Pour les classes DAO, parfois zone fonctionnelle).

3

Si vous utilisez quoi que ce soit IDE comme, il ne fondamentalement pas d'importance. Vous naviguerez via le code via l'interface graphique, en commandant la liste des propriétés, des membres, etc., selon vos besoins.

(je crois formatage du code ne doit pas être une question lors de la programmation. Bien sûr, il doit être sain d'esprit et d'adhérer aux normes de l'entreprise, mais il existe des outils qui font la mise en forme automatique.)

2

Il est sans aucun doute une préférence de style , tout comme les arguments de style pour placer l'accolade, s'il y a un espace avant/après parenthèses, lignes vides, etc.

Comme vous, je préfère garder les fonctions privées à proximité des fonctions publiques qui les utilisent. Plus précisément, je préfère regrouper les fonctions en fonction de leur utilisation ou fonctionnalité, plutôt que par ordre alphabétique ou de visibilité. Les deux derniers ont l'impression qu'ils sont simplement pour des raisons esthétiques plutôt que d'un réel avantage organisationnel compte tenu de l'utilisation répandue des IDE de nos jours, ce qui rend la navigation des fonctions très simple. Pourtant, lorsque vous travaillez ou lisez sur une certaine fonctionnalité, il est encore plus facile de simplement utiliser la page vers le haut et la page vers le bas que vous travaillez, plutôt que de devoir consulter la recherche tout le temps lorsque vous souhaitez naviguer fonction à sa fonction d'aide.

Questions connexes