Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Vie communautaire


Index du Forum » Vie communautaire » [v5] Écriture des spécifications
Dark storm En ligne Labélisateur Points: 11631 Défis: 176 Message

[v5] Écriture des spécifications

Posté le 03/07/2018 15:57

Les besoins ont été validés, on passe maintenant à la rédaction des spécifications techniques.

Mémo rapide pour les contributeurs :
Besoins validés
Pad des specs
Règles de contributions sur les pads


Les spécifications sont là pour détailler la manière d'implémenter les besoins. On est pas dans les détails vraiment techniques, mais on s'en rapproche.

Exemple sur du front-end :
– Besoin : affichage clair des notifications
– Spec : pastille en bas à droite de l'avatar dans le menu
– Conception : mettre un :after dynamique sur l'avatar

Exemple sur du back-end :
– Besoin : utilisateurs répondants aux points listés
– Spec : classe Member héritant de la classe User avec les attributs et fonctions suivantes
– Conception architecturale : détail des fonctions à implémenter dans la classe
– Conception détaillée : détail de l'algo pour sécuriser le code qui sera produit

La séparation de la conception en deux parties (architecturale et détaillée) n'est pas forcément pertinente pour toutes les specs, mais de toute façon c'est pas le sujet aujourd'hui.

Vous êtes invités à contribuer sur les specs ! Dans un premier temps, ça se passe sur le pad correspondant..

La deadline pour la validation est reportée au 5 août (pour cause de vacances du patron )


Règles de contribution sur les pads
– On se choisi une couleur et un pseudo avant d'écrire
– La couleur respecte les yeux de chacun, j'ai pas un stock infini de collyre
– On efface la couleur de ce qui est écrit que lorsque c'est validé
– Si un truc n'a plus de couleur, quelqu'un se charge de mettre le point au propre sur le wiki
– Le plus important : tous les membres peuvent participer !


1, 2, 3, 4 Suivante
Dark storm En ligne Labélisateur Points: 11631 Défis: 176 Message

Citer : Posté le 16/09/2018 22:52 | #


Je relance en faisant les diagrammes de classe (avec Dia, un FLOSS qui permet entre autres de générer le Python correspondant), mais quelques questions :
– Un contenu peut-il avoir plusieurs auteurs ? (attention à ne pas confondre avec les droits d'édition/suppression)
– Un commentaire peut-il être descendant d'un autre commentaire ? Ou seuls les contenus racine peuvent être parents ?

Le diagramme actuel :


Je compte l'avancer dans la semaine, sur ce qui est déjà fait, des remarques ? Je n'inclurais volontairement pas le système de permissions, qui va influer sur toutes les classes ici présentes.
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Drak Hors ligne Rédacteur Points: 1925 Défis: 40 Message

Citer : Posté le 16/09/2018 23:16 | #


– Un commentaire peut-il être descendant d'un autre commentaire ? Ou seuls les contenus racine peuvent être parents ?


Tu veux dire, par exemple, un commentaire en réponse directe à un autre commentaire ? Ça pourrait être une bonne idée pour permettre les digressions sans interrompre le fil de la conversation. Toutefois, j'ai peur que les commentaires descendants d'autres commentaires perdent en visibilité, ce qui fait que, quand un membre pose une question, les autres risquent de moins bien profiter de la réponse à cette dernière. Je suis assez mitigé.

– Un contenu peut-il avoir plusieurs auteurs ? (attention à ne pas confondre avec les droits d'édition/suppression)


Dans quel cas un contenu aurait-il plusieurs auteurs ?
Eon the Dragon : version 1.2
Let's have a look!
Marre de ces RPGs qui t'imposent des classes, des compétences et des sorts ? Crée tes propres capacités sur Eon the Dragon ! Des monstres, des dragons et des combats aussi épiques que difficiles t'attendent !
Un RPG unique et immense t'attend ! Joue dès maintenant à Aventura, le Royaume Poudingue !
Vous aussi, soyez swag et rejoignez Planète Casio !
Cakeisalie5 Hors ligne Ancien administrateur Points: 1896 Défis: 11 Message

Citer : Posté le 16/09/2018 23:16 | #


Je conseille un seul auteur par contenu, mais s'il est possible, suivant ce que j'ai fait dans mes projets personnels, faire plusieurs types d'utilisateur :

- individu (l'actuel) ;
- organisation.

Pour les programmes, au-delà du contenu, je sais pas trop comment vous pourriez stocker ça de façon assez propre. Je dirais le contenu des programmes directement, mais à voir comment gérer s'il y en a plusieurs, s'il y a des pièces jointes (si certaines pièces jointes sont supprimées), etc. Stocker la forme décodée permet de re-wrap ça dans le format qui va bien derrière, à savoir g1m, g2m, g3m, g1r, g2r, g3r, cas (CaS ou CASPRO), cat, ctf, fxi ou grc.

Aussi, en fonction du contenu des programmes, avec des outils comme la refc, on peut déterminer avec quoi est compatible le programme, donc une table de compatibilité calculée ou remplie par l'utilisateur dans un premier temps peut être cool.

Promotion ordinaire sur les inscriptions sur Planète Casio : en ce moment, c'est gratuit !

Mon blogBesoin d'utilitaires de transfert vers et depuis la calculatrice sous GNU/Linux ?
Dark storm En ligne Labélisateur Points: 11631 Défis: 176 Message

Citer : Posté le 16/09/2018 23:23 | #


Excellent l'idée des organisations. Drak, dans le cas d'un tutoriel par exemple, il peut y avoir plusieurs auteurs. Un programme aussi, un topic, en fait tout contenu qui n'est pas un commentaire.

Excellent aussi l'idée de ne pas stoker bêtement le programme, mais d'en faire quelque chose de plus poussé. Je sais que t'as pas trop envie de plancher sur la v5, mais si je te demande de l'aide sur ce point spécifique, tu serais de la partie ?

Pour les commentaires de commentaires, oui, c'est ça. Deux choix :
– on fait ce qui est fait ici (un commentaire hérite d'un contenu racine uniquement) ;
– on fait un système type Reddit, où il est possible de commenter un commentaire.
Dans ce cas, il faut prévoir de quoi trier/organiser les commentaires (par parenté, par chronologie, etc.)

Question supplémentaire, je sais plus si on avait statué à propos des points de pertinence sur les commentaires/contenus ?

Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Cakeisalie5 Hors ligne Ancien administrateur Points: 1896 Défis: 11 Message

Citer : Posté le 16/09/2018 23:31 | #


Je peux regarder mais je préfère ne rien te promettre, vu ce qui s'accumule dans mon emploi du temps à l'occasion de cette rentrée des classes 2018.

Promotion ordinaire sur les inscriptions sur Planète Casio : en ce moment, c'est gratuit !

Mon blogBesoin d'utilitaires de transfert vers et depuis la calculatrice sous GNU/Linux ?
Drak Hors ligne Rédacteur Points: 1925 Défis: 40 Message

Citer : Posté le 16/09/2018 23:38 | #


@Dark Storm : https://git.planet-casio.com/devs/PCv5/issues/10
Eon the Dragon : version 1.2
Let's have a look!
Marre de ces RPGs qui t'imposent des classes, des compétences et des sorts ? Crée tes propres capacités sur Eon the Dragon ! Des monstres, des dragons et des combats aussi épiques que difficiles t'attendent !
Un RPG unique et immense t'attend ! Joue dès maintenant à Aventura, le Royaume Poudingue !
Vous aussi, soyez swag et rejoignez Planète Casio !
Dark storm En ligne Labélisateur Points: 11631 Défis: 176 Message

Citer : Posté le 17/09/2018 21:34 | #


Mis à part les droits, des trucs que j'ai oublié ?

Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Drak Hors ligne Rédacteur Points: 1925 Défis: 40 Message

Citer : Posté le 17/09/2018 21:57 | #


Si je comprends bien, un commentaire partage les classes comment et content, c'est bien cela ?

Edit : et puis, comment est gérée l'image de présentation d'un programme ?
Eon the Dragon : version 1.2
Let's have a look!
Marre de ces RPGs qui t'imposent des classes, des compétences et des sorts ? Crée tes propres capacités sur Eon the Dragon ! Des monstres, des dragons et des combats aussi épiques que difficiles t'attendent !
Un RPG unique et immense t'attend ! Joue dès maintenant à Aventura, le Royaume Poudingue !
Vous aussi, soyez swag et rejoignez Planète Casio !
Dark storm En ligne Labélisateur Points: 11631 Défis: 176 Message

Citer : Posté le 17/09/2018 22:10 | #


Un commentaire, c'est la classe comment, qui hérite de content.

Pour les images du programme, je compte les gérer via les pièces jointes (attachement) : il suffit de lister les PJ, regarder celles qui ont une extension (+ vérification du header par sécurité) d'image pour qu'on les affiche. Sinon suivant l'extension, c'est un binaire.
Je précise bien qu'il est très important de vérifier le contenu du header des fichiers, pour ne pas filer au client un binaire typé en .png par exemple. Question de sécurité.
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Drak Hors ligne Rédacteur Points: 1925 Défis: 40 Message

Citer : Posté le 17/09/2018 22:19 | #


D'accord, je vois.

Eh bien, je rajouterais un booléen dans la classe user pour indiquer s'il est actuellement connecté ou non.
Eon the Dragon : version 1.2
Let's have a look!
Marre de ces RPGs qui t'imposent des classes, des compétences et des sorts ? Crée tes propres capacités sur Eon the Dragon ! Des monstres, des dragons et des combats aussi épiques que difficiles t'attendent !
Un RPG unique et immense t'attend ! Joue dès maintenant à Aventura, le Royaume Poudingue !
Vous aussi, soyez swag et rejoignez Planète Casio !
Cakeisalie5 Hors ligne Ancien administrateur Points: 1896 Défis: 11 Message

Citer : Posté le 17/09/2018 22:23 | #


Le fait de savoir si un utilisateur est connecté ou non se détermine à partir de son nombre de sessions actives. Ce n'est donc pas quelque chose qui se stocke

Promotion ordinaire sur les inscriptions sur Planète Casio : en ce moment, c'est gratuit !

Mon blogBesoin d'utilitaires de transfert vers et depuis la calculatrice sous GNU/Linux ?
Dark storm En ligne Labélisateur Points: 11631 Défis: 176 Message

Citer : Posté le 19/09/2018 18:50 | #


Je suis en train de commencer la rédaction des specs (en gros les méthodes et ce qu'elles vont devoir faire), donc si y'a des trucs à améliorer, c'est maintenant, parce qu'une fois que ce sera validé, ce sera trop tard. Donc soit y'a pas de commentaires et je valide, soit vous les faites vite.

J'ai mis à jour la deadline pour cette partie : Milestone #2, je valide tout pour le 30 septembre.
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Totoyo Hors ligne Membre d'honneur Points: 16093 Défis: 102 Message
Dark storm En ligne Labélisateur Points: 11631 Défis: 176 Message

Citer : Posté le 19/09/2018 20:07 | #


Via un algo spécial de Lephe. En gros on a un tableau de bits, une ligne par membre, n bits qui correspondent à n topics.
Une table fait la correspondance entre le bit x et l'ID du topic. À chaque post, on décale tous les bits du tableau d'une colonne vers la droite, on ajoute une colonne de 0. Pour récupérer les nouveautés pour un membre, on regarde la ligne de bits.

Avec n = 256, on peut avoir jusqu'à 256 nouveautés par membre, pour 32 octets par membre. Donc 3,2 Mo pour 10 000 membres.
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Lephenixnoir En ligne Administrateur Points: 24145 Défis: 170 Message

Citer : Posté le 19/09/2018 20:22 | #


Je précise qu'il s'agit d'une sorte de file circulaire donc quand on dit qu'on décale les bits vers la droite, on se contente de déplacer la frontière imaginaire entre les membres. Exemple ici, on a deux membres sur deux lignes, le bit de gauche représente l'article le plus vieux et celui de droite le plus récent.

...
|0 1 1 0 1|
|0 0 0 1 1|
...

Quand on veut ajouter un article plus récent, on se contente de décaler les frontières, comme ceci :

...
0|1 1 0 1
0|0 0 1 1
...

Ainsi le bit le plus vieux du membre du bas, qui a été éliminé de l'algorithme parce que l'algorithme ne garde en mémoire que les 5 dernières nouveautés du site (en pratique quelque part entre 250 et 1000), a été donné au membre du haut pour servir de bit plus récent.

Et ça recommence chaque fois qu'il y a de l'activité quelque part. Une fois que l'on a fait 5 rotations, on déplace les données du membre le plus bas dans la table vers la zone la plus haute dans la table pour assurer la rotation sur les membres.

Avec n nouveautés et m membres, les complexités sont grosso modo comme suit :
- O(m) pour ajouter une nouveauté (le décalage de membres après 5 rotations se fait en O(n) une fois tous les O(n) donc en amorti le coût est constant)
- O(n) pour ajouter un membre

Il faut ajouter à cela une petite structure (liste doublement chaînée, un truc du type) pour conserver la correspondance entre les positions dans la table et les IDs des membres.
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Eragon Hors ligne Gardien des bots Points: 431 Défis: 0 Message

Citer : Posté le 19/09/2018 21:09 | #


Bonsoir, je signale que je n'apporterais sans doute pas ma pierre à l'écriture des specs... mais mon éditeur de texte sera là pour écrire le code lorsque vous en aurez besoin.

Je n'aiderais pas(ou peu) aux spécifications car... 1. j'aime pas les graphiques 2. De ce que j'ai lu et vu... je n'ai rien à dire
Dark storm En ligne Labélisateur Points: 11631 Défis: 176 Message

Citer : Posté le 19/09/2018 21:14 | #


Les specs c'est pas que les graphiques hein
Y'a aussi une grosse partie sur la construction des classes et de leur contenu.
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Eragon Hors ligne Gardien des bots Points: 431 Défis: 0 Message

Citer : Posté le 19/09/2018 21:26 | #


Bah... Je re regarde ça et si je trouve des choses sur lesquelles je peux aider... je vais le faire
Dark storm En ligne Labélisateur Points: 11631 Défis: 176 Message

Citer : Posté le 19/09/2018 21:44 | #


Typiquemenr, définir la liste des méthodes de chaque classe. Tu peux mettre ça sur le pad
(J'ai commencé la classe Member, mais en local)
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Eragon Hors ligne Gardien des bots Points: 431 Défis: 0 Message

Citer : Posté le 19/09/2018 22:06 | #


Tu pourra envoyer tes modifs que tu à fait, j'ai un peu de mal à m'immaginer la v5 avec ce qu'il y à pour l'instant sur le pad et dans les graphiques
1, 2, 3, 4 Suivante

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 98 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd