JeuWeb - Crée ton jeu par navigateur
[Coding style] Vos solutions pour un code lisible ? - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [Coding style] Vos solutions pour un code lisible ? (/showthread.php?tid=4309)

Pages : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17


RE: [Coding style] Vos solutions pour un code lisible ? - Sephi-Chan - 17-09-2009

Leur template est simple. Il n'y a pas de branchement conditionnel, pas de view helper, etc.
Mais postez donc vos template bien complexes, qu'on en discute.

Haml est loin d'être parfait (surtout si les templates sont faits par de complets profanes), mais c'est pour ça qu'il y a d'autres moteurs. Wink


Sephi-Chan


RE: [Coding style] Vos solutions pour un code lisible ? - Anthor - 17-09-2009

Qu'est-ce que tu appelles view helper ou branchement conditionnel alors ?
Parce que je veux bien te mettre toutes les formes possibles, mais ca reste la même chose à écrire.

La vue ne doit pas contenir plus que des variables et des boucles.


RE: [Coding style] Vos solutions pour un code lisible ? - Zamentur - 17-09-2009

Si je me trompe pas un view helper c'est un module permettant par exemple de faire plus facilement une tache de vue comme par exemple la génération de formulaire.

Par contre un branchement conditionnelle je vois pas, pour moi c'est ce qu'on appelle un if...

Enfin point non négligeable ce qui vient d'être posté, tout le monde le comprend pourvu qu'il est fait les premiers cours du site du zero...

Autrement dit on peux facilement demander à quelqu'un de faire la vue pendant qu'on s'occupe du modèle et des controlleurs.

Enfin bref j'ai pas ressenti le besoin de faire des templates plus complexe, en dehors du fait que certaines partie sont souvent externalisé comme un formulaire ou autre


RE: [Coding style] Vos solutions pour un code lisible ? - Allwise - 17-09-2009

Peut-être que les systèmes de template généralement apportent plus de confort visuel, mais je pense que c'est surtout une question d'habitude.
Perso, du code source j'en bouffe toute la journée, c'est pas des petits <?php echo .... ?> et des <php if (....): ?> qui me font peur.
Quand on travaille avec un framework ou même un CMS, les helpers sont très facilement accessibles via les vues, genre <?php echo $this->getHelper()->createTrucMachin(); ?>

J'avais commencé à bosser avec une classe de template mais au fil du temps j'ai laissé tomber pour la bonne vieille notation PHP car hormis le confort visuel, cette couche supplémentaire ne m'apportait rien de bien pratique finalement.

Et sinon, on pourrait voir ce que toi Sephi, tu appelles un template complexe ?


RE: [Coding style] Vos solutions pour un code lisible ? - Sephi-Chan - 17-09-2009

Par branchement conditionnel, je parle de conditions imbriquées, vous savez, le truc qui fait que si vous indentez comme il faut, vous vous retrouvez avec 20 caractères pour écrire tellement ça va loin.

Et au final, c'est ça qui rend une vue complexe et moche.

Effectivement, les view helpers sont des méthodes à qui l'on délègue les trucs moches tels que la création de liens, de formulaires, tronquer des chaînes trop longue, virer totalement ou partiellement le HTML, etc.


Sephi-Chan


RE: [Coding style] Vos solutions pour un code lisible ? - guile - 17-09-2009

Personnellement je ne trouve recevables les arguments du genre :
- pour avoir du code propre, il suffit de prendre tel ou tel langages
- pour avoir du code propre, il suffit d'utiliser tel ou tel framework

Parce qu'à ce niveau d'argumentation, voici un code hyper propre, super léger à lire, qui gère tout un jeu :

MaFonctionDeGestionDuJeu();
Et en langage MonLangageAMoi

jeu


C'est formidable hein? C'est grâce au framework maison "FrameWorkGestionDeJeu"... il est trop trop puissant!

Bon d'accord, je caricature totalement, mais c'est pour illustrer quelque part la non recevabilité des arguments vus.

Évidemment je ne rejète pas l'idée qu'un framework aide à faire des programmes plus lisibles, qu'un langage est plus mieux qu'un autre d'un point de vue lisibilité, mais ce ne sont pas véritablement des solutions.

Si je pouvais faire un rapprochement sur le domaine automobile :
Débat : Vos solutions pour consommer moins de carburant
Réponses similaires :
- moi j'utilise la voiture de marque Machin, qui tourne à l'électrique, ça ne consomme pas du tout !
- Et bin moi j'utilise un carburant spécial qui est super efficace

Même si l'argument du carburant spécial est pas mal, ça ne répond pas totalement à la question "comment vous faites vous?"

On s'attendrait à lire : je ne dépasse pas 2500 tr /min, je n'accélère pas trop, etc...


RE: [Coding style] Vos solutions pour un code lisible ? - QuentinC - 17-09-2009

Ce n'est pas parce que je nn'utilise pas de moteur de template que je ne sépare pas les vues des modèles et des contrôleurs. Je ne vais quand même pas montrer un script de vue au complet, mais je fonctionne avec ce genre de syntaxe :
Code :
echo <<<END
<h3>{$lng['rubtitle']}</h3>
<table>
<thead><tr>
<th>{$lng['rub1']}</th>
<th>{$lng['rub2']}</th>
<th>{$lng['rub3']}</th>
</tr></thead>
<tbody>
END;
foreach ($truc as $t) {
$a = integerforamt8$t->var1);
$b = timeForamt($t->var2);
$c = htmlspecialchars($t->var3);

if (!$t->var4) continue;

echo <<<END
<tr>
<td>$a</td>
<td>$b</td>
<td>$c</td>
</tr>
END;
}
echo <<<END
</tbody></table>
...
END;
N.B. Evidememnt, les noms des variables sont bidons, en réalité ils sont un peu plus évocateurs... enfin j'espère


RE: [Coding style] Vos solutions pour un code lisible ? - Sephi-Chan - 17-09-2009

C'est moins pourri que les <? echo .... ; ?> partout, mais c'est pas top quand même.

Alors qu'avec Haml, un petit exemple de code internationalisé et localisé :


%h3 #{l('.title')}

%table#users_table
%thead
%tr
%th #{t('.last_name')}
%th #{t('.first_nale')}
%th #{t('.email')}
%th #{t('.created_at')}
%tfoot
%tr
%th #{t('.last_name')}
%th #{t('.first_nale')}
%th #{t('.email')}
%th #{t('.created_at')}
%tbody
- for user in @users
%tr{ :class => cycle('odd', 'even') }
%td #{link_to(h(user.last_name, user))}
%td #{h(user.first_name)}
%td #{mail_to(h(user.email))}
%td #{l(user.created_at)}



Alors oui, Haml a des défauts : ça peut poser problème si vous faîtes faire vos vues par une personne qui a un QI de photocopieuse (mais quand on peut faire des templates PHP, on peut faire du Haml) ou si vous êtes vraiment à cheval sur les performances (mais bon, c'est l'accès au donnée qui coûte cher, pas le script en lui même).

Notez qu'on peut désactiver la sortie propre du HTML en faveur d'une sortie classique, un peu chaotique, voir même d'une sortie monoligne.

Il faut aussi savoir qu'en Ruby, Haml est moins gourmand puisque les expressions rationnelles sont natives. Après, l'implémentation en PHP…


Sephi-Chan

Ps @ Guile : Je suis déçu que tu tournes ça ainsi…


RE: [Coding style] Vos solutions pour un code lisible ? - QuentinC - 17-09-2009

Citation :C'est un bon exemple QuentinC de code crade et très peu illisible
Dans ce cas, c'est donc très lisible ?
Non plus sérieusement : argumente. Pourquoi pour toi c'est crade ?

@Séphi-Chan : plutôt simple en effet. Mais presque rien n'a changé au final.
La syntaxe d'accès aux variables internationnalizées ne me paraît pas moins crade dans ta version HAML que ma version php. Je ne dis pas que la syntaxe php n'est pas crade, mais le gain ne me paraît pas très flagrant.
De toute façon quoi qu'il en soit, le php lui-même est déjà à la base un langage à la syntaxe relativement crade. Et on est bien obligé de faire avec.

Mais bon, ça doit sûrement être une question d'habitude tout ça. Si on en avait le temps, je pense que chacun inventerait sans doute son propre langage de programmation avec la syntaxe qui lui conviendrait le mieux... combien de fois j'en ai déjà rêvé.

A ce propos je me lancerais bien dans ruby, sa syntaxe a l'air redoutablement simple et efficace, mais j'aurais aimé savoir avant s'il était possible de faire du web avec ruby mais sans rail... je parais peut-être un peu vieux jeu mais j'ai peur des framework, j'ai peur de perdre le contrôle sur mon propre code et ne plus avoir conscience de ce qu'il fait exactement, sans compter les performances catastrophiques que ça doit probablement avoir... mais ça doit être une question d'habitude là aussi, le fait d'utiliser un framework.
Si tu as des bons tutoriels qui ne sont pas uniquement techniques, je reste ouvert et je prends volontiers. Mais il faut vraiment que je comprenne bien l'intérêt d'une chose avant de l'utiliser. Pour avoir déjà testé un framework php, j'ai pas été convaincu de ce que ça m'apportait.


RE: [Coding style] Vos solutions pour un code lisible ? - Sephi-Chan - 17-09-2009

Je l'ai contacté par MP pour lui en parler.

Je pense que Merb n'est pas un bon choix puisqu'il sera incorporé dans Rails 3), Sinatra non plus puisqu'il est conçu pour créer des applications simplistes (le but est que tout tiennent en une poignée de fichier).
Rails est le choix le plus pertinent : il évolue beaucoup et est une référence et surtout : il y a énormément de ressources à son sujet.

Edit : Comme le dit Oxman, on peut utiliser Ruby avec Erb, qui est un moteur de template (que Rails utilise par défaut, mais qu'on peut remplacer par Haml, par exemple).

Mais là n'est pas le débat. Ici on parle de coding style et de lisibilité. Smile


Sephi-Chan