Question

Je commence sur un projet où les chaînes sont écrites dans le code la plupart du temps. De nombreuses chaînes ne peuvent être utilisés dans quelques endroits, mais certaines chaînes sont courant dans de nombreuses pages.

Est-ce un bon usage de mon temps à factoriser les littéraux en étant des constantes que l'application est assez bien établie et fonctionne bien? Quels seraient les avantages à long terme pour le faire?

Était-ce utile?

La solution

Seulement si ce projet doit être pris en charge dans le futur est-ce un bon usage du temps. Si vous maintiendrons régulièrement / étendre ce système; Cependant, cela est une excellente idée.

1) Il y a un grand degré de risque associé à littéraux de chaîne comme une seule faute d'orthographe peut être détectée généralement au moment de l'exécution. Le risque réduit d'erreurs d'exécution est un sérieux avantage car ils peuvent être gênant / frustrant.

2) De plus, si jamais ils ont besoin d'être changé, par exemple lorsqu'ils sont utilisés pour faire référence à un autre système (comme les noms de table, les noms de serveurs, etc.), ils peuvent être très difficiles à mettre à jour lorsque les autres noms de système changent. Centraliser les et il est une question triviale.

Autres conseils

Une chose commune à considérer serait i18n . Si vous (ou vos muckity-muck) voulez jamais vendre votre produit au Mexique ou en France (etc.), vous allez apprécier avoir ces chaînes littérales pas jonché tout au long de la base de code.

EDIT: Je sais que cela ne répond pas directement à votre question, donc je vote certaines des autres réponses Re: règle de trois, et autres. Je comprends que vous parlez d'une base de code existant, donc il est un peu tard pour parler de l'intégration i18n dès le début. Il est si facile à faire quand vous êtes dans l'habitude depuis le début.

Je tiens à appliquer la règle de trois quand refactoring. Si cela se produit trois fois ou plus, le code doit être mis à jour.

Si une chaîne est utilisée dans plus d'un endroit, refactoriser. S'il est utilisé dans un seul endroit, le laisser seul.

Si vous avez refactorisé toutes vos chaînes communes, il est plus facile d'internationaliser / les traduire. Il est encore plus facile s'ils sont tous dans des fichiers de propriétés, ou quel que soit l'équivalent dans votre langue est.

  

Est-ce un bon usage de mon temps à factoriser les littéraux en étant des constantes que l'application est assez bien établie et fonctionne bien?

Non, tu ferais mieux de le laisser comme il est.

  

Quels seraient les avantages à long terme pour le faire?

Si personne ne jamais toucher ce code, les avantages sont pas.

Qu'est-ce que vous pouvez faire, mais est d'éviter l'ajout de nouveaux littéraux. Mais je laisse beaucoup à peu existant comme ils sont.

Vous pouvez probablement les factoriser dans votre libre pour mieux dormir.

Il y a probablement quelques autres bugs déjà qui ont besoin de votre attention. Fixer les place.

Enfin, si vous gérez vous ajoutez « refactoring » à votre liste de tâches, allez-y !!!

Je suis d'accord avec JMD, il suffit de garder à l'esprit qu'il ya plus de i18n que de changer des chaînes (devises, l'interface utilisateur doit être adpated aux langues de droite à gauche, etc.)

Même si vous souhaitez ne pas 18N votre application, il serait utile de factoriser vos chaînes, car cette chaîne qui est utilisée aujourd'hui qu'une seule fois, demain peut-être réutilisé plusieurs fois, et si ce dernier est Hardcoded vous pouvez être pas au courant de celui-ci et l'étoile chaîne reproduisant tous les sens.

Les meilleurs chiens de couchage let mensonge. Si vous avez besoin de changer une chaîne qui est utilisé dix-huit fois grumeleux, oui, allez-y et la transformer en un endroit constant. Si vous vous trouvez dans un module de travail qui a une chaîne qui pourrait être-iser constante, faites-le si vous en avez envie. Mais en passant par l'application tout changer toutes les chaînes à des constantes ... qui devrait être sur le bas de la liste des choses à faire.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top