C'est sûr que pour écrire des tests c'est mieux. Mais tu veux faire des
optimisations, tu te retrouves parfois avec 5 couches d'abstraction
super-testable mais dont tu ne t'en sors plus. Alors certes, sur 95% des
applications avec 100 utilisateurs, on ne verra pas ce problème.

++

yk

Le 8 février 2011 09:58, Yannick Francois <[email protected]> a écrit :

> Le 8 février 2011 09:15, Guillaume Betous > En farfouillant un peu, je
> retrouve un conseil que j'avais déjà vu passer
> > mais que je n'avais pas compris : "The Law of Demeter" [2][3],
> traduisible
> > en français par la "loi de moindre connaissance" (???), où une règle
> > voudrait qu'un modèle doit se limiter à communiquer avec un modèle
> > immédiatement associé, et non pas faire des "bonds" de modèle à modèle.
> >
>
>
> En fait on dit tout simplement la loi de Demeter
> (http://fr.wikipedia.org/wiki/Loi_de_Demeter)
>
>
> > En gros, on interdit "post.author.name", et on préfère écrire un wrapper
> > (Rails nous facilite encore cette tâche avec les delegate) et donc taper
> > post.author_name.
> >
>
> On dit qu'il faut eviter la "navigation transitive". En fait, un
> modèle ne doit pas connaitre l'architecture de l'application. C'est un
> principe de base que l'on retrouve par exemple dans le bouquin Clean
> Code
> (
> http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882?tag=duckduckgo-d-20
> )
>
> Le problème est justement dans ce que tu dis: " Mais je ne vois pas en
> quoi ça change quoi que ce soit, tant que name est une méthode ou un
> attribut du modèle author," Justement, l'objectif est de pouvoir
> changer l'implémentation d'un modèle sans avoir à impacter les autres.
> Au pire, tu apporteras une modification sur ces voisins, qui du coup
> sont normalement dans la même zone du Domaine métier que tu manipules.
>
> Après, c'est sur que sur une application de la taille d'un blog, on en
> ressent moins le besoin. Par contre dès que tu commences à faire un
> truc un peu plus costaud, tu le sens bien.
>
>
> J'ajouterais que dans le contexte d'une application plus grosse que
> nous avons récupéré avec mes équipiers, on a identifier la navigation
> transitive comme étant une gène énorme pour la mise en place de test
> unitaire (encore des gens qui ne développe pas en TDD).
>
> J'espère que ça aide ta reflexion :-)
>
> --
> Yannick Francois
> +33 683 785 716
> <http://kantena.com>
>
> --
> Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de
> Google Groups.
> Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse
> [email protected]
> Pour résilier votre abonnement envoyez un e-mail à l'adresse
> [email protected]
>

-- 
Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de 
Google Groups.
Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse 
[email protected]
Pour résilier votre abonnement envoyez un e-mail à l'adresse 
[email protected]

Répondre à