10 lignes pour une méthode
Céroce
Membre, Modérateur
P.S.: tes méthodes sont trop longues, cherche à les raccourcir. ça va considérablement améliorer la lecture, et tu vas commencer à voir des ressemblances dans le code, ce qui signifie que tu pourras factoriser.
Une technique: si tu resents le besoin de dire dans un commentaire ce que fait le code qui suit, alors retire le commentaire et extrait le code dans une méthode.
Exemple:
Une technique: si tu resents le besoin de dire dans un commentaire ce que fait le code qui suit, alors retire le commentaire et extrait le code dans une méthode.
Exemple:
// Modification imagepicto2Remplace par une méthode:
let modifImagePicto2 = ...
func modifyImagePicto2() {
let modifImagePicto2 = ...
}
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Merci Céroce pour tes remarques. Mais je ne comprend pas pour la méthode plus courte, car c'est une action. Avec closures...
Idéalement, il faut éviter de dépasser 10 lignes pour une méthode.
Dans ton exemple, tu pourrais laisser l'appel dans la méthode parente:
Et extraire la création de l'action:
C'est pas obligatoire de ne pas dépasser 10 lignes mais c'est vraiment conseillé (moi, je préfère autour de 20)
Je ne suis pas forcément d'avis de la règle des " 10 lignes ".
C'est mieux certes, mais les deux règles qui vont de primes à mon avis, c'est : Lisibilité (et surtout relisible après 3 mois) avec une "structure" compréhensible, et surtout éviter la duplication de code, auquel cas, il faudrait faire une méthode.
Oups, merci pour les cours. Un peu pointu pour moi.
Mais je me rend compte que quand je devrais publier l'appli pour de vrai (là chui en tests testflight...) je vais souffrir.
Si tu ne veux pas les mauvaises retours sur ton app, ces conseils seront très précieux.
ouais, je sais...
Mais je persiste et signe, quand on atteint 10 lignes, il faut se demander si justement la méthode ne fait déjà pas trop de choses (une fonction = un traitement), et si on ne duplique pas déjà du code ou de la logique.
Je ne vais pas continuer cette discussion, parce qu'elle ne sert à rien si on ne parle pas de code concret. J'ai juste voulu donner une indication factuelle à busterTheo pour qu'il améliore la lisibilité de son code et perde moins de temps à déboguer.
L'utilisation de beaucoup de petites méthodes de 10 lignes ne risque pas d'avoir une influence sur les performances de l'application ? Du moins en Objective-C, puisque l'appel d'une méthode est une chose compliqué avec émission d'un message et résolution dynamique de-je-ne-sais-plus-quoi ?
Swift doit être plus efficace sur cet aspect, le code étant entièrement compilé.
Mais surtout, ce n'est pas la question: la plupart du code n'a pas besoin d'être rapide. À quoi sert de gagner 10 ms pour réagir à l'appui d'un bouton ?
On se pose ce genre de questions quand on a *mesuré* que l'envoi des messages posait problème à un endroit précis.
Oki ..
Sur Android il y a une limite sur le nombre de méthodes (qui peut être contournée) embarquée appelée multidex. Faire des méthodes de 10 lignes auraient été difficilement réalisables pour les développeurs Android. Pas ce problème sur iOS par contre !
C'est une limitation de Java ?
Pas spécifiquement Java. C'est sur Android, pour une question d'optimisation de mémoire. Le code compilé est placé dans un seul fichier, un .dex qui contient apparemment cette limitation de méthode.
On n'est pas aidé par la technique ..
Il n'était pas question d'un portage de Swift sous Android ?
Je pense qu'il a déjà eu lieu mais je n'en suis pas sur.