Objectif
Proposer une alternative simple et légÚre au backend xml.
Spécification
Le backend TSV:
- est encodé en est UTF-8
- est servi en text/tab-separated-values
- les tags du message ne sont pas XML-encodés
- n'a pas d'entĂȘte : son format est fixe
- a pour url: https://linuxfr.org/board/index.tsv
- a pour format:
${id}\t${time}\t${info}\t${login}\t${message}\nNote: les caractĂšres de contrĂŽle sont Ă bannir du contenu de chaque champ. Note 2: les id doivent ĂȘtre croissant, du plus ancien au plus rĂ©cent.
# question
PostĂ© par ckiller . ĂvaluĂ© Ă 2 (+0/-0).
Ca manque de finesse dans les spécifications.
[^] # Re: question
PostĂ© par Sten SpĂ„rvagnhög (site web personnel) . ĂvaluĂ© Ă 3 (+0/-0).
Pas. Comme un message de tribune est rendu comme du html, les \n, \t et espaces, ou toute chaßne constituée de ces caractÚres en nombre et combinaison quelconques, sont rendus par un espace simple. Par conséquent c'est au moteur de tribune de "sanitizer" le message en ce sens dans le backend tsv, comme il le fait déjà pour les tags.
Tu arrives longtemps aprĂšs le dĂ©bat, mais c'est vrai que tu ne frĂ©quentes plus les tribunes oĂč ces discussions ont lieu.
La réponse à tout cela est simplement "simplicité, légÚreté et robustesse". Pourquoi se lancer dans un parsing complexe quand un split("\n") suffit à récupérer les posts et un split("\t") les champs du post ?
Le XML, outre qu'il est lourd à parser, comporte la problématique du double niveau de namespace entre les tags du backend et ceux du message, ce qui fait qu'il n'y a pas 2 moteurs de tribune le gérant de façon identique (tags encoded, not encoded, raw, encapsulation CDATA...)
Le JSON est particuliÚrement adapté pour un client web, mais des coincoins sont toujours développés en client lourd.
Et enfin, le sujet n'est pas d'éliminer les backends XML ou JSON qui ont toujours leur légitimité. Il s'agit de proposer une alternative et de laisser le choix au client.
Hors-sujet, il n'y a pas de changement dans le format du contenu du message (si ce n'est la suppression des \n \t, ce que la plupart des moteurs fait déjà ). La demande ne concerne que le format du backend.
Je profite de cette derniÚre question plutÎt large pour aborder d'autres points : on voit que le but premier d'un tel backend est l'efficacité, et celle-ci prend tout son sens lorsque le format TSV est couplé aux autres techniques d'optimisation : renvoi uniquement des posts utiles grùce au paramÚtre last-id, posts ordonnés par id croissant (permettant au client d'insérer tous les nouveaux posts d'un coup sans trier), support du XPOST pour économiser un get aprÚs un post, etc.
Bien cordialement,
Rock Hightram
Mouling Technologies Senior Architect
# Pull request
PostĂ© par ëȘ» ì· í âš (site web personnel) . ĂvaluĂ© Ă 3 (+0/-0).
Pour info, j'ai fait une pull request pour ça, ici :
https://github.com/linuxfrorg/linuxfr.org/pull/214
Je l'ai testée en local, ça marche au moins avec wmcc et dcoincoin.
[^] # Re: Pull request
PostĂ© par devnewton đș (site web personnel) . ĂvaluĂ© Ă 2 (+0/-0).
xcellent!
Ce post est offensant ? Prévenez moi sur https://linuxfr.org/board
[^] # Re: Pull request
PostĂ© par Bruno Michel (site web personnel) . ĂvaluĂ© Ă 3 (+0/-0).
C'est déployé. Merci !
[^] # Re: Pull request
PostĂ© par devnewton đș (site web personnel) . ĂvaluĂ© Ă 2 (+0/-0).
Bonjour et bravo pour ce patch!
Je viens de tester le backend https://linuxfr.org/board/index.tsv et je vois qu'une exigence de la spec n'a pas été respectée:
Ce post est offensant ? Prévenez moi sur https://linuxfr.org/board
[^] # Re: Pull request
PostĂ© par devnewton đș (site web personnel) . ĂvaluĂ© Ă 2 (+0/-0).
Correction: https://github.com/linuxfrorg/linuxfr.org/pull/217
Ce post est offensant ? Prévenez moi sur https://linuxfr.org/board
[^] # Re: Pull request
PostĂ© par Bruno Michel (site web personnel) . ĂvaluĂ© Ă 4 (+0/-0).
Merci, c'est déployé.
Envoyer un commentaire
Suivre le flux des commentaires
Note : les commentaires appartiennent Ă celles et ceux qui les ont postĂ©s. Nous nâen sommes pas responsables.