Files
lespiedsdanslecode/content/posts/2009/2009-04-21-skinny-controllers-and-fat-models/index.html
T
2020-02-07 22:28:25 +01:00

66 lines
3.5 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<title>Yannick François - Les pieds dans le code</title>
<meta name="DC.title" content="elsif.fr, site de Yannick François aka yaf aka pouype."/>
<meta name="description" content="Yannick François's website. Senior developer, Code pedagogist. /ut7 teammate, proud member of Electrolab, the crazy hackerspace. Eternel supporter of April, a french association about freesoftware."/>
<meta name="keywords" content="code, développement, lean, agile, logiciel, tdd, objet, ruby, site perso, personnel, ruby on rails, refactoring, openbsd, bsd, libre, creative commons, unix"/>
<meta name="author" content="Yannick François, https://elsif.fr"/>
<meta name="designer" content="Yannick François, https://elsif.fr"/>
<meta name="geo.placename" content="Poissy, Ile de france, France"/>
<meta name="robots" content="index,follow" />
<meta name="language" content="French" />
<meta name="HandheldFriendly" content="True" />
<meta name="MobileOptimized" content="320" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0" />
<link rel="index" title="Yannick François / Developer" href="https://elsif.fr" />
<link rel="stylesheet" href="/css/knacss.css" media="all"/>
<link rel="stylesheet" href="/css/elsif.css" media="all"/>
<article>
<h1>
Skinny controllers and fat models
</h1>
<p>Hier, jai posé une question à la terre entière (ou presque):</p>
<blockquote>
<p>MyModel.paginate(blablabla) or just call MyModel.give_data and call paginate in MyModel ?</p>
</blockquote>
<p>Jai mis en place une pagination sur une liste de commande. Cela à plusieurs avantages.</p>
<ul>
<li>Graphique dabord. On ne peut vraiment pas proposer une interface claire avec une liste de 150 commandes</li>
<li>Performances ensuite. Aller cherche 150 commandes dun coup, cest faire attendre le client qui finalement nen fera que 10.</li>
</ul>
<p>Ceci étant dit, sur divers exemple que jai observé à droite et à gauche, lappel au modèle pour récupérer la liste de commandes dans le contrôleur ce fait sous la forme:</p>
<p>Je ne détail pas les conditions ici, mais pourtant ce sont elles qui me gène dans ce code. L&rsquo;appel à <code>paginate</code> (ou une autre méthode) dans le contrôleur ne me gène pas, de toute façon, il faut bien qu&rsquo;il travail un peu, même s&rsquo;il est <em>maigre</em> ! Mais par contre j&rsquo;ai beaucoup de mal avec le fait que le contrôleur connaisse les conditions pour la récupération de la liste. D&rsquo;autant que j&rsquo;ai dans ces conditions quelque valeur par défaut qui dépende d&rsquo;un contexte non présent dans les paramètres aujourd&rsquo;hui.</p>
<p>Je vais donc opter pour le déplacement de l&rsquo;appel à <code>paginate</code> dans mon modèle. J&rsquo;ai donc maintenant dans mon contrôleur quelque chose de plus clair, et plus simple:</p>
<blockquote>
<p>Et dans mon model</p>
</blockquote>
<p>C&rsquo;est bien beau, mais je me retrouve maintenant avec des éléments de présentation dans mon modèle. <em>C&rsquo;est mal</em>.</p>
<p>Je vais pour l&rsquo;instant passer la page demandé et la quantité par page en paramètre. Ce nest pas top non plus, mais je préfère cela pour linstant. Si quelquun a une idée, je suis prêt à lentendre.</p>
<article>
<footer style="font-size:75%;text-align:right"><em><a href="/feed.xml">suivre les articles</a></em></footer>
</body>
</html>