J'ai lu beaucoup de littérature refactoring à la fin et un thème commun que je vois dans les exemples est la réduction de beaucoup de déclarations IF. Le ci-dessous est un bloc de code très simple qui vérifie d'abord si une adresse e-mail est fournie et si oui, puis procède à la validation de l'adresse e-mail. Je vois généralement beaucoup de ce type de code qui semble toujours un peu brouillon, surtout s'il y a plusieurs variables.Comment cet extrait de code d'instruction IF peut-il être Refactorisé?
if (string.IsNullOrEmpty(email)) {
throw new ApplicationException("Email Address Required");
}
else {
if (!ValidationService.EmailAddressIsValid(email)) {
throw new ApplicationException("Invalid Email Address");
}
}
Ma question est, cet exemple est-il parfaitement acceptable? Est-ce que ça sent? Comment pourrait-on refactoriser cet extrait?
-1: non vraiment * refactoring * et ne réduit pas le nombre de si-s – chiccodoro
ne pouvait pas être en désaccord plus chiccodoro. Bien qu'il ne réduise pas le nombre d'if-s, il en a supprimé un autre et l'a rendu plus lisible, surtout s'il est au sommet de votre méthode et agit comme un gardien ... –
@Bryce: Eh bien, il pourrait * légèrement * améliorer la lisibilité (bien que ce soit assez subjectif), mais la question du PO concernait * la réduction de beaucoup de déclarations IF *. Avec cette proposition, vous avez toujours 2 instructions if directement dans le code. Si vous avez plusieurs méthodes faisant la même vérification, vous avez la logique de validation dans de nombreux endroits au lieu d'un. C'est cependant ce que beaucoup de préoccupations de refactoring sont sur (IMHO). (BTW: Désolé pour la réponse tardive, n'a pas remarqué votre commentaire, car il ne commence pas avec @chiccodoro) – chiccodoro