[AlternC-dev] pour un système de template AlternC

Retour à l'archive de la liste
Le site d'AlternC
Google Custom Search

The Anarcat anarcat at anarcat.ath.cx
Dim 18 Juin 17:56:59 CEST 2006


L'intérêt d'un système de template est d'isoler le code de l'interface.
C'est le paradigme Model-View-Controler. Le modèle, dans AlternC, c'est
les classes (bureau/class). Le problème, c'est que le "view" et le
"controler" dans alternc sont fusionnés ensembles, et que du coup, il y
a *beaucoup* de code dans admin/, beaucoup trop. Et en laissant des
intégrateurs webs aller jouer dans admin/, on risque de créer plus de
bugs et de problèmes que s'ils sont isolés dans une hypotéthique "view"
(les templates).

Évidemment, on peut accomplir les mêmes but en restreignant l'accès des
intégrateurs au CSS et faire une base solide où seul le CSS a besoin
d'être changé (cf. csszengarden), mais concrètement, même avec un design
béton, on a toujours besoin "d'un nouveau div ici avec cette id là"...
ie. de modifier le template.

D'où l'idée d'avoir des templates qui font juste de l'affichage.

J'ai préconisé l'utilisation de Savant car:

 1. c'est un système que je connais
 2. il fonctionne
 3. il est quasi-optimal
 4. il ne demande pas l'apprentissage d'un nouveau language
 5. il fait une seule chose et le fait bien (-> philosophie UNIX)
 6. si on tiens vraiment à avoir un nouveau language, on peut aussi
 l'implanter dans Savant (ie. il est flexible):
http://phpsavant.com/yawiki/index.php?area=Savant2&page=CompilerRef

Maintenant, pour les exemples... J'ai commencé à ré-écrire un logiciel
de timetracker (phptimetracker.sf.net) qui était immonde par son
non-existant système de template. Le code est ici:

https://lethe.koumbit.net/svn/timetracker2/trunk/

J'invite les gens à lire le fichier suivant pour comprendre
l'organisation du code:

https://lethe.koumbit.net/trac/timetracker2/wiki/DesignPrinciples

Vous pourrez naviguer dans le code pour voir comment Savant implante la
séparation. Des exemples compréhensibles sont aussi sur le site web:

http://phpsavant.com/yawiki/index.php?area=Savant2&page=StartExample

Backend CMS est un autre exemple de logiciel qui utilise Savant:

http://www.back-end.org/index.php

Finalement, je mentionne ici aussi Drupal, même si Drupal n'utilise pas
Savant, son engine de template principal (phptemplate) utilise la même
logique de ne pas utiliser un language custom pour le système de
template.

Expose, que Olive propose, est extrêmement similaire à Savant, je me
demande même si ce n'est pas un fork ou un rewrite. Je crois que la
seule différence est qu'il n'est pas autant OO, ce qui n'est pas un plus
ou un moins pour moi, seulement une différence.

Convertir bureau/admin en savant ou expose serait selon moi trivial. On
pourrait probablement carrément passer tous les fichiers à savant comme
des templates et ça marcherait magiquement. Évidemment, on n'aurait pas
plus de séparation entre le view et le controler, mais ça serait un
départ et on pourrait migrer tranquilos. Ceci contraste avec un autre
système tel Smarty où il faudrait tout ré-écrire pour y entrer le
nouveau language.

Finalement, je me dois d'encore donner mon appui à des systèmes de
templates flexibles et évolutifs tels expose, phptemplate (pourquoi ne
pas refaire AlternC en drupal?) ou Savant. Aussi, tant qu'il n'y a pas
de pain (quelquechose de concret, un spike, par exemple) sur la table,
toute cette discussion ne sert à rien, car je n'ai pas le temps, pour
l'instant, d'instaurer Savant, Expose, Smarty, TPLN ou whatever else
dans AlternC. Ce n'est pas ma priorité. Si vous regardez notre milestone
courant:

http://dev.alternc.org/trac/alternc/milestone/0.9.6

Vous remarquerez qu'il est à 41% complété et 3 semaines en retard. C'est
ça, ma priorité, avec AlternC. Livrer la 1.0. J'ai vu beaucoup de gens
*passer* sur cette liste pour nous dire ce qui marchait, ce qui marchait
pas, et ce qu'on devait faire. Mais très peu de gens *restent* et font
le travail qu'il y a à faire, *maintenant*.

En solidarité,

A.

PS: oh, et pour ce qui est de simplement ne pas avoir de système de
template du tout mais simplement refaire le look, ça me va aussi. Faut
juste rien casser. :) ... et il y a beaucoup de pages en double dans
alternc présentement.
-------------- section suivante --------------
Une pièce jointe autre que texte a été nettoyée...
Nom: signature.asc
Type: application/pgp-signature
Taille: 189 octets
Desc: Digital signature
URL: <http://lists.alternc.org/arch/dev/attachments/20060618/c74b6d5d/attachment.pgp>


Plus d'informations sur la liste de diffusion Dev